[Bug 687183] playbin: caps negotation if VIDEO_FORMAT is unknown

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Mon Nov 11 02:42:40 PST 2013


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

--- Comment #58 from Sebastian Dröge (slomo) <slomo at coaxion.net> 2013-11-11 10:42:38 UTC ---
(In reply to comment #50)
> (In reply to comment #48)
> > Review of attachment 257412 [details] [details]:
> > 
> > ::: gst-libs/gst/video/gstvideodecoder.c
> > @@ +2941,3 @@
> >    gst_video_info_init (&vinfo);
> > +  if (outcaps)
> > +    gst_video_info_from_caps (&vinfo, outcaps);
> > 
> > The vinfo is probably used some lines below, not sure if the default values in
> > there make sense or something else should be done instead
> 
> I think this is correct. Because the vinfo.size is zero in both places where it
> uses and that is what we needed. right?

Probably

> > @@ +3198,3 @@
> >    GST_VIDEO_DECODER_STREAM_LOCK (decoder);
> > +  if (G_UNLIKELY (!decoder->priv->output_state
> > +          || decoder->priv->output_state_changed
> > 
> > How can you even allocate a buffer without knowing the output format? I think
> > this looks wrong. 
> 
> 
> I think there is no issue here also :). As per our previous discussions in irc,
> we can create buffer pool with out knowing the caps. Which means the downstream
> element would just return a bufferpool object. Upstream element can create
> the pool using its internal mem_allocator which doesn't need to provide the
> exact format but only the chroma type.

Yes, seems correct after all. But you should add some checks afterwards to see
if we either have a buffer pool now or have an output_state with size!=0 (see
fallback path). If neither of these two is TRUE an error should be returned,
probably GST_FLOW_NOT_NEGOTIATED.

-- 
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