Title: [219980] trunk/Source/WebCore
- Revision
- 219980
- Author
- calva...@igalia.com
- Date
- 2017-07-27 03:39:21 -0700 (Thu, 27 Jul 2017)
Log Message
[GStreamer][EME] Not having a key id buffer should not always error
https://bugs.webkit.org/show_bug.cgi?id=174889
Reviewed by Žan Doberšek.
In r219946 we introduced a hard requirement for a key id buffer
that does not happen for all CDMs.
* platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp:
(webKitMediaClearKeyDecryptorSetupCipher): Check for key id buffer
and error if we didn't get it.
* platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.cpp:
(webkitMediaCommonEncryptionDecryptTransformInPlace): Soften the
requirement for key id buffer.
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (219979 => 219980)
--- trunk/Source/WebCore/ChangeLog 2017-07-27 10:18:18 UTC (rev 219979)
+++ trunk/Source/WebCore/ChangeLog 2017-07-27 10:39:21 UTC (rev 219980)
@@ -1,5 +1,22 @@
2017-07-27 Xabier Rodriguez Calvar <calva...@igalia.com>
+ [GStreamer][EME] Not having a key id buffer should not always error
+ https://bugs.webkit.org/show_bug.cgi?id=174889
+
+ Reviewed by Žan Doberšek.
+
+ In r219946 we introduced a hard requirement for a key id buffer
+ that does not happen for all CDMs.
+
+ * platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp:
+ (webKitMediaClearKeyDecryptorSetupCipher): Check for key id buffer
+ and error if we didn't get it.
+ * platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.cpp:
+ (webkitMediaCommonEncryptionDecryptTransformInPlace): Soften the
+ requirement for key id buffer.
+
+2017-07-27 Xabier Rodriguez Calvar <calva...@igalia.com>
+
[GStreamer][EME] Fix phony debug output in player base for supported key system
https://bugs.webkit.org/show_bug.cgi?id=174888
Modified: trunk/Source/WebCore/platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp (219979 => 219980)
--- trunk/Source/WebCore/platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp 2017-07-27 10:18:18 UTC (rev 219979)
+++ trunk/Source/WebCore/platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp 2017-07-27 10:39:21 UTC (rev 219980)
@@ -158,6 +158,11 @@
static gboolean webKitMediaClearKeyDecryptorSetupCipher(WebKitMediaCommonEncryptionDecrypt* self, GstBuffer* keyIDBuffer)
{
+ if (!keyIDBuffer) {
+ GST_ERROR_OBJECT(self, "got no key id buffer");
+ return false;
+ }
+
WebKitMediaClearKeyDecryptPrivate* priv = WEBKIT_MEDIA_CK_DECRYPT_GET_PRIVATE(WEBKIT_MEDIA_CK_DECRYPT(self));
gcry_error_t error;
Modified: trunk/Source/WebCore/platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.cpp (219979 => 219980)
--- trunk/Source/WebCore/platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.cpp 2017-07-27 10:18:18 UTC (rev 219979)
+++ trunk/Source/WebCore/platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.cpp 2017-07-27 10:39:21 UTC (rev 219980)
@@ -254,13 +254,10 @@
}
value = gst_structure_get_value(protectionMeta->info, "kid");
- if (!value) {
- GST_ERROR_OBJECT(self, "Failed to get key ID for sample");
- gst_buffer_remove_meta(buffer, reinterpret_cast<GstMeta*>(protectionMeta));
- return GST_FLOW_NOT_SUPPORTED;
- }
+ GstBuffer* keyIDBuffer = nullptr;
+ if (value)
+ keyIDBuffer = gst_value_get_buffer(value);
- GstBuffer* keyIDBuffer = gst_value_get_buffer(value);
WebKitMediaCommonEncryptionDecryptClass* klass = WEBKIT_MEDIA_CENC_DECRYPT_GET_CLASS(self);
if (!klass->setupCipher(self, keyIDBuffer)) {
GST_ERROR_OBJECT(self, "Failed to configure cipher");
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes