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

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Fri Nov 1 15:54:07 PDT 2013


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

--- Comment #49 from sreerenj <bsreerenj at gmail.com> 2013-11-01 22:54:00 UTC ---
(In reply to comment #48)
> Review of attachment 257412 [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?

> @@ +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 upstream
element would just return a bufferpool object. Downstream element can create
the pool using its internal mem_allocator which doesn't need to provide the
exact format but only the chroma type.

>Negotiation shouldn't be allowed to be triggered from buffer
> allocation if the output format is not known yet, it should be triggered
> elsewhere.

No . We should allow negotiation triggering from buffer allocation point itself
so that we will get the buffer pool object from upstream.

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