summaryrefslogtreecommitdiff
path: root/mozilla-1656436.patch
diff options
context:
space:
mode:
Diffstat (limited to 'mozilla-1656436.patch')
-rw-r--r--mozilla-1656436.patch28
1 files changed, 28 insertions, 0 deletions
diff --git a/mozilla-1656436.patch b/mozilla-1656436.patch
new file mode 100644
index 0000000..6350a43
--- /dev/null
+++ b/mozilla-1656436.patch
@@ -0,0 +1,28 @@
+diff -up firefox-79.0/dom/media/platforms/ffmpeg/FFmpegVideoDecoder.cpp.mozilla-1656436 firefox-79.0/dom/media/platforms/ffmpeg/FFmpegVideoDecoder.cpp
+--- firefox-79.0/dom/media/platforms/ffmpeg/FFmpegVideoDecoder.cpp.mozilla-1656436 2020-08-04 13:31:49.476663242 +0200
++++ firefox-79.0/dom/media/platforms/ffmpeg/FFmpegVideoDecoder.cpp 2020-08-04 13:32:28.201448682 +0200
+@@ -766,6 +766,11 @@ MediaResult FFmpegVideoDecoder<LIBAV_VER
+ mDMABufSurfaces.EmplaceBack(surface, mLib);
+ surfaceWrapper = &(mDMABufSurfaces[mDMABufSurfaces.Length() - 1]);
+ } else {
++ // Release VAAPI surface data before we reuse it.
++ if (mVAAPIDeviceContext) {
++ surfaceWrapper->ReleaseVAAPIData();
++ }
++
+ surface = surfaceWrapper->GetDMABufSurface();
+ bool ret;
+
+diff -up firefox-79.0/widget/gtk/DMABufSurface.cpp.mozilla-1656436 firefox-79.0/widget/gtk/DMABufSurface.cpp
+--- firefox-79.0/widget/gtk/DMABufSurface.cpp.mozilla-1656436 2020-08-04 13:31:49.477663237 +0200
++++ firefox-79.0/widget/gtk/DMABufSurface.cpp 2020-08-04 13:33:07.666230023 +0200
+@@ -744,7 +744,8 @@ bool DMABufSurfaceYUV::UpdateYUVData(con
+ return false;
+ }
+ if (mDmabufFds[0] >= 0) {
+- ReleaseSurface();
++ NS_WARNING("DMABufSurfaceYUV is already created!");
++ return false;
+ }
+
+ mSurfaceFormat = gfx::SurfaceFormat::NV12;
bgstack15