hvirtual/quicktime/ffmpeg/libavcodec/alac.c File Reference

#include "avcodec.h"
#include "bitstream.h"

Include dependency graph for alac.c:

Go to the source code of this file.

Data Structures

struct  ALACContext

Defines

#define ALAC_EXTRADATA_SIZE   36
#define SIGN_EXTENDED32(val, bits)   ((val << (32 - bits)) >> (32 - bits))
#define SIGN_ONLY(v)

Functions

static void allocate_buffers (ALACContext *alac)
void alac_set_info (ALACContext *alac)
static int count_leading_zeros (int32_t input)
void bastardized_rice_decompress (ALACContext *alac, int32_t *output_buffer, int output_size, int readsamplesize, int rice_initialhistory, int rice_kmodifier, int rice_historymult, int rice_kmodifier_mask)
static void predictor_decompress_fir_adapt (int32_t *error_buffer, int32_t *buffer_out, int output_size, int readsamplesize, int16_t *predictor_coef_table, int predictor_coef_num, int predictor_quantitization)
void deinterlace_16 (int32_t *buffer_a, int32_t *buffer_b, int16_t *buffer_out, int numchannels, int numsamples, uint8_t interlacing_shift, uint8_t interlacing_leftweight)
static int alac_decode_frame (AVCodecContext *avctx, void *outbuffer, int *outputsize, uint8_t *inbuffer, int input_buffer_size)
static int alac_decode_init (AVCodecContext *avctx)
static int alac_decode_close (AVCodecContext *avctx)

Variables

AVCodec alac_decoder


Detailed Description

ALAC (Apple Lossless Audio Codec) decoder
Author:
2005 David Hammerton
For more information on the ALAC format, visit: http://crazney.net/programs/itunes/alac.html

Note: This decoder expects a 36- (0x24-)byte QuickTime atom to be passed through the extradata[_size] fields. This atom is tacked onto the end of an 'alac' stsd atom and has the following format: bytes 0-3 atom size (0x24), big-endian bytes 4-7 atom type ('alac', not the 'alac' tag from start of stsd) bytes 8-35 data bytes needed by decoder

Definition in file alac.c.


Define Documentation

#define ALAC_EXTRADATA_SIZE   36

Definition at line 41 of file alac.c.

Referenced by alac_decode_frame().

#define SIGN_EXTENDED32 ( val,
bits   )     ((val << (32 - bits)) >> (32 - bits))

Definition at line 255 of file alac.c.

Referenced by alac_decode_frame(), and predictor_decompress_fir_adapt().

#define SIGN_ONLY (  ) 

Value:

((v < 0) ? (-1) : \
                                ((v > 0) ? (1) : \
                                           (0)))

Definition at line 257 of file alac.c.

Referenced by predictor_decompress_fir_adapt().


Function Documentation

static int alac_decode_close ( AVCodecContext avctx  )  [static]

static int alac_decode_frame ( AVCodecContext avctx,
void *  outbuffer,
int *  outputsize,
uint8_t *  inbuffer,
int  input_buffer_size 
) [static]

static int alac_decode_init ( AVCodecContext avctx  )  [static]

void alac_set_info ( ALACContext alac  ) 

static void allocate_buffers ( ALACContext alac  )  [static]

void bastardized_rice_decompress ( ALACContext alac,
int32_t *  output_buffer,
int  output_size,
int  readsamplesize,
int  rice_initialhistory,
int  rice_kmodifier,
int  rice_historymult,
int  rice_kmodifier_mask 
)

Definition at line 128 of file alac.c.

References count_leading_zeros(), ALACContext::gb, get_bits(), get_bits1(), and show_bits().

Referenced by alac_decode_frame().

Here is the call graph for this function:

static int count_leading_zeros ( int32_t  input  )  [static]

Definition at line 118 of file alac.c.

Referenced by bastardized_rice_decompress().

void deinterlace_16 ( int32_t *  buffer_a,
int32_t *  buffer_b,
int16_t *  buffer_out,
int  numchannels,
int  numsamples,
uint8_t  interlacing_shift,
uint8_t  interlacing_leftweight 
)

Definition at line 388 of file alac.c.

Referenced by alac_decode_frame().

static void predictor_decompress_fir_adapt ( int32_t *  error_buffer,
int32_t *  buffer_out,
int  output_size,
int  readsamplesize,
int16_t *  predictor_coef_table,
int  predictor_coef_num,
int  predictor_quantitization 
) [static]

Definition at line 262 of file alac.c.

References memcpy, SIGN_EXTENDED32, and SIGN_ONLY.

Referenced by alac_decode_frame().


Variable Documentation

Initial value:

Definition at line 824 of file alac.c.

Referenced by avcodec_register_all().


Generated on Mon Apr 28 14:03:15 2008 for Cinelerra by  doxygen 1.5.5