summaryrefslogtreecommitdiff
path: root/libavcodec/adx.c
diff options
context:
space:
mode:
authorAurelien Jacobs <aurel@gnuage.org>2007-11-01 17:58:03 +0000
committerAurelien Jacobs <aurel@gnuage.org>2007-11-01 17:58:03 +0000
commitc4cc361099fca9f100336c4178382b8901f2c954 (patch)
treed52df6ce2f96fe0c15be9c2e01dc848613f21775 /libavcodec/adx.c
parent6177c7efe1748f9d89def83c9e792a7fa23526e7 (diff)
cleanup and simplify adx_decode_header()
Originally committed as revision 10900 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec/adx.c')
-rw-r--r--libavcodec/adx.c29
1 files changed, 6 insertions, 23 deletions
diff --git a/libavcodec/adx.c b/libavcodec/adx.c
index 4b4165a7db..a0f7373229 100644
--- a/libavcodec/adx.c
+++ b/libavcodec/adx.c
@@ -249,35 +249,18 @@ static int adx_encode_frame(AVCodecContext *avctx,
#endif //CONFIG_ENCODERS
-static int is_adx(const unsigned char *buf,size_t bufsize)
+/* return data offset or 0 */
+static int adx_decode_header(AVCodecContext *avctx,const unsigned char *buf,size_t bufsize)
{
- int offset;
+ int offset;
if (buf[0]!=0x80) return 0;
offset = (AV_RB32(buf)^0x80000000)+4;
if (bufsize<offset || memcmp(buf+offset-6,"(c)CRI",6)) return 0;
- return offset;
-}
-
-/* return data offset or 6 */
-static int adx_decode_header(AVCodecContext *avctx,const unsigned char *buf,size_t bufsize)
-{
- int offset;
- int channels,freq,size;
-
- offset = is_adx(buf,bufsize);
- if (offset==0) return 0;
-
- channels = buf[7];
- freq = AV_RB32(buf+8);
- size = AV_RB32(buf+12);
-
-// printf("freq=%d ch=%d\n",freq,channels);
- avctx->sample_rate = freq;
- avctx->channels = channels;
- avctx->bit_rate = freq*channels*18*8/32;
-// avctx->frame_size = 18*channels;
+ avctx->channels = buf[7];
+ avctx->sample_rate = AV_RB32(buf+8);
+ avctx->bit_rate = avctx->sample_rate*avctx->channels*18*8/32;
return offset;
}