gstreamer/gst
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
..
alpha Meson: Generate pc file for all plugins in good 2018-04-25 11:07:06 +01:00
apetag Meson: Generate pc file for all plugins in good 2018-04-25 11:07:06 +01:00
audiofx Meson: Generate pc file for all plugins in good 2018-04-25 11:07:06 +01:00
audioparsers dcaparse: do not accept header with invalid channel count 2018-05-06 11:08:20 +02:00
auparse Meson: Generate pc file for all plugins in good 2018-04-25 11:07:06 +01:00
autodetect Meson: Generate pc file for all plugins in good 2018-04-25 11:07:06 +01:00
avi Meson: Generate pc file for all plugins in good 2018-04-25 11:07:06 +01:00
cutter Meson: Generate pc file for all plugins in good 2018-04-25 11:07:06 +01:00
debugutils Meson: Generate pc file for all plugins in good 2018-04-25 11:07:06 +01:00
deinterlace Meson: Generate pc file for all plugins in good 2018-04-25 11:07:06 +01:00
dtmf Meson: Generate pc file for all plugins in good 2018-04-25 11:07:06 +01:00
effectv Meson: Generate pc file for all plugins in good 2018-04-25 11:07:06 +01:00
equalizer Meson: Generate pc file for all plugins in good 2018-04-25 11:07:06 +01:00
flv flvmux: Remove custom get_next_time implementation 2018-05-16 22:23:36 +02:00
flx Meson: Generate pc file for all plugins in good 2018-04-25 11:07:06 +01:00
goom Meson: Generate pc file for all plugins in good 2018-04-25 11:07:06 +01:00
goom2k1 Meson: Generate pc file for all plugins in good 2018-04-25 11:07:06 +01:00
icydemux icydemux: avoid timestamp field initialisation for tag event 2018-05-07 01:25:25 +10:00
id3demux Meson: Generate pc file for all plugins in good 2018-04-25 11:07:06 +01:00
imagefreeze Meson: Generate pc file for all plugins in good 2018-04-25 11:07:06 +01:00
interleave Meson: Generate pc file for all plugins in good 2018-04-25 11:07:06 +01:00
isomp4 qtdemux: add context for a preferred protection 2018-05-21 17:36:17 +02:00
law Meson: Generate pc file for all plugins in good 2018-04-25 11:07:06 +01:00
level Meson: Generate pc file for all plugins in good 2018-04-25 11:07:06 +01:00
matroska matroskademux: tag disabled streams with FLAG_UNSELECT 2018-05-15 10:25:35 +01:00
monoscope Meson: Generate pc file for all plugins in good 2018-04-25 11:07:06 +01:00
multifile splitmuxsink: Added caption_%u pad template 2018-05-11 16:39:46 +03:00
multipart Meson: Generate pc file for all plugins in good 2018-04-25 11:07:06 +01:00
replaygain Revert "BugFix : Change peak value to normalize audio file with fallback gain" 2018-05-15 10:35:09 +01:00
rtp rtpvrawpay: don't use buffer lists if everything fits into one buffer 2018-05-05 16:32:59 +02:00
rtpmanager rtpsession: make "clear-pt-map" action signal actually work 2018-05-15 11:52:14 +01:00
rtsp rtspsrc: Fix doc comment markers 2018-05-07 01:40:05 +10:00
shapewipe Meson: Generate pc file for all plugins in good 2018-04-25 11:07:06 +01:00
smpte Meson: Generate pc file for all plugins in good 2018-04-25 11:07:06 +01:00
spectrum Meson: Generate pc file for all plugins in good 2018-04-25 11:07:06 +01:00
udp Meson: Generate pc file for all plugins in good 2018-04-25 11:07:06 +01:00
videobox Meson: Generate pc file for all plugins in good 2018-04-25 11:07:06 +01:00
videocrop Meson: Generate pc file for all plugins in good 2018-04-25 11:07:06 +01:00
videofilter Meson: Generate pc file for all plugins in good 2018-04-25 11:07:06 +01:00
videomixer Meson: Generate pc file for all plugins in good 2018-04-25 11:07:06 +01:00
wavenc Meson: Generate pc file for all plugins in good 2018-04-25 11:07:06 +01:00
wavparse Meson: Generate pc file for all plugins in good 2018-04-25 11:07:06 +01:00
y4m Meson: Generate pc file for all plugins in good 2018-04-25 11:07:06 +01:00
Makefile.am build: build plugins and examples in parallel where possible 2010-03-29 11:00:57 +01:00
meson.build Add support for Meson as alternative/parallel build system 2016-08-20 11:21:12 +01:00