After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 339446 - [matroska] can't play file if details come before type in track header
[matroska] can't play file if details come before type in track header
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-good
0.10.5
Other Linux
: Normal normal
: 0.10.3
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2006-04-23 07:19 UTC by Young-Ho Cha
Modified: 2006-04-25 18:10 UTC
See Also:
GNOME target: ---
GNOME version: 2.13/2.14


Attachments
matroska demuxer log when totem can't play file. (445.24 KB, text/plain)
2006-04-23 07:20 UTC, Young-Ho Cha
Details

Description Young-Ho Cha 2006-04-23 07:19:16 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.
Comment 1 Young-Ho Cha 2006-04-23 07:20:59 UTC
Created attachment 64129 [details]
matroska demuxer log when totem can't play file.
Comment 2 Young-Ho Cha 2006-04-23 08:17:54 UTC
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.
Comment 3 Tim-Philipp Müller 2006-04-23 09:31:58 UTC
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?

Comment 4 Young-Ho Cha 2006-04-23 12:54:59 UTC
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.
Comment 5 Tim-Philipp Müller 2006-04-23 17:52:17 UTC
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.

Comment 6 Tim-Philipp Müller 2006-04-25 18:10:11 UTC
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.