mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2024-12-15 11:44:49 +00:00
set bit allocation parameters directly instead of copying
Originally committed as revision 9782 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
e2cd6686fa
commit
8f58a4c943
@ -107,11 +107,6 @@ typedef struct {
|
||||
uint8_t cplexpstr;
|
||||
uint8_t lfeexpstr;
|
||||
uint8_t chexpstr[5];
|
||||
uint8_t sdcycod;
|
||||
uint8_t fdcycod;
|
||||
uint8_t sgaincod;
|
||||
uint8_t dbpbcod;
|
||||
uint8_t floorcod;
|
||||
uint8_t csnroffst;
|
||||
uint8_t cplfsnroffst;
|
||||
uint8_t cplfgaincod;
|
||||
@ -119,8 +114,6 @@ typedef struct {
|
||||
uint8_t fgaincod[5];
|
||||
uint8_t lfefsnroffst;
|
||||
uint8_t lfefgaincod;
|
||||
uint8_t cplfleak;
|
||||
uint8_t cplsleak;
|
||||
uint8_t cpldeltbae;
|
||||
uint8_t deltbae[5];
|
||||
uint8_t cpldeltnseg;
|
||||
@ -1462,11 +1455,11 @@ static int ac3_parse_audio_block(AC3DecodeContext *ctx, int blk)
|
||||
|
||||
if (get_bits1(gb)) { /* bit allocation information */
|
||||
bit_alloc_flags = 127;
|
||||
ctx->sdcycod = get_bits(gb, 2);
|
||||
ctx->fdcycod = get_bits(gb, 2);
|
||||
ctx->sgaincod = get_bits(gb, 2);
|
||||
ctx->dbpbcod = get_bits(gb, 2);
|
||||
ctx->floorcod = get_bits(gb, 3);
|
||||
ctx->bit_alloc_params.sdecay = ff_sdecaytab[get_bits(gb, 2)];
|
||||
ctx->bit_alloc_params.fdecay = ff_fdecaytab[get_bits(gb, 2)];
|
||||
ctx->bit_alloc_params.sgain = ff_sgaintab[get_bits(gb, 2)];
|
||||
ctx->bit_alloc_params.dbknee = ff_dbkneetab[get_bits(gb, 2)];
|
||||
ctx->bit_alloc_params.floor = ff_floortab[get_bits(gb, 3)];
|
||||
}
|
||||
|
||||
if (get_bits1(gb)) { /* snroffset */
|
||||
@ -1488,8 +1481,8 @@ static int ac3_parse_audio_block(AC3DecodeContext *ctx, int blk)
|
||||
|
||||
if (ctx->cplinu && get_bits1(gb)) { /* coupling leak information */
|
||||
bit_alloc_flags |= 64;
|
||||
ctx->cplfleak = get_bits(gb, 3);
|
||||
ctx->cplsleak = get_bits(gb, 3);
|
||||
ctx->bit_alloc_params.cplfleak = get_bits(gb, 3);
|
||||
ctx->bit_alloc_params.cplsleak = get_bits(gb, 3);
|
||||
}
|
||||
|
||||
if (get_bits1(gb)) { /* delta bit allocation information */
|
||||
@ -1539,15 +1532,6 @@ static int ac3_parse_audio_block(AC3DecodeContext *ctx, int blk)
|
||||
}
|
||||
|
||||
if (bit_alloc_flags) {
|
||||
/* set bit allocation parameters */
|
||||
ctx->bit_alloc_params.sdecay = ff_sdecaytab[ctx->sdcycod];
|
||||
ctx->bit_alloc_params.fdecay = ff_fdecaytab[ctx->fdcycod];
|
||||
ctx->bit_alloc_params.sgain = ff_sgaintab[ctx->sgaincod];
|
||||
ctx->bit_alloc_params.dbknee = ff_dbkneetab[ctx->dbpbcod];
|
||||
ctx->bit_alloc_params.floor = ff_floortab[ctx->floorcod];
|
||||
ctx->bit_alloc_params.cplfleak = ctx->cplfleak;
|
||||
ctx->bit_alloc_params.cplsleak = ctx->cplsleak;
|
||||
|
||||
if (ctx->cplinu && (bit_alloc_flags & 64))
|
||||
do_bit_allocation(ctx, 5);
|
||||
for (i = 0; i < nfchans; i++)
|
||||
|
Loading…
Reference in New Issue
Block a user