adx: move header decoding to ADX common code

This commit is contained in:
Justin Ruggles
2011-11-20 20:16:05 -05:00
parent 7ff55d9bdb
commit d8cec2d7fc
3 changed files with 74 additions and 36 deletions

View File

@@ -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 */