[Bug 705991] Adding support for DASH common encryption to qtdemux and dashdemux

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Wed Jan 15 13:21:13 PST 2014


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

--- Comment #46 from Thiago Sousa Santos <thiago.sousa.santos at collabora.co.uk> 2014-01-15 21:21:09 UTC ---
(In reply to comment #45)
> (In reply to comment #44)
> 
> > How does a GstValueArray work with intersecting?
> > 
> > If qtdemux outputs:
> > 
> > "application/x-cenc, encryption-scheme={A, B, C}"
> > 
> > and my system has a decrypter with:
> > 
> > "application/x-cenc, encryption-scheme=A"
> > 
> > Does it work? Or will it only work with the autodecrypter that has all possible
> > systems and does everything underneath?
> 
> That's a GstValueList, and there it would would intersect if your element
> handles any of the encryption schemes but unfortunately a GstValueList is not a
> fixed value.
> 
> GstValueArray is e.g. encryption-scheme=<A, B, C> and considered fixed. And
> your element is only compatible with that if it has exactly <A, B, C> (and in
> that order!) on the caps.
> 
> But the idea here is that there is a generic cenc autoplugger that has just
> "application/x-cenc" on the caps and then internally autoplugs a cenc decryptor
> that handles the encryption-scheme.
> 
> 
> IMHO not as nice conceptionally as the other solution that would use the caps
> as they're supposed to be used (and requires ugly caps, see above)... but still
> an acceptable compromise.

I don't like this very much. The only way I can see this being flexible enough
is if this cencdecrypt offers some kind of API to register decrypting modules
(something similar to typefind) and as we don't need typefind-mp4 element we
would never have to write a cenc-A-decrypt element. If this is the case, I
think it is an ok solution.

OTOH if we want to go with different elements and autoplugging just like
regular decoding, we would need a new kind of GstCaps field. A
GstSimultaneousList (maybe GstQuanticList? :) that would always be fixed with
multiple values and would intersect* still resulting in a fixed caps.

I haven't thought deeply on the pros and cons of those options, but I guess we
need to either go typefind-like or autoplugging, mixing those 2 options can
lead to inconsistencies in the future.


* intersect of src caps cenc="A, B, C" with cenc="A, D" should still be "A, B,
C" to keep the caps consistent with what's in it. I hope this doesn't break
much of our caps logic/math :)

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