Use SAMPLE_FMT_FLT instead of doing the float->int conversion in the
decoder. This changes the output very little and any difference should be inaudible. Originally committed as revision 15343 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
00cc0ce91e
commit
faf6d6964b
@ -48,7 +48,7 @@ typedef struct {
|
|||||||
|
|
||||||
static av_cold int ra288_decode_init(AVCodecContext *avctx)
|
static av_cold int ra288_decode_init(AVCodecContext *avctx)
|
||||||
{
|
{
|
||||||
avctx->sample_fmt = SAMPLE_FMT_S16;
|
avctx->sample_fmt = SAMPLE_FMT_FLT;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -189,7 +189,7 @@ static int ra288_decode_frame(AVCodecContext * avctx, void *data,
|
|||||||
int *data_size, const uint8_t * buf,
|
int *data_size, const uint8_t * buf,
|
||||||
int buf_size)
|
int buf_size)
|
||||||
{
|
{
|
||||||
int16_t *out = data;
|
float *out = data;
|
||||||
int i, j;
|
int i, j;
|
||||||
RA288Context *ractx = avctx->priv_data;
|
RA288Context *ractx = avctx->priv_data;
|
||||||
GetBitContext gb;
|
GetBitContext gb;
|
||||||
@ -201,7 +201,7 @@ static int ra288_decode_frame(AVCodecContext * avctx, void *data,
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (*data_size < 32*5*2)
|
if (*data_size < 32*5*4)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
init_get_bits(&gb, buf, avctx->block_align * 8);
|
init_get_bits(&gb, buf, avctx->block_align * 8);
|
||||||
@ -213,7 +213,7 @@ static int ra288_decode_frame(AVCodecContext * avctx, void *data,
|
|||||||
decode(ractx, gain, cb_coef);
|
decode(ractx, gain, cb_coef);
|
||||||
|
|
||||||
for (j=0; j < 5; j++)
|
for (j=0; j < 5; j++)
|
||||||
*(out++) = 8 * ractx->sp_hist[70 + 36 + j];
|
*(out++) = (1/4096.) * ractx->sp_hist[70 + 36 + j];
|
||||||
|
|
||||||
if ((i & 7) == 3)
|
if ((i & 7) == 3)
|
||||||
backward_filter(ractx);
|
backward_filter(ractx);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user