[FFmpeg-devel] [PATCH] set correct bytespersec value in wav/ima_adpcm header

Michael Niedermayer michaelni
Mon May 3 04:09:23 CEST 2010


On Sun, May 02, 2010 at 05:07:38PM +0300, ucsavl at gmail.com wrote:
> I'm using ffmpeg to convert mp3s to wav + ima_idpcm so I could listen to
> them on a mobile phone that doesn't support mp3.
> 
> The problem is the files always appear shorter than they are because of
> the bogus bytespersec value in the header. When using sox instead of
> ffmpeg they're OK, but sox is orders of magnitude slower than ffmpeg,
> so it's of no use to me.
> 
> This patch sets the bytespersec value to
> (packets per second) * (bytes per packet), where (packets per second) 
> is calculated from (samples per second) / (samples per packet).
> 
> For reference, according to libavcodec/avcodec.h:
> enc->sample_rate		samples per second
> enc->frame_size			samples per packet
> enc->block_align, blkalign	bytes per packet
> 
> diff --git a/libavformat/riff.c b/libavformat/riff.c
> index 340fd76..94b1ae2 100644
> --- a/libavformat/riff.c
> +++ b/libavformat/riff.c
> @@ -370,6 +370,9 @@ int ff_put_wav_header(ByteIOContext *pb, AVCodecContext *enc)
>          enc->codec_id == CODEC_ID_PCM_F64LE ||
>          enc->codec_id == CODEC_ID_PCM_S16LE) {
>          bytespersec = enc->sample_rate * blkalign;
> +    } else if(enc->codec_id == CODEC_ID_ADPCM_IMA_WAV) {
> +	bytespersec = (enc->sample_rate * blkalign + enc->frame_size / 2) /
> +		enc->frame_size;

is adding CODEC_ID_ADPCM_IMA_WAV to the previous if() failing?
also tabs arent allowed in ffmpeg svn

[...]

-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Rewriting code that is poorly written but fully understood is good.
Rewriting code that one doesnt understand is a sign that one is less smart
then the original author, trying to rewrite it will not make it better.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20100503/36912e14/attachment.pgp>



More information about the ffmpeg-devel mailing list