summaryrefslogtreecommitdiff
path: root/mozilla-1645671.patch
diff options
context:
space:
mode:
authorMartin Stransky <stransky@redhat.com>2021-04-20 09:11:49 +0200
committerMartin Stransky <stransky@redhat.com>2021-04-20 09:11:49 +0200
commitc78ce968a861d6bbed272367b1ed8685a4a39795 (patch)
tree2b7616832a5ed0c31863584ed1e2ec1c4713a8de /mozilla-1645671.patch
parentAdded fix for mozbz#1701089 (Widevine playback issues) (diff)
downloadlibrewolf-fedora-ff-c78ce968a861d6bbed272367b1ed8685a4a39795.tar.gz
librewolf-fedora-ff-c78ce968a861d6bbed272367b1ed8685a4a39795.tar.bz2
librewolf-fedora-ff-c78ce968a861d6bbed272367b1ed8685a4a39795.zip
Updated to 88.0
Diffstat (limited to 'mozilla-1645671.patch')
-rw-r--r--mozilla-1645671.patch67
1 files changed, 0 insertions, 67 deletions
diff --git a/mozilla-1645671.patch b/mozilla-1645671.patch
deleted file mode 100644
index 0943469..0000000
--- a/mozilla-1645671.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-changeset: 544864:a8603f131703
-tag: tip
-parent: 544861:161920b70ae4
-user: Martin Stransky <stransky@redhat.com>
-date: Fri Jul 31 13:39:48 2020 +0200
-files: dom/media/platforms/ffmpeg/FFmpegVideoDecoder.cpp dom/media/platforms/ffmpeg/FFmpegVideoDecoder.h
-description:
-Bug 1645671 [Linux/VA-API] Create DMABufSurfaceWrapper directly at nsTAttay and disable DMABufSurfaceWrapper class copy and assignment constructors, r?jya
-
-When DMABufSurfaceWrapper is added to nsTArray, a temporary local DMABufSurfaceWrapper object is created. When the temporary
-object is deleted after the adding, associated dmabuf data is released which leads to rendering artifact during VA-API video playback.
-
-As a fix in this patch we create DMABufSurfaceWrapper 'in-place' at nsTAttay.
-We also disable DMABufSurfaceWrapper class copy and assignment constructors to avoid similar potential issues.
-
-Differential Revision: https://phabricator.services.mozilla.com/D85152
-
-
-diff --git a/dom/media/platforms/ffmpeg/FFmpegVideoDecoder.cpp b/dom/media/platforms/ffmpeg/FFmpegVideoDecoder.cpp
---- a/dom/media/platforms/ffmpeg/FFmpegVideoDecoder.cpp
-+++ b/dom/media/platforms/ffmpeg/FFmpegVideoDecoder.cpp
-@@ -777,17 +777,17 @@ MediaResult FFmpegVideoDecoder<LIBAV_VER
- RESULT_DETAIL("Unable to get DMABufSurfaceYUV"));
- }
-
- # ifdef MOZ_LOGGING
- static int uid = 0;
- surface->SetUID(++uid);
- FFMPEG_LOG("Created new DMABufSurface UID = %d", uid);
- # endif
-- mDMABufSurfaces.AppendElement(DMABufSurfaceWrapper(surface, mLib));
-+ mDMABufSurfaces.EmplaceBack(surface, mLib);
- surfaceWrapper = &(mDMABufSurfaces[mDMABufSurfaces.Length() - 1]);
- } else {
- surface = surfaceWrapper->GetDMABufSurface();
- bool ret;
-
- if (mVAAPIDeviceContext) {
- ret = surface->UpdateYUVData(vaDesc);
- } else {
-diff --git a/dom/media/platforms/ffmpeg/FFmpegVideoDecoder.h b/dom/media/platforms/ffmpeg/FFmpegVideoDecoder.h
---- a/dom/media/platforms/ffmpeg/FFmpegVideoDecoder.h
-+++ b/dom/media/platforms/ffmpeg/FFmpegVideoDecoder.h
-@@ -70,16 +70,22 @@ class DMABufSurfaceWrapper final {
- // Check if DMABufSurface is used by any gecko rendering process
- // (WebRender or GL compositor) or by DMABUFSurfaceImage/VideoData.
- bool IsUsed() const { return mSurface->IsGlobalRefSet(); }
-
- RefPtr<DMABufSurfaceYUV> GetDMABufSurface() const {
- return mSurface->GetAsDMABufSurfaceYUV();
- }
-
-+ // Don't allow DMABufSurfaceWrapper plain copy as it leads to
-+ // enexpected DMABufSurface/HW buffer releases and we don't want to
-+ // deep copy them.
-+ DMABufSurfaceWrapper(const DMABufSurfaceWrapper&) = delete;
-+ const DMABufSurfaceWrapper& operator=(DMABufSurfaceWrapper const&) = delete;
-+
- private:
- const RefPtr<DMABufSurface> mSurface;
- const FFmpegLibWrapper* mLib;
- AVBufferRef* mAVHWFramesContext;
- AVBufferRef* mHWAVBuffer;
- };
- #endif
-
-
bgstack15