GNOME Bugzilla – Bug 317872
Cannot demux ASF/WMV files with auxillary (non-audio/video) streams
Last modified: 2006-02-17 14:26:34 UTC
Please describe the problem: The ASF file format makes provisions for streams that do not contain audio or video. These contain additional content such as text or scripting commands (e.g. open a url in web browser). When encountering such a stream GStreamer regards it as a fatal error. Instead, it should print a warning and continue on to the next stream. Steps to reproduce: Try playing this video: http://www.demonseed.net/gstasfdemux-jsnfix-sample.wmv Actual results: Without the patch the video will not play and a fatal error will be reported. Expected results: The video will play correctly. Does this happen every time? yes. Other information: Patch against gst-plugins-0.8.11/gst/asfdemux/gstasfdemux.c --- gstasfdemux.c 2005-06-14 12:38:01.000000000 -0400 +++ gstasfdemux-FIXED.c 2005-09-28 18:39:12.000000000 -0400 @@ -1189,9 +1189,8 @@ return FALSE; break; default: - GST_ELEMENT_ERROR (asf_demux, STREAM, WRONG_TYPE, (NULL), - ("unknown asf stream (id %08x)", (guint) stream_id)); - return FALSE; + GST_WARNING ("unknown asf stream (id %08x)", (guint) stream_id); + gst_bytestream_flush (asf_demux->bs, *obj_size - 24 - sizeof(object)); } return TRUE; @@ -1252,7 +1251,8 @@ switch (obj_id) { case ASF_OBJ_STREAM: - return gst_asf_demux_process_stream (asf_demux, &obj_size); + gst_asf_demux_process_stream (asf_demux, &obj_size); + return TRUE; case ASF_OBJ_DATA: gst_asf_demux_process_data (asf_demux, &obj_size); /* This is the last object */
Patch looks OK. Ronald how does this look to you?
patch applied to 0.10 version. It does solve some issues (it will play the recognized tracks) and allows the user to play the file. 2006-02-17 Edward Hervey <edward@fluendo.com> * gst/asfdemux/gstasfdemux.c: (gst_asf_demux_process_stream): Do not error out on non-recognized streams. Ignore them and allow playback of the other streams.
Guys, please keep backporting patches to 0.8 as long as someone is willing to do maintainance releases.