[Bug 770107] qtdemux: reports only one encryption system even if it can support more than one

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Fri Aug 19 10:49:56 UTC 2016


https://bugzilla.gnome.org/show_bug.cgi?id=770107

--- Comment #5 from Xabier Rodríguez Calvar <calvaris at igalia.com> ---
(In reply to Tim-Philipp Müller from comment #1)
> I'm not sure how you envision "providing more than one structure at the caps
> for the outgoing stream" will work.
> 
> The way this works was a design decision and done on purpose.
> 
> We may have to add some way to query whether a key is available then or
> something when selecting the system.

Caps can have more than one structure, right? Usually people access only the
first, meaning index 0.

My proposal would be to duplicate the structure for all the usable decryption
systems. Pardon my ignorance if this is not possible or it does more harm than
good.

> I presume the version was supposed to be 1.8.0?

I am trying with 1.8.2.

(In reply to Sebastian Dröge (slomo) from comment #2)
> The idea was that qtdemux checks for which DRM schemes a decryptor exists,
> and exposes caps according to the highest-ranked one. This could probably be
> extended via some magic with GstContext to allow the application to give its
> own preferences per pipeline.
> 
> Why is it always exposing the first for you?

According to this function that is used in qtdemux, it seems to use the first
or am I wrong?:

const gchar *
gst_protection_select_system (const gchar ** system_identifiers)
{
  GList *decryptors, *walk;
  const gchar *retval = NULL;

  decryptors =
      gst_element_factory_list_get_elements
(GST_ELEMENT_FACTORY_TYPE_DECRYPTOR,
      GST_RANK_MARGINAL);

  for (walk = decryptors; !retval && walk; walk = g_list_next (walk)) {
    GstElementFactory *fact = (GstElementFactory *) walk->data;
    retval = gst_protection_factory_check (fact, system_identifiers);
  }

  gst_plugin_feature_list_free (decryptors);

  return retval;
}

> You have decryptors for all 3,
> but only one is going to work?

We have for two, but it is a combination of JS app and WebKit that decides
which one should be used (I didn't check yet how that can be handled).

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