Title: [239826] trunk/Source/WebCore
Revision
239826
Author
ab...@igalia.com
Date
2019-01-10 04:46:18 -0800 (Thu, 10 Jan 2019)

Log Message

[MSE][GStreamer] Use GRefPtr in AppendPipeline::pushNewBuffer()
https://bugs.webkit.org/show_bug.cgi?id=192934

Reviewed by Xabier Rodriguez-Calvar.

* platform/graphics/gstreamer/mse/AppendPipeline.cpp:
(WebCore::AppendPipeline::pushNewBuffer):
* platform/graphics/gstreamer/mse/AppendPipeline.h:
* platform/graphics/gstreamer/mse/MediaSourceClientGStreamerMSE.cpp:
(WebCore::MediaSourceClientGStreamerMSE::append):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (239825 => 239826)


--- trunk/Source/WebCore/ChangeLog	2019-01-10 11:55:51 UTC (rev 239825)
+++ trunk/Source/WebCore/ChangeLog	2019-01-10 12:46:18 UTC (rev 239826)
@@ -1,3 +1,16 @@
+2019-01-10  Alicia Boya GarcĂ­a  <ab...@igalia.com>
+
+        [MSE][GStreamer] Use GRefPtr in AppendPipeline::pushNewBuffer()
+        https://bugs.webkit.org/show_bug.cgi?id=192934
+
+        Reviewed by Xabier Rodriguez-Calvar.
+
+        * platform/graphics/gstreamer/mse/AppendPipeline.cpp:
+        (WebCore::AppendPipeline::pushNewBuffer):
+        * platform/graphics/gstreamer/mse/AppendPipeline.h:
+        * platform/graphics/gstreamer/mse/MediaSourceClientGStreamerMSE.cpp:
+        (WebCore::MediaSourceClientGStreamerMSE::append):
+
 2019-01-10  Carlos Garcia Campos  <cgar...@igalia.com>
 
         [FreeType] Color emoji not properly supported

Modified: trunk/Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp (239825 => 239826)


--- trunk/Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp	2019-01-10 11:55:51 UTC (rev 239825)
+++ trunk/Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp	2019-01-10 12:46:18 UTC (rev 239826)
@@ -552,10 +552,10 @@
 #endif
 }
 
-GstFlowReturn AppendPipeline::pushNewBuffer(GstBuffer* buffer)
+GstFlowReturn AppendPipeline::pushNewBuffer(GRefPtr<GstBuffer>&& buffer)
 {
-    GST_TRACE_OBJECT(m_pipeline.get(), "pushing data buffer %" GST_PTR_FORMAT, buffer);
-    GstFlowReturn pushDataBufferRet = gst_app_src_push_buffer(GST_APP_SRC(m_appsrc.get()), buffer);
+    GST_TRACE_OBJECT(m_pipeline.get(), "pushing data buffer %" GST_PTR_FORMAT, buffer.get());
+    GstFlowReturn pushDataBufferRet = gst_app_src_push_buffer(GST_APP_SRC(m_appsrc.get()), buffer.leakRef());
     // Pushing buffers to appsrc can only fail if the appsrc is flushing, in EOS or stopped. Neither of these should
     // be true at this point.
     g_return_val_if_fail(pushDataBufferRet == GST_FLOW_OK, GST_FLOW_ERROR);

Modified: trunk/Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.h (239825 => 239826)


--- trunk/Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.h	2019-01-10 11:55:51 UTC (rev 239825)
+++ trunk/Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.h	2019-01-10 12:46:18 UTC (rev 239826)
@@ -49,7 +49,7 @@
     AppendPipeline(Ref<MediaSourceClientGStreamerMSE>, Ref<SourceBufferPrivateGStreamer>, MediaPlayerPrivateGStreamerMSE&);
     virtual ~AppendPipeline();
 
-    GstFlowReturn pushNewBuffer(GstBuffer*);
+    GstFlowReturn pushNewBuffer(GRefPtr<GstBuffer>&&);
     void resetParserState();
     Ref<SourceBufferPrivateGStreamer> sourceBufferPrivate() { return m_sourceBufferPrivate.get(); }
     GstCaps* appsinkCaps() { return m_appsinkCaps.get(); }

Modified: trunk/Source/WebCore/platform/graphics/gstreamer/mse/MediaSourceClientGStreamerMSE.cpp (239825 => 239826)


--- trunk/Source/WebCore/platform/graphics/gstreamer/mse/MediaSourceClientGStreamerMSE.cpp	2019-01-10 11:55:51 UTC (rev 239825)
+++ trunk/Source/WebCore/platform/graphics/gstreamer/mse/MediaSourceClientGStreamerMSE.cpp	2019-01-10 12:46:18 UTC (rev 239826)
@@ -141,13 +141,13 @@
     // Wrap the whole Vector object in case the data is stored in the inlined buffer.
     auto* bufferData = data.data();
     auto bufferLength = data.size();
-    GstBuffer* buffer = gst_buffer_new_wrapped_full(static_cast<GstMemoryFlags>(0), bufferData, bufferLength, 0, bufferLength, new Vector<unsigned char>(WTFMove(data)),
+    GRefPtr<GstBuffer> buffer = adoptGRef(gst_buffer_new_wrapped_full(static_cast<GstMemoryFlags>(0), bufferData, bufferLength, 0, bufferLength, new Vector<unsigned char>(WTFMove(data)),
         [](gpointer data)
         {
             delete static_cast<Vector<unsigned char>*>(data);
-        });
+        }));
 
-    return appendPipeline->pushNewBuffer(buffer) == GST_FLOW_OK;
+    return appendPipeline->pushNewBuffer(WTFMove(buffer)) == GST_FLOW_OK;
 }
 
 void MediaSourceClientGStreamerMSE::markEndOfStream(MediaSourcePrivate::EndOfStreamStatus status)
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to