Changeset 269103 in webkit
- Timestamp:
- Oct 28, 2020, 8:24:44 AM (6 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 6 edited
-
ChangeLog (modified) (1 diff)
-
Modules/encryptedmedia/CDM.cpp (modified) (1 diff)
-
platform/encryptedmedia/CDMPrivate.cpp (modified) (2 diffs)
-
platform/encryptedmedia/CDMPrivate.h (modified) (1 diff)
-
platform/graphics/gstreamer/eme/CDMThunder.cpp (modified) (1 diff)
-
platform/graphics/gstreamer/eme/CDMThunder.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r269102 r269103 1 2020-10-28 Xabier Rodriguez Calvar <calvaris@igalia.com> 2 3 [GStreamer][EME][Thunder] Do not sanitize CENC init data 4 https://bugs.webkit.org/show_bug.cgi?id=218182 5 6 Reviewed by Philippe Normand. 7 8 In certain cases, like smoothstreaming with PlayReady, the init 9 datas we are getting are correct but are not in PSSH box format 10 they would be "sanitized away". In this patch you can enable 11 sanitization customization depending on the CDM you're using. 12 13 * Modules/encryptedmedia/CDM.cpp: 14 (WebCore::CDM::sanitizeInitData): 15 * platform/encryptedmedia/CDMPrivate.cpp: 16 (WebCore::CDMPrivate::sanitizeInitData const): 17 * platform/encryptedmedia/CDMPrivate.h: 18 * platform/graphics/gstreamer/eme/CDMThunder.cpp: 19 (WebCore::CDMPrivateThunder::sanitizeInitData const): 20 * platform/graphics/gstreamer/eme/CDMThunder.h: 21 1 22 2020-10-28 Zalan Bujtas <zalan@apple.com> 2 23 -
trunk/Source/WebCore/Modules/encryptedmedia/CDM.cpp
r262324 r269103 138 138 RefPtr<SharedBuffer> CDM::sanitizeInitData(const AtomString& initDataType, const SharedBuffer& initData) 139 139 { 140 return InitDataRegistry::shared().sanitizeInitData(initDataType, initData); 140 if (!m_private) 141 return nullptr; 142 return m_private->sanitizeInitData(initDataType, initData); 141 143 } 142 144 -
trunk/Source/WebCore/platform/encryptedmedia/CDMPrivate.cpp
r257660 r269103 33 33 #include "CDMRequirement.h" 34 34 #include "CDMRestrictions.h" 35 #include "InitDataRegistry.h" 35 36 #include "MediaPlayer.h" 36 37 #include "NotImplemented.h" … … 515 516 } 516 517 518 RefPtr<SharedBuffer> CDMPrivate::sanitizeInitData(const AtomString& initDataType, const SharedBuffer& initData) const 519 { 520 return InitDataRegistry::shared().sanitizeInitData(initDataType, initData); 521 } 522 517 523 518 524 } -
trunk/Source/WebCore/platform/encryptedmedia/CDMPrivate.h
r258295 r269103 75 75 virtual bool supportsSessions() const = 0; 76 76 virtual bool supportsInitData(const AtomString&, const SharedBuffer&) const = 0; 77 WEBCORE_EXPORT virtual RefPtr<SharedBuffer> sanitizeInitData(const AtomString& initDataType, const SharedBuffer& initData) const; 77 78 virtual RefPtr<SharedBuffer> sanitizeResponse(const SharedBuffer&) const = 0; 78 79 virtual Optional<String> sanitizeSessionId(const String&) const = 0; -
trunk/Source/WebCore/platform/graphics/gstreamer/eme/CDMThunder.cpp
r269030 r269103 217 217 218 218 return false; 219 } 220 221 RefPtr<SharedBuffer> CDMPrivateThunder::sanitizeInitData(const AtomString& initDataType, const SharedBuffer& initData) const 222 { 223 // Validate the initData buffer as CENC initData. FIXME: Validate it is actually CENC. 224 if (equalLettersIgnoringASCIICase(initDataType, "cenc") && !initData.isEmpty()) 225 return initData.copy(); 226 227 return CDMPrivate::sanitizeInitData(initDataType, initData); 219 228 } 220 229 -
trunk/Source/WebCore/platform/graphics/gstreamer/eme/CDMThunder.h
r264219 r269103 96 96 bool supportsSessions() const final; 97 97 bool supportsInitData(const AtomString&, const SharedBuffer&) const final; 98 RefPtr<SharedBuffer> sanitizeInitData(const AtomString& initDataType, const SharedBuffer& initData) const final; 98 99 RefPtr<SharedBuffer> sanitizeResponse(const SharedBuffer&) const final; 99 100 Optional<String> sanitizeSessionId(const String&) const final;
Note:
See TracChangeset
for help on using the changeset viewer.