On Mon, Apr 28, 2008 at 01:53:56PM +0200, Michel Bardiaux wrote:
Diego Biurrun wrote:
On Fri, Apr 25, 2008 at 12:10:06PM +0200, Michel Bardiaux wrote:
[...]
While you guys are at it, there are still a couple of samples that do not work in ffplay:
ffmpeg -i levis.avi -vn -acodec pcm_s16le -y levis.avi.wav FFmpeg version SVN-r13009, Copyright (c) 2000-2008 Fabrice Bellard, et al. configuration: --enable-libmp3lame --enable-gpl --enable-x11grab --enable-libgsm libavutil version: 49.6.0 libavcodec version: 51.56.0 libavformat version: 52.13.0 libavdevice version: 52.0.0 built on Apr 28 2008 12:14:17, gcc: 4.1.2 20061115 (prerelease) (Debian 4.1.1-21) Input #0, avi, from 'levis.avi': Duration: 00:00:44.83, start: 0.000000, bitrate: 352 kb/s Stream #0.0: Video: indeo3, yuv410p, 152x116, 6.00 tb(r) Stream #0.1: Audio: libgsm_ms, 44100 Hz, mono, 71 kb/s Output #0, wav, to 'levis.avi.wav': Stream #0.0: Audio: pcm_s16le, 44100 Hz, mono, 705 kb/s Stream mapping: Stream #0.1 -> #0.0 [libgsm_ms @ 0x8451ff0]Sample rate 8000Hz required for GSM, got 44100Hz Error while opening codec for input stream #0.1
IMHO the codec should not second-guess the demuxer,
but libgsm.c does exactly that ...
its the latter that should fix things if the file is obviously corrupted (which this one is!).
I see nothing corrupt on the file
That is, at the end of get_wav_header (proper patch when there is agreement of the ways and means). Theoretically there is no maintainer for riff.c but since Michael is maintainer for the avi muxdemux I guess he is for riff.c too (should I correct MAINTAINERS?)
Yes i mainain riff.c, feel free to add me to the list if you like ...
And whether the demuxer or the codec changes the sample rate, a warning should be issued. OK?
Print as many warnings as you like :) but please dont reject streams at random, patch below fixes this file and i suspect others as well, i will apply it in 24h unless you object. Index: libgsm.c =================================================================== --- libgsm.c (revision 13005) +++ libgsm.c (working copy) @@ -41,18 +41,6 @@ avctx->channels); return -1; } - if (avctx->sample_rate != 8000) { - av_log(avctx, AV_LOG_ERROR, "Sample rate 8000Hz required for GSM, got %dHz\n", - avctx->sample_rate); - return -1; - } - if (avctx->bit_rate != 13000 /* Official */ && - avctx->bit_rate != 13200 /* Very common */ && - avctx->bit_rate != 0 /* Unknown; a.o. mov does not set bitrate when decoding */ ) { - av_log(avctx, AV_LOG_ERROR, "Bitrate 13000bps required for GSM, got %dbps\n", - avctx->bit_rate); - return -1; - } avctx->priv_data = gsm_create(); [...] -- Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB Frequently ignored awnser#1 FFmpeg bugs should be sent to our bugtracker. User questions about the command line tools should be sent to the ffmpeg-user ML. And questions about how to use libav* should be sent to the libav-user ML.