[Bug 755918] decodebin: Fix assertion errors when caps is not fixed
GStreamer (GNOME Bugzilla)
bugzilla at gnome.org
Sun Oct 4 19:55:42 PDT 2015
https://bugzilla.gnome.org/show_bug.cgi?id=755918
--- Comment #3 from Vineeth <vineeth.tm at samsung.com> ---
(In reply to Sebastian Dröge (slomo) from comment #2)
> Review of attachment 312466 [details] [review]:
>
> ::: gst/playback/gstdecodebin2.c
> @@ +4449,3 @@
> gst_caps_unref (caps);
> + gst_structure_free (u);
> + return NULL;
>
> Seems a bit extreme to directly return NULL here. What about returning
> incomplete information instead?
>
> Also how can you even get unfixed caps here?
>
I am not sure if this scenario is possible.
While debugging another issue, just saw this piece of code,
where when the caps is unfixed, then
gst_caps_unref (caps);
caps = NULL;
is being done, and the same will be passed on to
gst_structure_id_set (u, topology_caps, GST_TYPE_CAPS, caps, NULL);
Passing NULL to this will cause assertion error.
By incomplete information you mean all other information without caps right?
But not sure if that makes much sense without caps :)
> @@ +4468,3 @@
> s = gst_decode_chain_get_topology (dbin->decode_chain);
>
> + if (s) {
>
> When does it return NULL? Should probably cause a GST_WARNING_OBJECT()
> somewhere.
Again this is a highly unlikely scenario :)
In the function gst_decode_chain_get_topology
if (G_UNLIKELY ((chain->endpad || chain->deadend)
&& (chain->endcaps == NULL))) {
GST_WARNING ("End chain without valid caps !");
return NULL;
}
So here it might return NULL. Hence that check was needed
--
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