gecko-dev/media/gmp-clearkey/0.1
Chris Pearce b6c7bf750a Bug 1287000 - Ensure ClearKey's CENC PSSH parser can handle PSSH boxes with a 0 size field. r=jwwang
Google's Web Platform EME tests contain a CENC PSSH box with a 0 size field.
Our existing PSSH parser in our ClearKey plugin doesn't handle this well, it
gets stuck in an infinite loop. We should really handle everything that Chrome
handles, so we should handle this input.

We also shouldn't really be using raw pointers in the PSSH parser.

So rewrite the PSSH parser to use a ByteReader, and handle an invalid 0 sized
common SystemID box.

Also add gtests for the parser, and skip over PSSH boxes with unknown SystemIDs
(if they have valid sizes that is).


MozReview-Commit-ID: CdVPpphAJV

--HG--
extra : rebase_source : e9a1b439f8b371653c2c97322a2db64cafef6dd8
2016-07-15 09:31:07 +12:00
..
gtest Bug 1287000 - Ensure ClearKey's CENC PSSH parser can handle PSSH boxes with a 0 size field. r=jwwang 2016-07-15 09:31:07 +12:00
openaes Bug 1119980 - Use 'snprintf' instead of 'sprintf' to avoid a warning on Lollipop-based builds. r=froydnj 2015-05-26 14:33:55 -04:00
AnnexB.cpp Bug 1278036 - Rename Endian.h to BigEndian.h for case insensitive Linux builds. r=cpearce 2016-06-05 13:24:51 -04:00
AnnexB.h Bug 1150437 - Make gmp-clearkey consistently Apache2 licensed. r=edwin,jwwang,kentuckyfriedtakahe 2015-04-03 09:08:27 +13:00
ArrayUtils.h Bug 1150437 - Make gmp-clearkey consistently Apache2 licensed. r=edwin,jwwang,kentuckyfriedtakahe 2015-04-03 09:08:27 +13:00
AudioDecoder.cpp Bug 1186406 - Copy input to ClearKey's decoder, so we can return its containing shmem earlier. r=gerald 2015-12-01 18:13:58 +13:00
AudioDecoder.h Bug 1160914 - Make gmp-clearkey's decoders threadsafe refcounted, to handle DecodingComplete while GMPVideoHost::CreateFrame() is waiting. r=edwin 2015-05-06 11:40:40 +12:00
BigEndian.h Bug 1278036 - Rename Endian.h to BigEndian.h for case insensitive Linux builds. r=cpearce 2016-06-05 13:24:51 -04:00
ClearKeyAsyncShutdown.cpp Bug 1173631 - [EME] Implement async shutdown in clearkey GMP. r=cpearce 2015-06-11 22:05:00 +02:00
ClearKeyAsyncShutdown.h Bug 1181436 - Use 'gmp-api/' prefix consistently in includes in gmp-clearkey. r=gerald 2015-07-08 17:12:47 +12:00
ClearKeyBase64.cpp Bug 1150437 - Make gmp-clearkey consistently Apache2 licensed. r=edwin,jwwang,kentuckyfriedtakahe 2015-04-03 09:08:27 +13:00
ClearKeyBase64.h Bug 1150437 - Make gmp-clearkey consistently Apache2 licensed. r=edwin,jwwang,kentuckyfriedtakahe 2015-04-03 09:08:27 +13:00
ClearKeyCencParser.cpp Bug 1287000 - Ensure ClearKey's CENC PSSH parser can handle PSSH boxes with a 0 size field. r=jwwang 2016-07-15 09:31:07 +12:00
ClearKeyCencParser.h Bug 1287000 - Ensure ClearKey's CENC PSSH parser can handle PSSH boxes with a 0 size field. r=jwwang 2016-07-15 09:31:07 +12:00
ClearKeyDecryptionManager.cpp Bug 1274637 - Detect OOB copy attempts in clearkey decryptor - r=cpearce 2016-05-26 19:46:40 +02:00
ClearKeyDecryptionManager.h Bug 1186406 - Copy input to ClearKey's decoder, so we can return its containing shmem earlier. r=gerald 2015-12-01 18:13:58 +13:00
ClearKeyPersistence.cpp Bug 1228461 - Implement keyids initData type for ClearKey. r=gerald 2015-11-27 17:13:40 +13:00
ClearKeyPersistence.h Bug 1228461 - Implement keyids initData type for ClearKey. r=gerald 2015-11-27 17:13:40 +13:00
ClearKeySession.cpp Bug 1287000 - Ensure ClearKey's CENC PSSH parser can handle PSSH boxes with a 0 size field. r=jwwang 2016-07-15 09:31:07 +12:00
ClearKeySession.h Bug 1228461 - Implement keyids initData type for ClearKey. r=gerald 2015-11-27 17:13:40 +13:00
ClearKeySessionManager.cpp Bug 1271242 - Remove GMPDecryptorCallback::SetCapabilities(). r=jwwang 2016-05-10 10:28:38 +12:00
ClearKeySessionManager.h Bug 1150437 - Make gmp-clearkey consistently Apache2 licensed. r=edwin,jwwang,kentuckyfriedtakahe 2015-04-03 09:08:27 +13:00
ClearKeyStorage.cpp Bug 1150437 - Make gmp-clearkey consistently Apache2 licensed. r=edwin,jwwang,kentuckyfriedtakahe 2015-04-03 09:08:27 +13:00
ClearKeyStorage.h Bug 1181436 - Use 'gmp-api/' prefix consistently in includes in gmp-clearkey. r=gerald 2015-07-08 17:12:47 +12:00
ClearKeyUtils.cpp Bug 1287000 - Ensure ClearKey's CENC PSSH parser can handle PSSH boxes with a 0 size field. r=jwwang 2016-07-15 09:31:07 +12:00
ClearKeyUtils.h Bug 1287000 - Ensure ClearKey's CENC PSSH parser can handle PSSH boxes with a 0 size field. r=jwwang 2016-07-15 09:31:07 +12:00
RefCounted.h Bug 1160914 - Use locks for gmp-clearkey threadsafe refcounting when std::atomic is not easily available. r=edwin 2015-05-06 11:40:42 +12:00
VideoDecoder.cpp Bug 1278036 - Rename Endian.h to BigEndian.h for case insensitive Linux builds. r=cpearce 2016-06-05 13:24:51 -04:00
VideoDecoder.h Bug 1186406 - Copy input to ClearKey's decoder, so we can return its containing shmem earlier. r=gerald 2015-12-01 18:13:58 +13:00
WMFAACDecoder.cpp Bug 1156131 - Use correct DLL on WinVista, 7, and 8 for WMF decoding in gmp-clearkey. r=edwin 2015-04-20 20:07:24 +12:00
WMFAACDecoder.h Bug 1075199 - WMF decoding in ClearKey CDM - r=cpearce 2015-01-16 10:37:54 +13:00
WMFH264Decoder.cpp Bug 1185388 - Limit the number of cores used by WMF in ClearKey CDM - r=cpearce 2015-09-01 17:31:48 +12:00
WMFH264Decoder.h Bug 1185388 - Limit the number of cores used by WMF in ClearKey CDM - r=cpearce 2015-09-01 17:31:48 +12:00
WMFSymbols.h Bug 1156131 - Use correct DLL on WinVista, 7, and 8 for WMF decoding in gmp-clearkey. r=edwin 2015-04-20 20:07:24 +12:00
WMFUtils.cpp Bug 1185388 - Limit the number of cores used by WMF in ClearKey CDM - r=cpearce 2015-09-01 17:31:48 +12:00
WMFUtils.h Bug 1257270 - Use std::nullptr_t instead of nullptr_t in WMFUtils.h. r=cpearce 2016-03-17 10:39:46 +01:00
clearkey.info.in Bug 1229508 - Support current and previous GMP_API_DECRYPTORs. r=gerald 2015-12-02 15:37:09 +13:00
gmp-clearkey.cpp Bug 1271242 - Remove GMPDecryptorCallback::SetCapabilities(). r=jwwang 2016-05-10 10:28:38 +12:00
gmp-task-utils-generated.h Bug 1160914 - Make gmp-clearkey's decoders threadsafe refcounted, to handle DecodingComplete while GMPVideoHost::CreateFrame() is waiting. r=edwin 2015-05-06 11:40:40 +12:00
gmp-task-utils.h Bug 1181436 - Use 'gmp-api/' prefix consistently in includes in gmp-clearkey. r=gerald 2015-07-08 17:12:47 +12:00
moz.build Bug 1287000 - Ensure ClearKey's CENC PSSH parser can handle PSSH boxes with a 0 size field. r=jwwang 2016-07-15 09:31:07 +12:00