[FFmpeg-devel] [PATCH] mp3dec: Fix VBR bit rate parsing

Michael Niedermayer michaelni at gmx.at
Thu Feb 28 23:04:16 CET 2013


On Wed, Feb 27, 2013 at 10:07:52PM -0800, Alexander Kojevnikov wrote:
> On Wed, Feb 27, 2013 at 3:56 AM, Michael Niedermayer <michaelni at gmx.at> wrote:
> > On Tue, Feb 26, 2013 at 10:28:42PM -0800, Alexander Kojevnikov wrote:
> >> Commit 6776a8f[0] introduced a regression in calculation[1] of the bit
> >> rate of VBR streams. Instead of keeping the bit rate from the Xiph
> >> tag, it now overrides it during parsing with the bit rate from one of
> >> the frames.
> >>
> >> Attached patch should fix it. It relies on the assumption[2] that the
> >> Xiph/Info tag has "Xiph" id string for VBR streams and "Info" for CBR.
> >
> > xiph ?
> 
> My apologies, it's "Xing", not "Xiph".
> 
> > and it seems the patch breaks "make fate"
> > --- ./tests/ref/lavf-fate/mp3   2013-02-26 02:17:04.526545833 +0100
> > +++ tests/data/fate/lavf-fate-mp3       2013-02-27 12:50:36.909166861 +0100
> > @@ -1,3 +1,3 @@
> > -40a4e41ae74ec8dacdf02402831a6a58 *./tests/data/lavf-fate/lavf.mp3
> > -97230 ./tests/data/lavf-fate/lavf.mp3
> > +98ed29febe5ddfe85eef0d3460701141 *./tests/data/lavf-fate/lavf.mp3
> > +95970 ./tests/data/lavf-fate/lavf.mp3
> >  ./tests/data/lavf-fate/lavf.mp3 CRC=0x6c9850fe
> 
> I checked both generated files, the difference is only in the first
> frame containing the Xing tag, the length and content of which is
> driven by the previously deducted bit rate. The first frame of the
> underlying VBR mp3 stream has a bit rate of 32 kbps, while the last
> looked up frame has a bit rate 320 kbps. The muxer selects the size of
> the first frame (to contain the Xing tag) depending on the deducted
> bit rate, both sizes are equally correct. I updated the test file to
> reflect this.

This patch still breaks some of my mp3 files
try testcase.mp3 from the lame repository as example (but it affects
other files too)
http://lame.cvs.sourceforge.net/viewvc/lame/lame/testcase.mp3?view=log

before the patch it seems the initial skiping of samples works:
[mp3 @ 0x28d21a0] pad 576 920
[mp3 @ 0x28d21a0] demuxer injecting skip 1105
[mp3 @ 0x28d2a00] skip 1105 samples due to side data
[mp3 @ 0x28d2a00] skip 1105/1152 samples
afterwards:
nothing

if you decode it to .wav the size also changes

[...]

-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

The real ebay dictionary, page 1
"Used only once"    - "Some unspecified defect prevented a second use"
"In good condition" - "Can be repaird by experienced expert"
"As is" - "You wouldnt want it even if you were payed for it, if you knew ..."
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20130228/eacb6dff/attachment.asc>


More information about the ffmpeg-devel mailing list