diff options
author | Justin Ruggles <justin.ruggles@gmail.com> | 2011-11-20 20:16:05 -0500 |
---|---|---|
committer | Justin Ruggles <justin.ruggles@gmail.com> | 2011-11-26 16:25:07 -0500 |
commit | d8cec2d7fc1c2c5b6f82b8743b3cfd04cd4bb8cc (patch) | |
tree | 8cd8b599a47c1f5abde152edc6cd21251711c99c /libavcodec/adx.h | |
parent | 7ff55d9bdbdd9df004bb45055049499380d0ae68 (diff) | |
download | ffmpeg-d8cec2d7fc1c2c5b6f82b8743b3cfd04cd4bb8cc.tar.gz |
adx: move header decoding to ADX common code
Diffstat (limited to 'libavcodec/adx.h')
-rw-r--r-- | libavcodec/adx.h | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/libavcodec/adx.h b/libavcodec/adx.h index cd8c45bf6d..f68a3cb793 100644 --- a/libavcodec/adx.h +++ b/libavcodec/adx.h @@ -31,6 +31,10 @@ #ifndef AVCODEC_ADX_H #define AVCODEC_ADX_H +#include <stdint.h> + +#include "avcodec.h" + typedef struct { int s1,s2; } ADXChannelState; @@ -47,6 +51,9 @@ typedef struct { #define COEFF_BITS 12 +#define BLOCK_SIZE 18 +#define BLOCK_SAMPLES 32 + /** * Calculate LPC coefficients based on cutoff frequency and sample rate. * @@ -57,4 +64,18 @@ typedef struct { */ void ff_adx_calculate_coeffs(int cutoff, int sample_rate, int bits, int *coeff); +/** + * Decode ADX stream header. + * Sets avctx->channels and avctx->sample_rate. + * + * @param avctx codec context + * @param buf header data + * @param bufsize data size, should be at least 24 bytes + * @param[out] header_size size of ADX header + * @param[out] coeff 2 LPC coefficients, can be NULL + * @return data offset or negative error code if header is invalid + */ +int ff_adx_decode_header(AVCodecContext *avctx, const uint8_t *buf, int bufsize, + int *header_size, int *coeff); + #endif /* AVCODEC_ADX_H */ |