WebKit Bugzilla
Attachment 357816 Details for
Bug 192934
: [MSE][GStreamer] Use GRefPtr in AppendPipeline::pushNewBuffer()
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-192934-20181220180613.patch (text/plain), 4.36 KB, created by
Alicia Boya García
on 2018-12-20 09:06:15 PST
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Alicia Boya García
Created:
2018-12-20 09:06:15 PST
Size:
4.36 KB
patch
obsolete
>Subversion Revision: 239387 >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index dd94ab16122226fd52f58b0c90625d45e6fd1a0d..c9aca59fe738bf51d2cb50ac6f37015114c396da 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,16 @@ >+2018-12-20 Alicia Boya GarcÃa <aboya@igalia.com> >+ >+ [MSE][GStreamer] Use GRefPtr in AppendPipeline::pushNewBuffer() >+ https://bugs.webkit.org/show_bug.cgi?id=192934 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * platform/graphics/gstreamer/mse/AppendPipeline.cpp: >+ (WebCore::AppendPipeline::pushNewBuffer): >+ * platform/graphics/gstreamer/mse/AppendPipeline.h: >+ * platform/graphics/gstreamer/mse/MediaSourceClientGStreamerMSE.cpp: >+ (WebCore::MediaSourceClientGStreamerMSE::append): >+ > 2018-12-19 Jer Noble <jer.noble@apple.com> > > Force synchronous decode in WebCoreDecompressionSession::decodeSampleSync() >diff --git a/Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp b/Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp >index 026a20573ec32adb2a3bc8a686023ea80ad83108..0db4c16f6046d3079ee4841c4acbd7b1ca0257b7 100644 >--- a/Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp >+++ b/Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp >@@ -552,10 +552,10 @@ void AppendPipeline::resetParserState() > #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); >diff --git a/Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.h b/Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.h >index d3a520d8c7220089cb5f59eddf91c9a9d98a873d..d59598990f9ac2be11b7b6c88414828d1020c95d 100644 >--- a/Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.h >+++ b/Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.h >@@ -49,7 +49,7 @@ public: > 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(); } >diff --git a/Source/WebCore/platform/graphics/gstreamer/mse/MediaSourceClientGStreamerMSE.cpp b/Source/WebCore/platform/graphics/gstreamer/mse/MediaSourceClientGStreamerMSE.cpp >index c84fc3659854b9e04b126d3e60300febf218bc6a..b37adaef4336f2a5b8cc33649d845a61687db44b 100644 >--- a/Source/WebCore/platform/graphics/gstreamer/mse/MediaSourceClientGStreamerMSE.cpp >+++ b/Source/WebCore/platform/graphics/gstreamer/mse/MediaSourceClientGStreamerMSE.cpp >@@ -141,13 +141,13 @@ bool MediaSourceClientGStreamerMSE::append(RefPtr<SourceBufferPrivateGStreamer> > // 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)
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 192934
: 357816