GNOME Bugzilla – Bug 429476
[mpeg2dec] can't play auge.mpg
Last modified: 2011-08-23 08:05:19 UTC
This MPEG file fails to play in Totem, http://www.tu-chemnitz.de/misc/demo/auge.mpg ** Message: Error: Could not decode stream. gstmpeg2dec.c(1082): gst_mpeg2dec_chain (): /play/decodebin0/mpeg2dec0 It seems to play fine with ffplay. GStreamer versions, gstreamer0.10-ffmpeg 0.10.2-1 gstreamer0.10-gnomevfs 0.10.12-2 gstreamer0.10-plugins-base 0.10.12-2 gstreamer0.10-plugins-good 0.10.5-5 gstreamer0.10-plugins-really-bad 0.10.3-0.5 gstreamer0.10-plugins-ugly 0.10.5-2 gstreamer0.10-x 0.10.12-2 libgstreamer0.10-0 0.10.12-3 libgstreamer0.10-dev 0.10.12-3
It seems mpeg2dec does not like this file. flump2vdec plays fine.
mpeg2dec (the program) plays it fine, so it's likely a bug in the gstreamer element.
Ignoring STATE_INVALID and continuing to attempt decoding instead of bailing out makes it work fine. I suspect it's a corner case inside libmpeg2 because the video appears to have only 1 slice. I don't know what we can do to work around this, but it seems the current idea of using STATE_INVALID to increase the error count and skip is flawed - there's no decoding errors in this file.
I don't think we should use such an error count. We should only produce a fatal error when we have no chance of recovering from a situation.
ffdec_mpeg2video also plays it fine :(
Just tested this, bug is still around with current git code.
Created attachment 194389 [details] [review] mpeg2dec: fix spurious failure to decode some files Parsing can return with an 'invalid' state, but this is not actually fatal. For one, the mpeg2dec command line tool that comes with the libmpeg2 library blithely ignores this condition and merrily goes on. So we do this same, logging the error, and going on with parsing. This makes something work that did not use to work, and brings happiness to the world.
commit a09bad4d98f513149c4e29c97f82c1b49d583fda Author: Vincent Penquerc'h <vincent.penquerch@collabora.co.uk> Date: Mon Aug 22 17:49:14 2011 +0100 mpeg2dec: fix spurious failure to decode some files Parsing can return with an 'invalid' state, but this is not actually fatal. For one, the mpeg2dec command line tool that comes with the libmpeg2 library blithely ignores this condition and merrily goes on. So we do this same, logging the error, and going on with parsing. This makes something work that did not use to work, and brings happiness to the world. https://bugzilla.gnome.org/show_bug.cgi?id=429476