FFmpeg
|
#include "config_components.h"
#include "avcodec.h"
#include "get_bits.h"
#include "bytestream.h"
#include "adpcm.h"
#include "adpcm_data.h"
#include "codec_internal.h"
#include "decode.h"
Go to the source code of this file.
Data Structures | |
struct | ADPCMDecodeContext |
Macros | |
#define | CASE_0(codec_id, ...) |
#define | CASE_1(codec_id, ...) |
#define | CASE_2(enabled, codec_id, ...) CASE_ ## enabled(codec_id, __VA_ARGS__) |
#define | CASE_3(config, codec_id, ...) CASE_2(config, codec_id, __VA_ARGS__) |
#define | CASE(codec, ...) CASE_3(CONFIG_ ## codec ## _DECODER, AV_CODEC_ID_ ## codec, __VA_ARGS__) |
#define | DK3_GET_NEXT_NIBBLE() |
#define | ADPCM_DECODER_0(id_, sample_fmts_, name_, long_name_) |
#define | ADPCM_DECODER_1(id_, sample_fmts_, name_, long_name_) |
#define | ADPCM_DECODER_2(enabled, codec_id, name, sample_fmts, long_name) ADPCM_DECODER_ ## enabled(codec_id, name, sample_fmts, long_name) |
#define | ADPCM_DECODER_3(config, codec_id, name, sample_fmts, long_name) ADPCM_DECODER_2(config, codec_id, name, sample_fmts, long_name) |
#define | ADPCM_DECODER(codec, name, sample_fmts, long_name) |
Functions | |
static void | adpcm_flush (AVCodecContext *avctx) |
static av_cold int | adpcm_decode_init (AVCodecContext *avctx) |
static int16_t | adpcm_agm_expand_nibble (ADPCMChannelStatus *c, int8_t nibble) |
static int16_t | adpcm_ima_expand_nibble (ADPCMChannelStatus *c, int8_t nibble, int shift) |
static int16_t | adpcm_ima_alp_expand_nibble (ADPCMChannelStatus *c, int8_t nibble, int shift) |
static int16_t | adpcm_ima_mtf_expand_nibble (ADPCMChannelStatus *c, int nibble) |
static int16_t | adpcm_ima_cunning_expand_nibble (ADPCMChannelStatus *c, int8_t nibble) |
static int16_t | adpcm_ima_wav_expand_nibble (ADPCMChannelStatus *c, GetBitContext *gb, int bps) |
static int | adpcm_ima_qt_expand_nibble (ADPCMChannelStatus *c, int nibble) |
static int16_t | adpcm_ms_expand_nibble (ADPCMChannelStatus *c, int nibble) |
static int16_t | adpcm_ima_oki_expand_nibble (ADPCMChannelStatus *c, int nibble) |
static int16_t | adpcm_ct_expand_nibble (ADPCMChannelStatus *c, int8_t nibble) |
static int16_t | adpcm_sbpro_expand_nibble (ADPCMChannelStatus *c, int8_t nibble, int size, int shift) |
static int16_t | adpcm_yamaha_expand_nibble (ADPCMChannelStatus *c, uint8_t nibble) |
static int16_t | adpcm_mtaf_expand_nibble (ADPCMChannelStatus *c, uint8_t nibble) |
static int16_t | adpcm_zork_expand_nibble (ADPCMChannelStatus *c, uint8_t nibble) |
static int | xa_decode (AVCodecContext *avctx, int16_t *out0, int16_t *out1, const uint8_t *in, ADPCMChannelStatus *left, ADPCMChannelStatus *right, int channels, int sample_offset) |
static void | adpcm_swf_decode (AVCodecContext *avctx, const uint8_t *buf, int buf_size, int16_t *samples) |
int16_t | ff_adpcm_argo_expand_nibble (ADPCMChannelStatus *cs, int nibble, int shift, int flag) |
static int | get_nb_samples (AVCodecContext *avctx, GetByteContext *gb, int buf_size, int *coded_samples, int *approx_nb_samples) |
Get the number of samples (per channel) that will be decoded from the packet. More... | |
static int | adpcm_decode_frame (AVCodecContext *avctx, AVFrame *frame, int *got_frame_ptr, AVPacket *avpkt) |
Variables | |
static const int8_t | xa_adpcm_table [5][2] |
static const int16_t | afc_coeffs [2][16] |
static const int16_t | ea_adpcm_table [] |
static const int8_t | ima_cunning_index_table [9] |
static const int16_t | ima_cunning_step_table [61] |
static const int8_t | adpcm_index_table2 [4] |
static const int8_t | adpcm_index_table3 [8] |
static const int8_t | adpcm_index_table5 [32] |
static const int8_t *const | adpcm_index_tables [4] |
static const int16_t | mtaf_stepsize [32][16] |
static const int16_t | oki_step_table [49] |
static const int8_t | swf_index_tables [4][16] |
static const int8_t | zork_index_table [8] |
static const int8_t | mtf_index_table [16] |
static enum AVSampleFormat | sample_fmts_s16 [] |
static enum AVSampleFormat | sample_fmts_s16p [] |
static enum AVSampleFormat | sample_fmts_both [] |
ADPCM decoders Features and limitations:
Reference documents: http://wiki.multimedia.cx/index.php?title=Category:ADPCM_Audio_Codecs http://www.pcisys.net/~melanson/codecs/simpleaudio.html [dead] http://www.geocities.com/SiliconValley/8682/aud3.txt [dead] http://openquicktime.sourceforge.net/ XAnim sources (xa_codec.c) http://xanim.polter.net/ http://www.cs.ucla.edu/~leec/mediabench/applications.html [dead] SoX source code http://sox.sourceforge.net/
CD-ROM XA: http://ku-www.ss.titech.ac.jp/~yatsushi/xaadpcm.html [dead] vagpack & depack http://homepages.compuserve.de/bITmASTER32/psx-index.html [dead] readstr http://www.geocities.co.jp/Playtown/2004/
Definition in file adpcm.c.
#define CASE_1 | ( | codec_id, | |
... | |||
) |
#define CASE | ( | codec, | |
... | |||
) | CASE_3(CONFIG_ ## codec ## _DECODER, AV_CODEC_ID_ ## codec, __VA_ARGS__) |
#define DK3_GET_NEXT_NIBBLE | ( | ) |
#define ADPCM_DECODER_0 | ( | id_, | |
sample_fmts_, | |||
name_, | |||
long_name_ | |||
) |
#define ADPCM_DECODER_1 | ( | id_, | |
sample_fmts_, | |||
name_, | |||
long_name_ | |||
) |
#define ADPCM_DECODER_2 | ( | enabled, | |
codec_id, | |||
name, | |||
sample_fmts, | |||
long_name | |||
) | ADPCM_DECODER_ ## enabled(codec_id, name, sample_fmts, long_name) |
#define ADPCM_DECODER_3 | ( | config, | |
codec_id, | |||
name, | |||
sample_fmts, | |||
long_name | |||
) | ADPCM_DECODER_2(config, codec_id, name, sample_fmts, long_name) |
#define ADPCM_DECODER | ( | codec, | |
name, | |||
sample_fmts, | |||
long_name | |||
) |
|
static |
Definition at line 2300 of file adpcm.c.
Referenced by adpcm_decode_init().
|
static |
|
inlinestatic |
Definition at line 355 of file adpcm.c.
Referenced by adpcm_decode_frame().
|
inlinestatic |
Definition at line 399 of file adpcm.c.
Referenced by adpcm_decode_frame().
|
inlinestatic |
Definition at line 425 of file adpcm.c.
Referenced by adpcm_decode_frame().
|
inlinestatic |
Definition at line 448 of file adpcm.c.
Referenced by adpcm_decode_frame().
|
inlinestatic |
Definition at line 464 of file adpcm.c.
Referenced by adpcm_decode_frame().
|
inlinestatic |
Definition at line 484 of file adpcm.c.
Referenced by adpcm_decode_frame().
|
inlinestatic |
Definition at line 507 of file adpcm.c.
Referenced by adpcm_decode_frame().
|
inlinestatic |
Definition at line 533 of file adpcm.c.
Referenced by adpcm_decode_frame().
|
inlinestatic |
Definition at line 552 of file adpcm.c.
Referenced by adpcm_decode_frame().
|
inlinestatic |
Definition at line 573 of file adpcm.c.
Referenced by adpcm_decode_frame().
|
inlinestatic |
Definition at line 594 of file adpcm.c.
Referenced by adpcm_decode_frame().
|
inlinestatic |
Definition at line 614 of file adpcm.c.
Referenced by adpcm_decode_frame().
|
inlinestatic |
Definition at line 628 of file adpcm.c.
Referenced by adpcm_decode_frame().
|
inlinestatic |
Definition at line 637 of file adpcm.c.
Referenced by adpcm_decode_frame().
|
static |
Definition at line 672 of file adpcm.c.
Referenced by adpcm_decode_frame().
|
static |
Definition at line 760 of file adpcm.c.
Referenced by adpcm_decode_frame().
int16_t ff_adpcm_argo_expand_nibble | ( | ADPCMChannelStatus * | cs, |
int | nibble, | ||
int | shift, | ||
int | flag | ||
) |
Definition at line 818 of file adpcm.c.
Referenced by adpcm_decode_frame(), and adpcm_encode_frame().
|
static |
Get the number of samples (per channel) that will be decoded from the packet.
In one case, this is actually the maximum number of samples possible to decode with the given buf_size.
[out] | coded_samples | set to the number of samples as coded in the packet, or 0 if the codec does not encode the number of samples in each frame. |
[out] | approx_nb_samples | set to non-zero if the number of samples returned is an approximation. |
Definition at line 846 of file adpcm.c.
Referenced by adpcm_decode_frame().
|
static |
|
static |
Definition at line 81 of file adpcm.c.
Referenced by adpcm_decode_frame(), and xa_decode().
|
static |
Definition at line 89 of file adpcm.c.
Referenced by adpcm_decode_frame().
|
static |
Definition at line 94 of file adpcm.c.
Referenced by adpcm_decode_frame().
|
static |
Definition at line 108 of file adpcm.c.
Referenced by adpcm_ima_cunning_expand_nibble().
|
static |
Definition at line 118 of file adpcm.c.
Referenced by adpcm_ima_cunning_expand_nibble().
|
static |
|
static |
|
static |
|
static |
Definition at line 142 of file adpcm.c.
Referenced by adpcm_ima_wav_expand_nibble().
|
static |
Definition at line 149 of file adpcm.c.
Referenced by adpcm_mtaf_expand_nibble().
|
static |
Definition at line 216 of file adpcm.c.
Referenced by adpcm_ima_oki_expand_nibble().
|
static |
Definition at line 225 of file adpcm.c.
Referenced by adpcm_swf_decode().
|
static |
Definition at line 232 of file adpcm.c.
Referenced by adpcm_zork_expand_nibble().
|
static |
Definition at line 236 of file adpcm.c.
Referenced by adpcm_ima_mtf_expand_nibble().
|
static |
|
static |
|
static |