GNOME Bugzilla – Bug 339446
[matroska] can't play file if details come before type in track header
Last modified: 2006-04-25 18:10:11 UTC
totem can't play some mkv files that i have. when playing this file with mplayer, mplayer shows these infomations. [mkv] Track ID 1: video (V_MS/VFW/FOURCC), -vid 0 [mkv] Track ID 2: audio (A_AAC/MPEG2/LC), -aid 0, -alang eng [mkv] Will play video track 1 [mkv] Will play audio track 2 Matroska file format detected. VIDEO: [XVID] 704x480 12bpp 24.246 fps 0.0 kbps ( 0.0 kbyte/s) ========================================================================== Opening audio decoder: [faad] AAC (MPEG2/4 Advanced Audio Coding) FAAD: compressed input bitrate missing, assuming 128kbit/s! AUDIO: 48000 Hz, 2 ch, s16le, 128.0 kbit/8.33% (ratio: 16000->192000) Selected audio codec: [faad] afm: faad (FAAD AAC (MPEG-2/MPEG-4 Audio) decoder) ========================================================================== Xlib: extension "XFree86-VidModeExtension" missing on display ":0.0". ========================================================================== Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family Selected video codec: [ffodivx] vfm: ffmpeg (FFmpeg MPEG-4) ========================================================================== I'll attach gstreamer matroska debug meessage.
Created attachment 64129 [details] matroska demuxer log when totem can't play file.
I found "trackvideo EBML entry in non-video track - ignoring track" in log file. so I modified source file to print context->type in gst/matroska/matroska-demux.c:419 and I found context->type is not GST_MATROSKA_TRACK_TYPE_VIDEO, but 0x0000. and when playing another file, it prints "trackaudio EBML entry in non-audio track - ignoring track", too. and context->type is 0x0000 too.
This looks at first glance like a possible duplicate of bug #338767 - could you check whether it works with -base CVS or -good CVS? Is the file available somewhere?
I tested with matroskademux CVS HEAD. You can download mkv clip from below urls. http://ftp.mizi.com/~ganadist/test01.mkv http://ftp.mizi.com/~ganadist/test02.mkv test01.mkv is played with totem and mplayer test02.mkv is played only mplayer, totem can't. both files' size is 10Mb and these files are just dumped from original mkv file with 'dd' command. (cause files are too big, and have some copyright issues) so these files can't seek position.
Right, the matroska demuxer expects the track type to come before the track details in the track header. Looks like this is not always true. Will fix tomorrow. Thanks for the sample files.
Should be fixed in CVS now: 2006-04-25 Tim-Philipp Müller <tim at centricular dot net> * gst/matroska/Makefile.am: * gst/matroska/matroska-demux.c: (gst_matroska_demux_add_stream), (gst_matroska_demux_handle_src_event): * gst/matroska/matroska-ids.c: (gst_matroska_track_init_video_context), (gst_matroska_track_init_audio_context), (gst_matroska_track_init_subtitle_context), (gst_matroska_track_init_complex_context): * gst/matroska/matroska-ids.h: Handle case where the TrackType ebml chunk does not come before the TrackInfoAudio or TrackInfoVideo ebml chunk (#339446). Ignore QoS events.