Commit 99423853 authored by Justin Ruggles's avatar Justin Ruggles

adx: simplify encoding by using put_sbits()

parent b237248e
...@@ -22,6 +22,7 @@ ...@@ -22,6 +22,7 @@
#include "libavutil/intreadwrite.h" #include "libavutil/intreadwrite.h"
#include "avcodec.h" #include "avcodec.h"
#include "adx.h" #include "adx.h"
#include "put_bits.h"
/** /**
* @file * @file
...@@ -37,6 +38,7 @@ ...@@ -37,6 +38,7 @@
static void adx_encode(ADXContext *c, unsigned char *adx, const short *wav, static void adx_encode(ADXContext *c, unsigned char *adx, const short *wav,
ADXChannelState *prev) ADXChannelState *prev)
{ {
PutBitContext pb;
int scale; int scale;
int i; int i;
int s0,s1,s2,d; int s0,s1,s2,d;
...@@ -72,9 +74,10 @@ static void adx_encode(ADXContext *c, unsigned char *adx, const short *wav, ...@@ -72,9 +74,10 @@ static void adx_encode(ADXContext *c, unsigned char *adx, const short *wav,
AV_WB16(adx, scale); AV_WB16(adx, scale);
for(i=0;i<16;i++) { init_put_bits(&pb, adx + 2, 16);
adx[i+2] = ((data[i*2]/scale)<<4) | ((data[i*2+1]/scale)&0xf); for (i = 0; i < 32; i++)
} put_sbits(&pb, 4, av_clip(data[i]/scale, -8, 7));
flush_put_bits(&pb);
} }
static int adx_encode_header(AVCodecContext *avctx,unsigned char *buf,size_t bufsize) static int adx_encode_header(AVCodecContext *avctx,unsigned char *buf,size_t bufsize)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment