mirror of https://git.ffmpeg.org/ffmpeg.git
adx: simplify encoding by using put_sbits()
This commit is contained in:
parent
b237248e29
commit
994238536a
|
@ -22,6 +22,7 @@
|
|||
#include "libavutil/intreadwrite.h"
|
||||
#include "avcodec.h"
|
||||
#include "adx.h"
|
||||
#include "put_bits.h"
|
||||
|
||||
/**
|
||||
* @file
|
||||
|
@ -37,6 +38,7 @@
|
|||
static void adx_encode(ADXContext *c, unsigned char *adx, const short *wav,
|
||||
ADXChannelState *prev)
|
||||
{
|
||||
PutBitContext pb;
|
||||
int scale;
|
||||
int i;
|
||||
int s0,s1,s2,d;
|
||||
|
@ -72,9 +74,10 @@ static void adx_encode(ADXContext *c, unsigned char *adx, const short *wav,
|
|||
|
||||
AV_WB16(adx, scale);
|
||||
|
||||
for(i=0;i<16;i++) {
|
||||
adx[i+2] = ((data[i*2]/scale)<<4) | ((data[i*2+1]/scale)&0xf);
|
||||
}
|
||||
init_put_bits(&pb, adx + 2, 16);
|
||||
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)
|
||||
|
|
Loading…
Reference in New Issue