Title: [275034] trunk/Source/ThirdParty/libwebrtc
- Revision
- 275034
- Author
- [email protected]
- Date
- 2021-03-25 08:28:52 -0700 (Thu, 25 Mar 2021)
Log Message
Align RemoteVideoDecoder destruction strategy with RemoteVideoEncoder
https://bugs.webkit.org/show_bug.cgi?id=223745
Reviewed by Eric Carlson.
When decoder is released, we make sure to nullify the decoder callback.
We wait to release WebKit decoder at RemoteVideoDecoder destruction time.
* Source/webrtc/sdk/WebKit/WebKitDecoder.mm:
(webrtc::RemoteVideoDecoder::~RemoteVideoDecoder):
(webrtc::RemoteVideoDecoder::Release):
Modified Paths
Diff
Modified: trunk/Source/ThirdParty/libwebrtc/ChangeLog (275033 => 275034)
--- trunk/Source/ThirdParty/libwebrtc/ChangeLog 2021-03-25 15:28:10 UTC (rev 275033)
+++ trunk/Source/ThirdParty/libwebrtc/ChangeLog 2021-03-25 15:28:52 UTC (rev 275034)
@@ -1,3 +1,17 @@
+2021-03-25 Youenn Fablet <[email protected]>
+
+ Align RemoteVideoDecoder destruction strategy with RemoteVideoEncoder
+ https://bugs.webkit.org/show_bug.cgi?id=223745
+
+ Reviewed by Eric Carlson.
+
+ When decoder is released, we make sure to nullify the decoder callback.
+ We wait to release WebKit decoder at RemoteVideoDecoder destruction time.
+
+ * Source/webrtc/sdk/WebKit/WebKitDecoder.mm:
+ (webrtc::RemoteVideoDecoder::~RemoteVideoDecoder):
+ (webrtc::RemoteVideoDecoder::Release):
+
2021-03-10 Jer Noble <[email protected]>
CRASH in MergeUVRow_AVX2
Modified: trunk/Source/ThirdParty/libwebrtc/Source/webrtc/sdk/WebKit/WebKitDecoder.mm (275033 => 275034)
--- trunk/Source/ThirdParty/libwebrtc/Source/webrtc/sdk/WebKit/WebKitDecoder.mm 2021-03-25 15:28:10 UTC (rev 275033)
+++ trunk/Source/ThirdParty/libwebrtc/Source/webrtc/sdk/WebKit/WebKitDecoder.mm 2021-03-25 15:28:52 UTC (rev 275034)
@@ -125,7 +125,7 @@
class RemoteVideoDecoder final : public webrtc::VideoDecoder {
public:
explicit RemoteVideoDecoder(WebKitVideoDecoder);
- ~RemoteVideoDecoder() = default;
+ ~RemoteVideoDecoder();
private:
int32_t InitDecode(const VideoCodec*, int32_t number_of_cores) final;
@@ -163,6 +163,11 @@
{
}
+RemoteVideoDecoder::~RemoteVideoDecoder()
+{
+ videoDecoderCallbacks().releaseCallback(m_internalDecoder);
+}
+
void videoDecoderTaskComplete(void* callback, uint32_t timeStamp, CVPixelBufferRef pixelBuffer, uint32_t timeStampRTP)
{
auto videoFrame = VideoFrame::Builder().set_video_frame_buffer(pixelBufferToFrame(pixelBuffer))
@@ -198,7 +203,8 @@
int32_t RemoteVideoDecoder::Release()
{
- return videoDecoderCallbacks().releaseCallback(m_internalDecoder);
+ RegisterDecodeCompleteCallback(nullptr);
+ return 0;
}
RemoteVideoDecoderFactory::RemoteVideoDecoderFactory(std::unique_ptr<VideoDecoderFactory>&& internalFactory)
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes