[Bug 665989] a52dec: segfault when copying liba52's buffer into gst's buffer

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Mon Dec 12 05:24:15 PST 2011


https://bugzilla.gnome.org/show_bug.cgi?id=665989
  GStreamer | gst-plugins-ugly | git

--- Comment #7 from Sebastian Dröge <slomo at circular-chaos.org> 2011-12-12 13:24:09 UTC ---
(In reply to comment #6)
> (In reply to comment #5)
> > The only difference of the _set_caps() variant is, that it automatically calls
> > your srcpad's setcaps function. core doesn't do anything special for the
> > non-set_caps() variant other than giving you the buffer provided by downstream.
> > 
> 
> ... but only after calling gst_pad_accept_caps(), which should not succeed in a
> typical fixed src caps situation (for really different caps at least).

Yes, if the _set_caps() variant is used that's true. If it isn't the caller has
to do this.

> > 
> > Also downstream is not required to check if the different caps it returns (and
> > in the case of capsfilter the size will be 0 btw, capsfilter can't calculate
> > the size of buffers from the caps) are actually supported by upstream. Upstream
> > always has to check the caps and size.
> 
> Yes, upstream should check, but that could be core code, as in:
> 
> (from gst_pad_alloc_buffer_full())
>   /* sanity check (only if caps are the same) */
>   if (G_LIKELY (newcaps == caps) && G_UNLIKELY (GST_BUFFER_SIZE (*buf) < size))
>     goto wrong_size_fallback;
> 
> In another world, it could/might always check regardless of whether caps are
> the same.

Agreed, fortunately this is gone in 0.11 and replaced by something better ;)

-- 
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- 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