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

Reply via email to