libavcodec/shorten.c File Reference

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

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


Detailed Description

Shorten decoder.

Author:
Jeff Muizelaar

Definition in file shorten.c.


Define Documentation

#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_DIFF0   0

Definition at line 62 of file shorten.c.

#define FN_DIFF1   1

Definition at line 63 of file shorten.c.

#define FN_DIFF2   2

Definition at line 64 of file shorten.c.

#define FN_DIFF3   3

Definition at line 65 of file shorten.c.

#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.

#define MAX_CHANNELS   8

Definition at line 35 of file shorten.c.

#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 V2LPCQOFFSET   (1 << LPCQUANT)

Definition at line 59 of file shorten.c.

Referenced by read_header().

#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().


Function Documentation

static int allocate_buffers ( ShortenContext s  )  [static]

Definition at line 123 of file shorten.c.

static int decode_subframe_lpc ( ShortenContext s,
int  command,
int  channel,
int  residual_size,
int32_t  coffset 
) [static]

Definition at line 279 of file shorten.c.

static int decode_wave_header ( AVCodecContext avctx,
const uint8_t *  header,
int  header_size 
) [static]

Definition at line 204 of file shorten.c.

Referenced by read_header().

static void fix_bitshift ( ShortenContext s,
int32_t *  buffer 
) [static]

Definition at line 171 of file shorten.c.

Referenced by shorten_decode_frame().

static unsigned int get_uint ( ShortenContext s,
int  k 
) [inline, static]

Definition at line 163 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 264 of file shorten.c.

Referenced by shorten_decode_frame().

static int read_header ( ShortenContext s  )  [static]

Definition at line 327 of file shorten.c.

static av_cold int shorten_decode_close ( AVCodecContext avctx  )  [static]

Definition at line 616 of file shorten.c.

static int shorten_decode_frame ( AVCodecContext avctx,
void *  data,
int *  got_frame_ptr,
AVPacket avpkt 
) [static]

Definition at line 406 of file shorten.c.

static av_cold int shorten_decode_init ( AVCodecContext avctx  )  [static]

Definition at line 111 of file shorten.c.


Variable Documentation

Initial value:

 {
    .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"),
}

Definition at line 632 of file shorten.c.

const int fixed_coeffs[3][3] [static]

Initial value:

 {
    { 1,  0,  0 },
    { 2, -1,  0 },
    { 3, -3,  1 }
}

Definition at line 273 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().


Generated on Fri Oct 26 02:46:10 2012 for FFmpeg by  doxygen 1.5.8