[Bug 764347] baseparse: Fix generated caps for GAP event
GStreamer (GNOME Bugzilla)
bugzilla at gnome.org
Tue Apr 5 00:12:03 UTC 2016
https://bugzilla.gnome.org/show_bug.cgi?id=764347
--- Comment #3 from Seungha Yang <sh.yang at lge.com> ---
(In reply to Sebastian Dröge (slomo) from comment #2)
> Comment on attachment 324984 [details] [review]
> baseparse: Fix generated caps for GAP event
>
> Can you provide an example sinkpad caps and downstream caps where you see
> this problem, and which caps are then generated for the GAP event?
Followings are example log for problem happen case.
- NG case
As we can see, some fields in src CAPS are removed compared to sink caps
51 0:00:00.476524417 5827 0x72411490 DEBUG GST_EVENT
gstpad.c:5497:gst_pad_send_event_unchecked:<mpeg4vparse0:sink> have event type
gap event: 0x72e19570, time 99:99:99.999999999, seq-num 1515, GstEventGap,
timestamp=(guint64)0, duration=(guint64)7000000;
52 0:00:00.476561375 5827 0x72411490 DEBUG baseparse
gstbaseparse.c:1182:gst_base_parse_sink_event_default:<mpeg4vparse0> handling
event 40966, gap
53 0:00:00.476577875 5827 0x72411490 DEBUG baseparse
gstbaseparse.c:1420:gst_base_parse_sink_event_default:<mpeg4vparse0> draining
current data due to gap event
54 0:00:00.478419083 5827 0x72411490 LOG baseparse
gstbaseparse.c:1104:gst_base_parse_negotiate_default_caps:<mpeg4vparse0> peer
caps video/mpeg, mpegversion=(int)4, width=(int)[ 0, 2147483647 ],
height=(int)[ 0, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ],
parsed=(boolean)true, systemstream=(boolean)false
55 0:00:00.478489167 5827 0x72411490 LOG baseparse
gstbaseparse.c:1111:gst_base_parse_negotiate_default_caps:<mpeg4vparse0>
current caps video/mpeg, mpegversion=(int)4, systemstream=(boolean)false,
container=(string)"ISO\ MP4/M4A", format=(string)mp4v,
timestamptype=(boolean)true, profile=(string)simple, level=(string)1,
codec_data=(buffer)000001b001000001b58913000001000000012000c48d8800f50f04281463000001b24c61766335312e34302e34,
width=(int)480, heigh t=(int)320, framerate=(fraction)30/1,
pixel-aspect-ratio=(fraction)1/1 for sinkpad
56 0:00:00.478590083 5827 0x72411490 INFO baseparse
gstbaseparse.c:1126:gst_base_parse_negotiate_default_caps:<mpeg4vparse0> Chose
default caps video/mpeg, mpegversion=(int)4, width=(int)480, height=(int)320,
framerate=(fraction)30/1, parsed=(boolean)true, systemstream=(boolean)false for
initial gap
And, with this proposed patch, all fields are reserved
52 0:00:00.548830042 5346 0x72411490 DEBUG baseparse
gstbaseparse.c:1160:gst_base_parse_sink_event_default:<mpeg4vparse0> handling
event 40966, gap
53 0:00:00.548846958 5346 0x72411490 DEBUG baseparse
gstbaseparse.c:1398:gst_base_parse_sink_event_default:<mpeg4vparse0> draining
current data due to gap event
54 0:00:00.549786750 5346 0x72411490 LOG baseparse
gstbaseparse.c:1085:gst_base_parse_negotiate_default_caps:<mpeg4vparse0> peer
caps video/mpeg, mpegversion=(int)4, width=(int)[ 0, 2147483647 ],
height=(int)[ 0, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ],
parsed=(boolean)true, systemstream=(boolean)false
55 0:00:00.550151375 5346 0x72411490 LOG baseparse
gstbaseparse.c:1091:gst_base_parse_negotiate_default_caps:<mpeg4vparse0>
current caps video/mpeg, mpegversion=(int)4, systemstream=(boolean)false,
container=(string)"ISO \ MP4/M4A", format=(string)mp4v,
timestamptype=(boolean)true, profile=(string)simple, level=(string)1,
codec_data=(buffer)000001b001000001b58913000001000000012000c48d8800f50f04281463000001b24c61766335312e34302e34,
width=(int)480, hei ght=(int)320, framerate=(fraction)30/1,
pixel-aspect-ratio=(fraction)1/1 for sinkpad
56 0:00:00.550328292 5346 0x72411490 INFO baseparse
gstbaseparse.c:1104:gst_base_parse_negotiate_default_caps:<mpeg4vparse0> Chose
default caps video/mpeg, mpegversion=(int)4, systemstream=(boolean)false,
container=(string)"ISO\ MP4/M4A", format=(string)mp4v,
timestamptype=(boolean)true, profile=(string)simple, level=(string)1,
codec_data=(buffer)000001b001000001b58913000001000000012000c48d8800f50f04281463000001b24c61766335312e34302e34,
width=(int)480, height=(int)320, framerate=(fraction)30/1,
pixel-aspect-ratio=(fraction)1/1, parsed=(boolean)true for initial gap
- From my understanding, other parse elements works like this, that is, some
caps fields are modified or fixated based on src caps template and, other caps
seems like passed to src caps.
--
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