[FFmpeg-devel] [PATCH] ffmpeg 0.10.x set correct bit rate in riff wav headers

Wilfried Weissmann wweissmann at realnetworks.com
Tue Aug 12 14:53:51 CEST 2014


I did cherry-pick from http://git.videolan.org/?p=ffmpeg.git;a=commit;h=7d7b40f48a05af4483b31cdb8b4f1808b97b1f2f to my local repo and applied it to the 0.10 branch.

I assumed the test/ref/... are for unit tests and included these changes too. Is that what you are referring to when you say the patch does not look correct? After fixing some compile issues of the test suite (because of disabled features?) a "make check" completed without errors. That is why I tought the changes to those files are valid.

Greetings,
Wilfried

> -----Ursprüngliche Nachricht-----
> Von: ffmpeg-devel-bounces at ffmpeg.org [mailto:ffmpeg-devel-
> bounces at ffmpeg.org] Im Auftrag von Michael Niedermayer
> Gesendet: Dienstag, 12. August 2014 14:23
> An: FFmpeg development discussions and patches
> Betreff: Re: [FFmpeg-devel] [PATCH] ffmpeg 0.10.x set correct bit rate
> in riff wav headers
> 
> On Tue, Aug 12, 2014 at 11:45:11AM +0000, Wilfried Weissmann wrote:
> > Hi,
> >
> > The attached patch fixes incorrect bit rate values in riff headers
> when a conversion is done from 16 bit samples to alaw.
> >
> > [user at test ffmpeg-new]$ ./ffprobe ../sample.wav 2>&1 | tail -4 Input
> > #0, wav, from '../sample.wav':
> >   Duration: 00:00:10.00, bitrate: 256 kb/s
> >     Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 16000 Hz,
> 1 channels,                        s16, 256 kb/s
> >
> > [user at test ffmpeg-new]$ ./ffmpeg -i ../sample.wav -f wav -acodec
> pcm_alaw -ac 1                        -ar 8000  ../sample.alaw.wav
> > ffmpeg version 0.10.14 Copyright (c) 2000-2014 the FFmpeg developers
> >   built on Aug 12 2014 12:30:33 with gcc 4.1.2 20080704 (Red Hat
> 4.1.2-51)
> >   configuration: --disable-yasm
> >   libavutil      51. 35.100 / 51. 35.100
> >  libavcodec     53. 61.100 / 53. 61.100
> >   libavformat    53. 32.100 / 53. 32.100
> >   libavdevice    53.  4.100 / 53.  4.100
> >   libavfilter     2. 61.100 /  2. 61.100
> >   libswscale      2.  1.100 /  2.  1.100
> >   libswresample   0.  6.100 /  0.  6.100
> > [wav @ 0x158813a0] max_analyze_duration 5000000 reached at 5120000
> > Input #0, wav, from '../sample.wav':
> >   Duration: 00:00:10.00, bitrate: 256 kb/s
> >     Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 16000 Hz,
> 1 channels,                        s16, 256 kb/s
> > File '../sample.alaw.wav' already exists. Overwrite ? [y/N] y Output
> > #0, wav, to '../sample.alaw.wav':
> >   Metadata:
> >     encoder         : Lavf53.32.100
> >     Stream #0:0: Audio: pcm_alaw ([6][0][0][0] / 0x0006), 8000 Hz, 1
> channels, s                       16, 64 kb/s
> > Stream mapping:
> >   Stream #0:0 -> #0:0 (pcm_s16le -> pcm_alaw) Press [q] to stop, [?]
> > for help
> > size=      78kB time=00:00:09.99 bitrate=  64.0kbits/s
> > video:0kB audio:78kB global headers:0kB muxing overhead 0.072509%
> > [user at test ffmpeg-new]$ ./ffprobe ../sample.alaw.wav 2>&1 | tail -4
> Input #0, wav, from '../sample.alaw.wav':
> >   Duration: 00:00:09.99, bitrate: 64 kb/s
> >     Stream #0:0: Audio: pcm_alaw ([6][0][0][0] / 0x0006), 8000 Hz, 1
> channels, s                       16, 64 kb/s
> >
> > Without the patch ffprobe would report a bit rate of 128kb/s.
> >
> > Greetings,
> > Wilfried
> >
> 
> >  libavcodec/pcm.c             |    1 +
> >  tests/ref/acodec/pcm_alaw    |    2 +-
> >  tests/ref/acodec/pcm_mulaw   |    2 +-
> >  tests/ref/seek/pcm_alaw_wav  |   36 ++++++++++++++++++--------------
> ----
> >  tests/ref/seek/pcm_mulaw_wav |   36 ++++++++++++++++++--------------
> ----
> >  5 files changed, 39 insertions(+), 38 deletions(-)
> > b49e6729732102f81842fdc6f17c9bb690aea642
> > 0001-merge-pcmenc-set-correct-bitrate-value.patch
> > From 4cf471903c9285f3e7dd035f0ef9cf153ad28535 Mon Sep 17 00:00:00
> 2001
> 
> > From: user <user at localhost.localdomain>
> 
> like carl said, this looks wrong, but ive found the correct commit from
> where this came already, ill backport it to release/0.10 so it will be
> in the next release from that branch
> 
> thanks
> 
> PS: i suggest you use a modern FFmpeg like from the latest release
>     which is 2.3.2 ATM, 0.10 is a bit old already ...
> 
> [...]
> 
> --
> Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
> 
> Old school: Use the lowest level language in which you can solve the
> problem
>             conveniently.
> New school: Use the highest level language in which the latest
> supercomputer
>             can solve the problem without the user falling asleep
> waiting.


More information about the ffmpeg-devel mailing list