Changeset 219980 in webkit


Ignore:
Timestamp:
Jul 27, 2017 3:39:21 AM (7 years ago)
Author:
calvaris@igalia.com
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.

Location:
trunk/Source/WebCore
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r219979 r219980  
     12017-07-27  Xabier Rodriguez Calvar  <calvaris@igalia.com>
     2
     3        [GStreamer][EME] Not having a key id buffer should not always error
     4        https://bugs.webkit.org/show_bug.cgi?id=174889
     5
     6        Reviewed by Žan Doberšek.
     7
     8        In r219946 we introduced a hard requirement for a key id buffer
     9        that does not happen for all CDMs.
     10
     11        * platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp:
     12        (webKitMediaClearKeyDecryptorSetupCipher): Check for key id buffer
     13        and error if we didn't get it.
     14        * platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.cpp:
     15        (webkitMediaCommonEncryptionDecryptTransformInPlace): Soften the
     16        requirement for key id buffer.
     17
    1182017-07-27  Xabier Rodriguez Calvar  <calvaris@igalia.com>
    219
  • trunk/Source/WebCore/platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp

    r219946 r219980  
    159159static gboolean webKitMediaClearKeyDecryptorSetupCipher(WebKitMediaCommonEncryptionDecrypt* self, GstBuffer* keyIDBuffer)
    160160{
     161    if (!keyIDBuffer) {
     162        GST_ERROR_OBJECT(self, "got no key id buffer");
     163        return false;
     164    }
     165
    161166    WebKitMediaClearKeyDecryptPrivate* priv = WEBKIT_MEDIA_CK_DECRYPT_GET_PRIVATE(WEBKIT_MEDIA_CK_DECRYPT(self));
    162167    gcry_error_t error;
  • trunk/Source/WebCore/platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.cpp

    r219946 r219980  
    255255
    256256    value = gst_structure_get_value(protectionMeta->info, "kid");
    257     if (!value) {
    258         GST_ERROR_OBJECT(self, "Failed to get key ID for sample");
    259         gst_buffer_remove_meta(buffer, reinterpret_cast<GstMeta*>(protectionMeta));
    260         return GST_FLOW_NOT_SUPPORTED;
    261     }
    262 
    263     GstBuffer* keyIDBuffer = gst_value_get_buffer(value);
     257    GstBuffer* keyIDBuffer = nullptr;
     258    if (value)
     259        keyIDBuffer = gst_value_get_buffer(value);
     260
    264261    WebKitMediaCommonEncryptionDecryptClass* klass = WEBKIT_MEDIA_CENC_DECRYPT_GET_CLASS(self);
    265262    if (!klass->setupCipher(self, keyIDBuffer)) {
Note: See TracChangeset for help on using the changeset viewer.