#include "avcodec.h"
Go to the source code of this file.
Data Structures | |
struct | DPCMContext |
Defines | |
#define | SE_16BIT(x) if (x & 0x8000) x -= 0x10000; |
#define | DPCM_DECODER(id, name) |
Functions | |
static int | dpcm_decode_init (AVCodecContext *avctx) |
static int | dpcm_decode_frame (AVCodecContext *avctx, void *data, int *data_size, const uint8_t *buf, int buf_size) |
DPCM_DECODER (CODEC_ID_INTERPLAY_DPCM, interplay_dpcm) | |
DPCM_DECODER (CODEC_ID_ROQ_DPCM, roq_dpcm) | |
DPCM_DECODER (CODEC_ID_SOL_DPCM, sol_dpcm) | |
DPCM_DECODER (CODEC_ID_XAN_DPCM, xan_dpcm) | |
Variables | |
static int | interplay_delta_table [] |
static const int | sol_table_old [16] |
static const int | sol_table_new [16] |
static const int | sol_table_16 [128] |
Note about using the Xan DPCM decoder: Xan DPCM is used in AVI files found in the Wing Commander IV computer game. These AVI files contain WAVEFORMAT headers which report the audio format as 0x01: raw PCM. Clearly incorrect. To detect Xan DPCM, you will probably have to special-case your AVI demuxer to use Xan DPCM if the file uses 'Xxan' (Xan video) for its video codec. Alternately, such AVI files also contain the fourcc 'Axan' in the 'auds' chunk of the AVI header.
Definition in file dpcm.c.
#define DPCM_DECODER | ( | id, | |||
name | ) |
#define SE_16BIT | ( | x | ) | if (x & 0x8000) x -= 0x10000; |
static int dpcm_decode_frame | ( | AVCodecContext * | avctx, | |
void * | data, | |||
int * | data_size, | |||
const uint8_t * | buf, | |||
int | buf_size | |||
) | [static] |
static int dpcm_decode_init | ( | AVCodecContext * | avctx | ) | [static] |
DPCM_DECODER | ( | CODEC_ID_XAN_DPCM | , | |
xan_dpcm | ||||
) |
DPCM_DECODER | ( | CODEC_ID_SOL_DPCM | , | |
sol_dpcm | ||||
) |
DPCM_DECODER | ( | CODEC_ID_ROQ_DPCM | , | |
roq_dpcm | ||||
) |
DPCM_DECODER | ( | CODEC_ID_INTERPLAY_DPCM | , | |
interplay_dpcm | ||||
) |
int interplay_delta_table[] [static] |
const int sol_table_16[128] [static] |
Initial value:
{ 0x000, 0x008, 0x010, 0x020, 0x030, 0x040, 0x050, 0x060, 0x070, 0x080, 0x090, 0x0A0, 0x0B0, 0x0C0, 0x0D0, 0x0E0, 0x0F0, 0x100, 0x110, 0x120, 0x130, 0x140, 0x150, 0x160, 0x170, 0x180, 0x190, 0x1A0, 0x1B0, 0x1C0, 0x1D0, 0x1E0, 0x1F0, 0x200, 0x208, 0x210, 0x218, 0x220, 0x228, 0x230, 0x238, 0x240, 0x248, 0x250, 0x258, 0x260, 0x268, 0x270, 0x278, 0x280, 0x288, 0x290, 0x298, 0x2A0, 0x2A8, 0x2B0, 0x2B8, 0x2C0, 0x2C8, 0x2D0, 0x2D8, 0x2E0, 0x2E8, 0x2F0, 0x2F8, 0x300, 0x308, 0x310, 0x318, 0x320, 0x328, 0x330, 0x338, 0x340, 0x348, 0x350, 0x358, 0x360, 0x368, 0x370, 0x378, 0x380, 0x388, 0x390, 0x398, 0x3A0, 0x3A8, 0x3B0, 0x3B8, 0x3C0, 0x3C8, 0x3D0, 0x3D8, 0x3E0, 0x3E8, 0x3F0, 0x3F8, 0x400, 0x440, 0x480, 0x4C0, 0x500, 0x540, 0x580, 0x5C0, 0x600, 0x640, 0x680, 0x6C0, 0x700, 0x740, 0x780, 0x7C0, 0x800, 0x900, 0xA00, 0xB00, 0xC00, 0xD00, 0xE00, 0xF00, 0x1000, 0x1400, 0x1800, 0x1C00, 0x2000, 0x3000, 0x4000 }
Definition at line 95 of file dpcm.c.
Referenced by dpcm_decode_init().
const int sol_table_new[16] [static] |
Initial value:
{ 0x0, 0x1, 0x2, 0x3, 0x6, 0xA, 0xF, 0x15, 0x0, -0x1, -0x2, -0x3, -0x6, -0xA, -0xF, -0x15}
Definition at line 91 of file dpcm.c.
Referenced by dpcm_decode_init().
const int sol_table_old[16] [static] |
Initial value:
{ 0x0, 0x1, 0x2 , 0x3, 0x6, 0xA, 0xF, 0x15, -0x15, -0xF, -0xA, -0x6, -0x3, -0x2, -0x1, 0x0}
Definition at line 87 of file dpcm.c.
Referenced by dpcm_decode_init().