Title: [233805] trunk/Source/WebCore
Revision
233805
Author
ctur...@igalia.com
Date
2018-07-13 11:20:03 -0700 (Fri, 13 Jul 2018)

Log Message

[GStreamer] Use smart pointers for GstByteReader
https://bugs.webkit.org/show_bug.cgi?id=187638

Reviewed by Xabier Rodriguez-Calvar.

* platform/graphics/gstreamer/GUniquePtrGStreamer.h: Add
specialisation for GstByteReader.
* platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp:
Use the new smart pointer class to avoid needing to remember where
to call gst_byte_reader_free.
(webKitMediaClearKeyDecryptorDecrypt):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (233804 => 233805)


--- trunk/Source/WebCore/ChangeLog	2018-07-13 17:46:30 UTC (rev 233804)
+++ trunk/Source/WebCore/ChangeLog	2018-07-13 18:20:03 UTC (rev 233805)
@@ -1,3 +1,17 @@
+2018-07-13  Charlie Turner  <ctur...@igalia.com>
+
+        [GStreamer] Use smart pointers for GstByteReader
+        https://bugs.webkit.org/show_bug.cgi?id=187638
+
+        Reviewed by Xabier Rodriguez-Calvar.
+
+        * platform/graphics/gstreamer/GUniquePtrGStreamer.h: Add
+        specialisation for GstByteReader.
+        * platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp:
+        Use the new smart pointer class to avoid needing to remember where
+        to call gst_byte_reader_free.
+        (webKitMediaClearKeyDecryptorDecrypt):
+
 2018-07-13  Basuke Suzuki  <basuke.suz...@sony.com>
 
         [Curl] Move HTTP Setup logic from CurlRequest to CurlHandle for reuse.

Modified: trunk/Source/WebCore/platform/graphics/gstreamer/GUniquePtrGStreamer.h (233804 => 233805)


--- trunk/Source/WebCore/platform/graphics/gstreamer/GUniquePtrGStreamer.h	2018-07-13 17:46:30 UTC (rev 233804)
+++ trunk/Source/WebCore/platform/graphics/gstreamer/GUniquePtrGStreamer.h	2018-07-13 18:20:03 UTC (rev 233805)
@@ -21,6 +21,7 @@
 #define GUniquePtrGStreamer_h
 #if USE(GSTREAMER)
 
+#include <gst/base/gstbytereader.h>
 #include <gst/base/gstflowcombiner.h>
 #include <gst/gstsegment.h>
 #include <gst/gststructure.h>
@@ -33,6 +34,7 @@
 WTF_DEFINE_GPTR_DELETER(GstInstallPluginsContext, gst_install_plugins_context_free)
 WTF_DEFINE_GPTR_DELETER(GstSegment, gst_segment_free)
 WTF_DEFINE_GPTR_DELETER(GstFlowCombiner, gst_flow_combiner_free)
+WTF_DEFINE_GPTR_DELETER(GstByteReader, gst_byte_reader_free)
 
 }
 

Modified: trunk/Source/WebCore/platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp (233804 => 233805)


--- trunk/Source/WebCore/platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp	2018-07-13 17:46:30 UTC (rev 233804)
+++ trunk/Source/WebCore/platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp	2018-07-13 18:20:03 UTC (rev 233805)
@@ -241,7 +241,6 @@
         return false;
     }
 
-    GstByteReader* reader;
     unsigned position = 0;
     unsigned sampleIndex = 0;
 
@@ -273,7 +272,7 @@
         return false;
     }
 
-    reader = gst_byte_reader_new(mappedSubSamplesBuffer.data(), mappedSubSamplesBuffer.size());
+    GUniquePtr<GstByteReader> reader(gst_byte_reader_new(mappedSubSamplesBuffer.data(), mappedSubSamplesBuffer.size()));
     GST_DEBUG_OBJECT(self, "position: %d, size: %zu", position, mappedBuffer.size());
 
     while (position < mappedBuffer.size()) {
@@ -281,10 +280,9 @@
         guint32 nBytesEncrypted = 0;
 
         if (sampleIndex < subSampleCount) {
-            if (!gst_byte_reader_get_uint16_be(reader, &nBytesClear)
-                || !gst_byte_reader_get_uint32_be(reader, &nBytesEncrypted)) {
+            if (!gst_byte_reader_get_uint16_be(reader.get(), &nBytesClear)
+                || !gst_byte_reader_get_uint32_be(reader.get(), &nBytesEncrypted)) {
                 GST_DEBUG_OBJECT(self, "unsupported");
-                gst_byte_reader_free(reader);
                 return false;
             }
             sampleIndex++;
@@ -300,7 +298,6 @@
             cipherError = gcry_cipher_decrypt(priv->handle, mappedBuffer.data() + position, nBytesEncrypted, 0, 0);
             if (cipherError) {
                 GST_ERROR_OBJECT(self, "sub sample index %u decryption failed: %s", sampleIndex, gpg_strerror(cipherError));
-                gst_byte_reader_free(reader);
                 return false;
             }
             position += nBytesEncrypted;
@@ -307,7 +304,6 @@
         }
     }
 
-    gst_byte_reader_free(reader);
     return true;
 }
 
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to