mirror of
https://github.com/xenia-project/FFmpeg.git
synced 2024-11-24 12:09:55 +00:00
While adding stereo rematrixing, I came across something that needs to
be fixed even without adding the feature. The output correctly uses 4 dummy values for the rematrixing flags in block-0, but the bit allocation routine does not take these bits into account. From what I can tell, there was a patch in 2003 that corrected the output to make it DVD and spec compatible, but it didn't correct the bit allocation. It's only 4 bits over the entire 6 blocks, so overflow errors would happen rarely or never, but it's still worth fixing. So here is a fix. patch by (Justin Ruggles {jruggle earthlink net) Originally committed as revision 4179 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
725de25c4c
commit
132041f06f
@ -703,8 +703,10 @@ static int compute_bit_allocation(AC3EncodeContext *s,
|
|||||||
/* audio blocks */
|
/* audio blocks */
|
||||||
for(i=0;i<NB_BLOCKS;i++) {
|
for(i=0;i<NB_BLOCKS;i++) {
|
||||||
frame_bits += s->nb_channels * 2 + 2; /* blksw * c, dithflag * c, dynrnge, cplstre */
|
frame_bits += s->nb_channels * 2 + 2; /* blksw * c, dithflag * c, dynrnge, cplstre */
|
||||||
if (s->acmod == 2)
|
if (s->acmod == 2) {
|
||||||
frame_bits++; /* rematstr */
|
frame_bits++; /* rematstr */
|
||||||
|
if(i==0) frame_bits += 4;
|
||||||
|
}
|
||||||
frame_bits += 2 * s->nb_channels; /* chexpstr[2] * c */
|
frame_bits += 2 * s->nb_channels; /* chexpstr[2] * c */
|
||||||
if (s->lfe)
|
if (s->lfe)
|
||||||
frame_bits++; /* lfeexpstr */
|
frame_bits++; /* lfeexpstr */
|
||||||
|
@ -136,7 +136,7 @@ stddev: 10.99 PSNR:27.30 bytes:7602176
|
|||||||
6956f2c5185c4edbae648c614992a14b *./data/out.wav
|
6956f2c5185c4edbae648c614992a14b *./data/out.wav
|
||||||
stddev:9330.70 PSNR:16.92 bytes:527360
|
stddev:9330.70 PSNR:16.92 bytes:527360
|
||||||
stddev:4396.13 PSNR:23.46 bytes:526336
|
stddev:4396.13 PSNR:23.46 bytes:526336
|
||||||
d056da679e6d6682812fffb28a7f0db6 *./data/a-ac3.rm
|
3bc982921d6354be383ba37c1dbcf958 *./data/a-ac3.rm
|
||||||
97983 ./data/a-ac3.rm
|
97983 ./data/a-ac3.rm
|
||||||
9e6e66847a568ef4f1f229b0939d2aae *./data/a-g726.wav
|
9e6e66847a568ef4f1f229b0939d2aae *./data/a-g726.wav
|
||||||
24268 ./data/a-g726.wav
|
24268 ./data/a-g726.wav
|
||||||
|
@ -136,7 +136,7 @@ stddev: 3.43 PSNR:37.39 bytes:7602176
|
|||||||
6956f2c5185c4edbae648c614992a14b *./data/out.wav
|
6956f2c5185c4edbae648c614992a14b *./data/out.wav
|
||||||
stddev:9330.70 PSNR:16.92 bytes:527360
|
stddev:9330.70 PSNR:16.92 bytes:527360
|
||||||
stddev:4396.13 PSNR:23.46 bytes:526336
|
stddev:4396.13 PSNR:23.46 bytes:526336
|
||||||
d056da679e6d6682812fffb28a7f0db6 *./data/a-ac3.rm
|
3bc982921d6354be383ba37c1dbcf958 *./data/a-ac3.rm
|
||||||
97983 ./data/a-ac3.rm
|
97983 ./data/a-ac3.rm
|
||||||
9e6e66847a568ef4f1f229b0939d2aae *./data/a-g726.wav
|
9e6e66847a568ef4f1f229b0939d2aae *./data/a-g726.wav
|
||||||
24268 ./data/a-g726.wav
|
24268 ./data/a-g726.wav
|
||||||
|
Loading…
Reference in New Issue
Block a user