GNOME Bugzilla – Bug 612443
oggdemux: only use information from skeleton if we have nothing better
Last modified: 2011-09-19 22:23:08 UTC
gstreamer is unable to read the OGV file night_of_the_living_dead.ogv (from http://www.archive.org/details/night_of_the_living_dead ) with the following pipeline: gst-launch playbin uri=file:///data/video/night_of_the_living_dead.ogv It simply displays the following messages, and blocks without any output: Setting pipeline to PAUSED ... Pipeline is PREROLLING ... (gst-launch-0.10:18423): GStreamer-CRITICAL **: _gst_util_uint64_scale: assertion `denom != 0' failed Pipeline is PREROLLED ... Setting pipeline to PLAYING ... New clock: GstAudioSinkClock The file can be read with xine, vlc, mplayer. mplayer gives the following information about an unknown type for stream 0, it maybe a cause: Playing /data/video/night_of_the_living_dead.ogv. Ogg stream 0 is of an unknown type [Ogg] stream 1: video (Theora v3.2.1), -vid 0 [Ogg] stream 2: audio (Vorbis), -aid 0
The problem here seems to be, that the skeleton stream contains invalid (?) information. prestime is 0/1000, basetime is 0/0 (which gives the warning above).
The Ogg file currently on archive does not contain a skeleton stream, I guess it's been reencoded since. Could you attach the file /tmp/OUT created by: dd if=/data/video/night_of_the_living_dead.ogv of=/tmp/OUT bs=4096 count=1024 Thanks.
I have extracted the first 4MB and put them online at http://liris.cnrs.fr/advene/debian/tmp/OUT (bugzilla does not accept non-patch attachments larger than 1MB)
Created attachment 178237 [details] [review] oggstream: only use information from skeleton if we have nothing better The codec setup headers are a lot more likely to have correct information, especially as it's easy to remux a skeleton in a file where streams don't have the same parameters (I've even seen a file with two skeletons). Still, this is useful in the case we have a codec we can't decode, so we can at least (theoretically) convert granpos to time, so we discard this information if the codec setup has already provided it. This fixes playback on (at lesat) the original archive.org encoding of "The Night of the Living Dead" (now replaced by another encoding).
Looks good, will push after freeze.
Just realized this isn't in yet, so just a little ping to bring it forward :) Cheers
commit c956c5fd008fdc7ff6ebcdbfe79d1d0332ae0374 Author: Vincent Penquerc'h <vincent.penquerch@collabora.co.uk> Date: Thu Jan 13 15:35:30 2011 +0000 oggstream: only use information from skeleton if we have nothing better The codec setup headers are a lot more likely to have correct information, especially as it's easy to remux a skeleton in a file where streams don't have the same parameters (I've even seen a file with two skeletons). Still, this is useful in the case we have a codec we can't decode, so we can at least (theoretically) convert granpos to time, so we discard this information if the codec setup has already provided it. This fixes playback on (at lesat) the original archive.org encoding of "The Night of the Living Dead" (now replaced by another encoding). https://bugzilla.gnome.org/show_bug.cgi?id=612443