gstreamer/gst/isomp4
Xabier Rodriguez Calvar ee4b45da24 qtdemux: add context for a preferred protection
qtdemux selected the first system corresponding to a working GStreamer
decryptor. With this change, before selecting that decryptor, qtdemux
will check if it has context (a preferred decryptor id) and if not, it
will request it.

The request includes track-id, available key system ids for the
available decryptors and even the events so that the init data is
accessible.

[eocanha@igalia.com: select the preferred protection system even if not available]

Test "4. ClearKeyVideo" in YouTube leanback EME conformance tests 2016 for
H.264[1] uses a media file[2] with cenc encryption which embeds 'pssh' boxes
with the init data for the Playready and Widevine encryption systems, but not
for the ClearKey encryption system (as defined by the EMEv0.1b spec[3] and with
the encryption system id defined in [4]).

Instead, the ClearKey encryption system is manually selected by the web page
code (even if not originally detected by qtdemux) and the proper decryption key
is dispatched to the decryptor, which can then decrypt the video successfully.

[1] http://yt-dash-mse-test.commondatastorage.googleapis.com/unit-tests/2016.html?test_type=encryptedmedia-test&webm=false
[2] http://yt-dash-mse-test.commondatastorage.googleapis.com/unit-tests/media/car_cenc-20120827-86.mp4
[3] https://dvcs.w3.org/hg/html-media/raw-file/eme-v0.1b/encrypted-media/encrypted-media.html#simple-decryption-clear-key
[4] https://www.w3.org/Bugs/Public/show_bug.cgi?id=24027#c2

https://bugzilla.gnome.org/show_bug.cgi?id=770107
2018-05-21 17:36:17 +02:00
..
atoms.c isomp4: qtmux: Add Closed Caption support 2018-04-23 15:58:10 +02:00
atoms.h isomp4: qtmux: Add Closed Caption support 2018-04-23 15:58:10 +02:00
atomsrecovery.c gst-plugins-good: atoms_recovery: Handled buffer mapping failure 2017-10-24 22:04:27 -07:00
atomsrecovery.h atomsrecovery: read from mdat only what is on headers 2017-10-24 21:33:25 -07:00
descriptors.c qtdemux: Fix calcuation of descriptor length 2013-12-23 15:09:49 +01:00
descriptors.h Fix FSF address 2012-11-04 00:07:18 +00:00
fourcc.h qtdemux: Detect and expose CEA 608/708 Closed Caption tracks 2018-04-09 15:25:50 +02:00
gstisoff.c qtdemux: Apply qtdemux debug category to gstisoff 2018-01-29 18:40:02 +00:00
gstisoff.h isomp4: Redefine gst_isoff_ symbols to gst_isoff_qt_ 2015-02-17 12:31:06 +01:00
gstqtmoovrecover.c atomsrecovery: read from mdat only what is on headers 2017-10-24 21:33:25 -07:00
gstqtmoovrecover.h Fix FSF address 2012-11-04 00:07:18 +00:00
gstqtmux-doc.c docs: remove outdated and pointless 'Last reviewed' lines from docs 2014-04-26 23:35:17 +01:00
gstqtmux-doc.h isomp4mux: fix copy and paste 2014-02-18 22:35:45 +01:00
gstqtmux.c qtmux: Print expected/actual values in debug log on mismatch in prefill mode 2018-05-14 21:06:55 +03:00
gstqtmux.h isomp4: qtmux: Add Closed Caption support 2018-04-23 15:58:10 +02:00
GstQTMux.prs qtmux: Implement the preset interface. 2016-09-01 13:16:49 +03:00
gstqtmuxmap.c isomp4: qtmux: Add Closed Caption support 2018-04-23 15:58:10 +02:00
gstqtmuxmap.h isomp4: qtmux: Add Closed Caption support 2018-04-23 15:58:10 +02:00
gstrtpxqtdepay.c good: use new gst_element_class_add_static_pad_template() 2016-03-24 14:32:20 +02:00
gstrtpxqtdepay.h Fix FSF address 2012-11-04 00:07:18 +00:00
isomp4-plugin.c Don't use setlocale in plugins() 2013-09-01 21:18:38 +01:00
LEGAL quicktime: rename plugin to isomp4 2011-04-30 17:58:02 +01:00
Makefile.am qtdemux: Apply qtdemux debug category to gstisoff 2018-01-29 18:40:02 +00:00
meson.build Meson: Generate pc file for all plugins in good 2018-04-25 11:07:06 +01:00
properties.c Fix FSF address 2012-11-04 00:07:18 +00:00
properties.h docs: fix "Symbol name not found at the start of the comment block" 2015-07-07 17:12:02 +02:00
qtatomparser.h Fix FSF address 2012-11-04 00:07:18 +00:00
qtdemux.c qtdemux: add context for a preferred protection 2018-05-21 17:36:17 +02:00
qtdemux.h qtdemux: add context for a preferred protection 2018-05-21 17:36:17 +02:00
qtdemux_debug.h qtdemux: Apply qtdemux debug category to gstisoff 2018-01-29 18:40:02 +00:00
qtdemux_dump.c isomp4: Make 'hdlr' atom dump more flexible 2018-02-09 09:00:46 +01:00
qtdemux_dump.h isomp4: Add gmhd/gmin debugging 2018-01-31 19:12:48 +01:00
qtdemux_lang.c qtdemux: Apply qtdemux debug category to gstisoff 2018-01-29 18:40:02 +00:00
qtdemux_lang.h Fix FSF address 2012-11-04 00:07:18 +00:00
qtdemux_types.c qtdemux: Detect and expose CEA 608/708 Closed Caption tracks 2018-04-09 15:25:50 +02:00
qtdemux_types.h qtdemux: handle default-base-is-moof flag 2015-08-05 18:12:45 -03:00
qtpalette.h Fix FSF address 2012-11-04 00:07:18 +00:00