[Bug 698712] playbin: autoplug video decoder and sink based on caps features

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Mon Apr 29 06:09:22 PDT 2013


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

--- Comment #51 from sreerenj <bsreerenj at gmail.com> 2013-04-29 13:09:17 UTC ---
(In reply to comment #50)
> Review of attachment 242622 [details]:
> 
> ::: gst/playback/gstplaybin2.c
> @@ +3393,3 @@
> +
> +      if (!gst_caps_can_intersect (d_caps, s_caps))
> +        continue;
> 
> Optimization idea: You can combine this with the structure_can_intersect() call

k :)

> in the other loop
> 
> @@ +3446,3 @@
> +        if (gst_caps_features_is_equal (d_features, s_features) &&
> +            gst_structure_can_intersect (d_struct, s_struct))
> +          n_common++;
> 
> Here you're counting the number of compatible GstStructure combinations of
> these two elements. Not sure if that is the number we want to look at, e.g.
> consider the following:
> - decoder A has one structure per GstVideoFormat per GstCapsFeatures. Say it
> supports 5 GstVideoFormats, and for each of these 3 GstCapsFeatures:
> "EGLImage", "GLTextureUploadMeta", "VASurface". This gives you 15 structures
> - decoder B supports the same GstCapsFeatures and GstVideoFormats, but has only
> 3 structures
> 
> Which one is better? Your algorithm would say A is better but I'd say that both
> should be equivalent. I think what we should count here is (of all structures
> that are compatible) the number of distinct caps features that are supported by
> both. Which would be 3 in both cases of my example.

Aha, good point ! this can happen for sink also :) may be i can create a list
for capsfeatures also. 

> @@ +3574,2 @@
>    /* Check if we already have an audio/video sink and if this is the case
>     * put it as the first element of the array */
> 
> This here btw is part of the non-auto*sink sink selection I meant

I didn't get it actually :)
Do you mean that current gstplaybin2 won't autoplug the auto*sinks?

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