Shorten decoder. More...
#include <limits.h>
#include "avcodec.h"
#include "bytestream.h"
#include "get_bits.h"
#include "golomb.h"
Go to the source code of this file.
Data Structures | |
struct | ShortenContext |
Defines | |
#define | MAX_CHANNELS 8 |
#define | MAX_BLOCKSIZE 65535 |
#define | OUT_BUFFER_SIZE 16384 |
#define | ULONGSIZE 2 |
#define | WAVE_FORMAT_PCM 0x0001 |
#define | DEFAULT_BLOCK_SIZE 256 |
#define | TYPESIZE 4 |
#define | CHANSIZE 0 |
#define | LPCQSIZE 2 |
#define | ENERGYSIZE 3 |
#define | BITSHIFTSIZE 2 |
#define | TYPE_S16HL 3 |
#define | TYPE_S16LH 5 |
#define | NWRAP 3 |
#define | NSKIPSIZE 1 |
#define | LPCQUANT 5 |
#define | V2LPCQOFFSET (1 << LPCQUANT) |
#define | FNSIZE 2 |
#define | FN_DIFF0 0 |
#define | FN_DIFF1 1 |
#define | FN_DIFF2 2 |
#define | FN_DIFF3 3 |
#define | FN_QUIT 4 |
#define | FN_BLOCKSIZE 5 |
#define | FN_BITSHIFT 6 |
#define | FN_QLPC 7 |
#define | FN_ZERO 8 |
#define | FN_VERBATIM 9 |
#define | VERBATIM_CKSIZE_SIZE 5 |
#define | VERBATIM_BYTE_SIZE 8 |
#define | CANONICAL_HEADER_SIZE 44 |
Typedefs | |
typedef struct ShortenContext | ShortenContext |
Functions | |
static av_cold int | shorten_decode_init (AVCodecContext *avctx) |
static int | allocate_buffers (ShortenContext *s) |
static unsigned int | get_uint (ShortenContext *s, int k) |
static void | fix_bitshift (ShortenContext *s, int32_t *buffer) |
static int | init_offset (ShortenContext *s) |
static int | decode_wave_header (AVCodecContext *avctx, const uint8_t *header, int header_size) |
static void | interleave_buffer (int16_t *samples, int nchan, int blocksize, int32_t **buffer) |
static int | decode_subframe_lpc (ShortenContext *s, int command, int channel, int residual_size, int32_t coffset) |
static int | read_header (ShortenContext *s) |
static int | shorten_decode_frame (AVCodecContext *avctx, void *data, int *got_frame_ptr, AVPacket *avpkt) |
static av_cold int | shorten_decode_close (AVCodecContext *avctx) |
Variables | |
static const uint8_t | is_audio_command [10] = { 1, 1, 1, 1, 0, 0, 0, 1, 1, 0 } |
indicates if the FN_* command is audio or non-audio | |
static const int | fixed_coeffs [3][3] |
AVCodec | ff_shorten_decoder |
Shorten decoder.
Definition in file shorten.c.
#define BITSHIFTSIZE 2 |
Definition at line 50 of file shorten.c.
Referenced by shorten_decode_frame().
#define CANONICAL_HEADER_SIZE 44 |
Definition at line 78 of file shorten.c.
Referenced by read_header().
#define CHANSIZE 0 |
Definition at line 47 of file shorten.c.
Referenced by read_header().
#define DEFAULT_BLOCK_SIZE 256 |
Definition at line 44 of file shorten.c.
Referenced by read_header().
#define ENERGYSIZE 3 |
Definition at line 49 of file shorten.c.
Referenced by shorten_decode_frame().
#define FN_BITSHIFT 6 |
Definition at line 68 of file shorten.c.
Referenced by shorten_decode_frame().
#define FN_BLOCKSIZE 5 |
Definition at line 67 of file shorten.c.
Referenced by shorten_decode_frame().
#define FN_QLPC 7 |
Definition at line 69 of file shorten.c.
Referenced by decode_subframe_lpc().
#define FN_QUIT 4 |
Definition at line 66 of file shorten.c.
Referenced by shorten_decode_frame().
#define FN_VERBATIM 9 |
Definition at line 71 of file shorten.c.
Referenced by read_header(), and shorten_decode_frame().
#define FN_ZERO 8 |
Definition at line 70 of file shorten.c.
Referenced by shorten_decode_frame().
#define FNSIZE 2 |
Definition at line 61 of file shorten.c.
Referenced by read_header(), and shorten_decode_frame().
#define LPCQSIZE 2 |
Definition at line 48 of file shorten.c.
Referenced by decode_subframe_lpc(), and read_header().
#define LPCQUANT 5 |
Definition at line 58 of file shorten.c.
Referenced by decode_subframe_lpc().
#define MAX_BLOCKSIZE 65535 |
Definition at line 36 of file shorten.c.
Referenced by read_header(), and shorten_decode_frame().
#define MAX_CHANNELS 8 |
Definition at line 35 of file shorten.c.
Referenced by read_header().
#define NSKIPSIZE 1 |
Definition at line 56 of file shorten.c.
Referenced by read_header().
#define NWRAP 3 |
Definition at line 55 of file shorten.c.
Referenced by read_header().
#define OUT_BUFFER_SIZE 16384 |
Definition at line 38 of file shorten.c.
Referenced by read_header().
#define TYPE_S16HL 3 |
Definition at line 52 of file shorten.c.
Referenced by init_offset().
#define TYPE_S16LH 5 |
Definition at line 53 of file shorten.c.
Referenced by init_offset().
#define TYPESIZE 4 |
Definition at line 46 of file shorten.c.
Referenced by read_header().
#define ULONGSIZE 2 |
Definition at line 40 of file shorten.c.
Referenced by get_uint().
#define VERBATIM_BYTE_SIZE 8 |
Definition at line 77 of file shorten.c.
Referenced by read_header(), and shorten_decode_frame().
#define VERBATIM_CKSIZE_SIZE 5 |
Definition at line 76 of file shorten.c.
Referenced by read_header(), and shorten_decode_frame().
#define WAVE_FORMAT_PCM 0x0001 |
Definition at line 42 of file shorten.c.
Referenced by decode_wave_header().
typedef struct ShortenContext ShortenContext |
static int allocate_buffers | ( | ShortenContext * | s | ) | [static] |
Definition at line 123 of file shorten.c.
Referenced by read_header().
static int decode_subframe_lpc | ( | ShortenContext * | s, | |
int | command, | |||
int | channel, | |||
int | residual_size, | |||
int32_t | coffset | |||
) | [static] |
Definition at line 275 of file shorten.c.
Referenced by shorten_decode_frame().
static int decode_wave_header | ( | AVCodecContext * | avctx, | |
const uint8_t * | header, | |||
int | header_size | |||
) | [static] |
Definition at line 203 of file shorten.c.
Referenced by read_header().
static void fix_bitshift | ( | ShortenContext * | s, | |
int32_t * | buffer | |||
) | [static] |
Definition at line 172 of file shorten.c.
Referenced by shorten_decode_frame().
static unsigned int get_uint | ( | ShortenContext * | s, | |
int | k | |||
) | [inline, static] |
Definition at line 165 of file shorten.c.
Referenced by read_header(), and shorten_decode_frame().
static int init_offset | ( | ShortenContext * | s | ) | [static] |
Definition at line 181 of file shorten.c.
Referenced by read_header().
static void interleave_buffer | ( | int16_t * | samples, | |
int | nchan, | |||
int | blocksize, | |||
int32_t ** | buffer | |||
) | [static] |
Definition at line 260 of file shorten.c.
Referenced by shorten_decode_frame().
static int read_header | ( | ShortenContext * | s | ) | [static] |
Definition at line 325 of file shorten.c.
Referenced by shorten_decode_frame().
static av_cold int shorten_decode_close | ( | AVCodecContext * | avctx | ) | [static] |
static int shorten_decode_frame | ( | AVCodecContext * | avctx, | |
void * | data, | |||
int * | got_frame_ptr, | |||
AVPacket * | avpkt | |||
) | [static] |
static av_cold int shorten_decode_init | ( | AVCodecContext * | avctx | ) | [static] |
{ .name = "shorten", .type = AVMEDIA_TYPE_AUDIO, .id = CODEC_ID_SHORTEN, .priv_data_size = sizeof(ShortenContext), .init = shorten_decode_init, .close = shorten_decode_close, .decode = shorten_decode_frame, .capabilities = CODEC_CAP_DELAY | CODEC_CAP_DR1, .long_name= NULL_IF_CONFIG_SMALL("Shorten"), }
const int fixed_coeffs[3][3] [static] |
{ { 1, 0, 0 }, { 2, -1, 0 }, { 3, -3, 1 } }
Definition at line 269 of file shorten.c.
Referenced by decode_subframe_lpc().
const uint8_t is_audio_command[10] = { 1, 1, 1, 1, 0, 0, 0, 1, 1, 0 } [static] |
indicates if the FN_* command is audio or non-audio
Definition at line 74 of file shorten.c.
Referenced by shorten_decode_frame().