[Bug 793333] matroskademux: Allow Matroska headers to be read more than once

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Sat Sep 22 12:55:01 UTC 2018


https://bugzilla.gnome.org/show_bug.cgi?id=793333

--- Comment #29 from Alicia Boya GarcĂ­a <aboya at igalia.com> ---
Created attachment 373737
  --> https://bugzilla.gnome.org/attachment.cgi?id=373737&action=edit
Quality change test vectors for WebM and MP4 (for comparison)

This is something we have already been doing for very long in qtdemux.

$ formatter=(perl -ne 'if (/E \(type: ((stream-start|caps) .*);\)
0x[a-f0-9]+$/) { $event = $1; $event =~ s/\\//g; $event =~
s/(codec_data|stream-id)=.*?,/\1=(...),/; print "* $event\n" }')

# qtdemux, no MSE initialization segment (moov) changes.

$ gst-launch-1.0 pushfilesrc location=<(cat
car-20120827-85.mp4/{init,media1}.mp4) ! qtdemux ! fakesink silent=false -v |
"${formatter[@]}"
* stream-start (10254), GstEventStreamStart, stream-id=(...),
flags=(GstStreamFlags)GST_STREAM_FLAG_NONE, group-id=(uint)1
* caps (12814), GstEventCaps, caps=(GstCaps)"video/x-h264,
stream-format=(string)avc, alignment=(string)au, level=(string)2.1,
profile=(string)main, codec_data=(...), width=(int)426, height=(int)240,
pixel-aspect-ratio=(fraction)1/1"
* caps (12814), GstEventCaps, caps=(GstCaps)"video/x-h264,
stream-format=(string)avc, alignment=(string)au, level=(string)2.1,
profile=(string)main, codec_data=(...), width=(int)426, height=(int)240,
pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)24000/1001"

# qtdemux, with a MSE initialization segment (moov) change.

$ gst-launch-1.0 pushfilesrc location=<(cat
car-20120827-85.mp4/{init,media1}.mp4 car-20120827-86.mp4/{init,media1}.mp4) !
qtdemux ! fakesink silent=false -v | "${formatter[@]}"
* stream-start (10254), GstEventStreamStart, stream-id=(...),
flags=(GstStreamFlags)GST_STREAM_FLAG_NONE, group-id=(uint)1
* caps (12814), GstEventCaps, caps=(GstCaps)"video/x-h264,
stream-format=(string)avc, alignment=(string)au, level=(string)2.1,
profile=(string)main, codec_data=(...), width=(int)426, height=(int)240,
pixel-aspect-ratio=(fraction)1/1"
* caps (12814), GstEventCaps, caps=(GstCaps)"video/x-h264,
stream-format=(string)avc, alignment=(string)au, level=(string)2.1,
profile=(string)main, codec_data=(...), width=(int)426, height=(int)240,
pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)24000/1001"
* caps (12814), GstEventCaps, caps=(GstCaps)"video/x-h264,
stream-format=(string)avc, alignment=(string)au, level=(string)3,
profile=(string)main, codec_data=(...), width=(int)640, height=(int)360,
pixel-aspect-ratio=(fraction)1/1"
* caps (12814), GstEventCaps, caps=(GstCaps)"video/x-h264,
stream-format=(string)avc, alignment=(string)au, level=(string)3,
profile=(string)main, codec_data=(...), width=(int)640, height=(int)360,
pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)24000/1001"

Now matroskademux is doing the same:

# matroskademux, no MSE initialization segment (Tracks element) changes.

$ gst-launch-1.0 pushfilesrc location=<(cat
feelings_vp9-20130806-242.webm/{init,media1}.webm) ! matroskademux ! fakesink
silent=false -v | "${formatter[@]}"
* stream-start (10254), GstEventStreamStart, stream-id=(...),
flags=(GstStreamFlags)GST_STREAM_FLAG_SELECT, group-id=(uint)1
* caps (12814), GstEventCaps, caps=(GstCaps)"video/x-vp9, width=(int)426,
height=(int)240, framerate=(fraction)0/1"

# matroskademux, MSE initialization segment (Tracks element) changes

$ gst-launch-1.0 pushfilesrc location=<(cat
feelings_vp9-20130806-242.webm/{init,media1}.webm
feelings_vp9-20130806-247.webm/{init,media1}.webm) ! matroskademux ! fakesink
silent=false -v | "${formatter[@]}"
* stream-start (10254), GstEventStreamStart, stream-id=(...),
flags=(GstStreamFlags)GST_STREAM_FLAG_SELECT, group-id=(uint)1
* caps (12814), GstEventCaps, caps=(GstCaps)"video/x-vp9, width=(int)426,
height=(int)240, framerate=(fraction)0/1"
* caps (12814), GstEventCaps, caps=(GstCaps)"video/x-vp9, width=(int)1280,
height=(int)720, framerate=(fraction)0/1"

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list