aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec/adx.h
diff options
context:
space:
mode:
authorJustin Ruggles <justin.ruggles@gmail.com>2011-11-20 20:16:05 -0500
committerJustin Ruggles <justin.ruggles@gmail.com>2011-11-26 16:25:07 -0500
commitd8cec2d7fc1c2c5b6f82b8743b3cfd04cd4bb8cc (patch)
tree8cd8b599a47c1f5abde152edc6cd21251711c99c /libavcodec/adx.h
parent7ff55d9bdbdd9df004bb45055049499380d0ae68 (diff)
downloadffmpeg-d8cec2d7fc1c2c5b6f82b8743b3cfd04cd4bb8cc.tar.gz
adx: move header decoding to ADX common code
Diffstat (limited to 'libavcodec/adx.h')
-rw-r--r--libavcodec/adx.h21
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 */