[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