summaryrefslogtreecommitdiff
path: root/D141828.diff
diff options
context:
space:
mode:
Diffstat (limited to 'D141828.diff')
-rw-r--r--D141828.diff252
1 files changed, 0 insertions, 252 deletions
diff --git a/D141828.diff b/D141828.diff
deleted file mode 100644
index b2475e9..0000000
--- a/D141828.diff
+++ /dev/null
@@ -1,252 +0,0 @@
-diff -up firefox-99.0/dom/media/platforms/ffmpeg/ffmpeg58/moz.build.D141828 firefox-99.0/dom/media/platforms/ffmpeg/ffmpeg58/moz.build
---- firefox-99.0/dom/media/platforms/ffmpeg/ffmpeg58/moz.build.D141828 2022-03-31 01:24:44.000000000 +0200
-+++ firefox-99.0/dom/media/platforms/ffmpeg/ffmpeg58/moz.build 2022-04-07 10:11:34.981246890 +0200
-@@ -30,6 +30,9 @@ if CONFIG['MOZ_WAYLAND']:
- CXXFLAGS += CONFIG['MOZ_GTK3_CFLAGS']
- DEFINES['MOZ_WAYLAND_USE_VAAPI'] = 1
- USE_LIBS += ['mozva']
-+ UNIFIED_SOURCES += [
-+ '../FFmpegVideoFramePool.cpp',
-+ ]
-
- include("/ipc/chromium/chromium-config.mozbuild")
-
-diff -up firefox-99.0/dom/media/platforms/ffmpeg/ffmpeg59/moz.build.D141828 firefox-99.0/dom/media/platforms/ffmpeg/ffmpeg59/moz.build
---- firefox-99.0/dom/media/platforms/ffmpeg/ffmpeg59/moz.build.D141828 2022-03-31 01:24:44.000000000 +0200
-+++ firefox-99.0/dom/media/platforms/ffmpeg/ffmpeg59/moz.build 2022-04-07 10:11:34.981246890 +0200
-@@ -30,6 +30,9 @@ if CONFIG["MOZ_WAYLAND"]:
- CXXFLAGS += CONFIG["MOZ_GTK3_CFLAGS"]
- DEFINES["MOZ_WAYLAND_USE_VAAPI"] = 1
- USE_LIBS += ["mozva"]
-+ UNIFIED_SOURCES += [
-+ "../FFmpegVideoFramePool.cpp",
-+ ]
-
- include("/ipc/chromium/chromium-config.mozbuild")
-
-diff -up firefox-99.0/dom/media/platforms/ffmpeg/FFmpegVideoDecoder.cpp.D141828 firefox-99.0/dom/media/platforms/ffmpeg/FFmpegVideoDecoder.cpp
---- firefox-99.0/dom/media/platforms/ffmpeg/FFmpegVideoDecoder.cpp.D141828 2022-03-31 01:24:44.000000000 +0200
-+++ firefox-99.0/dom/media/platforms/ffmpeg/FFmpegVideoDecoder.cpp 2022-04-07 10:11:34.981246890 +0200
-@@ -814,7 +814,7 @@ MediaResult FFmpegVideoDecoder<LIBAV_VER
- # ifdef MOZ_WAYLAND_USE_VAAPI
- // Create VideoFramePool in case we need it.
- if (!mVideoFramePool && mEnableHardwareDecoding) {
-- mVideoFramePool = MakeUnique<VideoFramePool>();
-+ mVideoFramePool = MakeUnique<VideoFramePool<LIBAV_VER>>();
- }
-
- // Release unused VA-API surfaces before avcodec_receive_frame() as
-diff -up firefox-99.0/dom/media/platforms/ffmpeg/FFmpegVideoDecoder.h.D141828 firefox-99.0/dom/media/platforms/ffmpeg/FFmpegVideoDecoder.h
---- firefox-99.0/dom/media/platforms/ffmpeg/FFmpegVideoDecoder.h.D141828 2022-03-31 01:24:44.000000000 +0200
-+++ firefox-99.0/dom/media/platforms/ffmpeg/FFmpegVideoDecoder.h 2022-04-07 10:11:34.981246890 +0200
-@@ -16,6 +16,9 @@
- #if LIBAVCODEC_VERSION_MAJOR >= 57 && LIBAVUTIL_VERSION_MAJOR >= 56
- # include "mozilla/layers/TextureClient.h"
- #endif
-+#ifdef MOZ_WAYLAND_USE_VAAPI
-+# include "FFmpegVideoFramePool.h"
-+#endif
-
- struct _VADRMPRIMESurfaceDescriptor;
- typedef struct _VADRMPRIMESurfaceDescriptor VADRMPRIMESurfaceDescriptor;
-@@ -23,7 +26,6 @@ typedef struct _VADRMPRIMESurfaceDescrip
- namespace mozilla {
-
- class ImageBufferWrapper;
--class VideoFramePool;
-
- template <int V>
- class FFmpegVideoDecoder : public FFmpegDataDecoder<V> {};
-@@ -138,7 +140,7 @@ class FFmpegVideoDecoder<LIBAV_VER>
- AVBufferRef* mVAAPIDeviceContext;
- bool mEnableHardwareDecoding;
- VADisplay mDisplay;
-- UniquePtr<VideoFramePool> mVideoFramePool;
-+ UniquePtr<VideoFramePool<LIBAV_VER>> mVideoFramePool;
- static nsTArray<AVCodecID> mAcceleratedFormats;
- #endif
- RefPtr<KnowsCompositor> mImageAllocator;
-diff -up firefox-99.0/dom/media/platforms/ffmpeg/FFmpegVideoFramePool.cpp.D141828 firefox-99.0/dom/media/platforms/ffmpeg/FFmpegVideoFramePool.cpp
---- firefox-99.0/dom/media/platforms/ffmpeg/FFmpegVideoFramePool.cpp.D141828 2022-04-07 10:11:34.980246857 +0200
-+++ firefox-99.0/dom/media/platforms/ffmpeg/FFmpegVideoFramePool.cpp 2022-04-07 10:16:02.390971008 +0200
-@@ -5,6 +5,7 @@
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
- #include "FFmpegVideoFramePool.h"
-+#include "PlatformDecoderModule.h"
- #include "FFmpegLog.h"
- #include "mozilla/widget/DMABufLibWrapper.h"
- #include "libavutil/pixfmt.h"
-@@ -15,11 +16,11 @@
-
- namespace mozilla {
-
--RefPtr<layers::Image> VideoFrameSurface::GetAsImage() {
-+RefPtr<layers::Image> VideoFrameSurface<LIBAV_VER>::GetAsImage() {
- return new layers::DMABUFSurfaceImage(mSurface);
- }
-
--VideoFrameSurface::VideoFrameSurface(DMABufSurface* aSurface)
-+VideoFrameSurface<LIBAV_VER>::VideoFrameSurface(DMABufSurface* aSurface)
- : mSurface(aSurface),
- mLib(nullptr),
- mAVHWFramesContext(nullptr),
-@@ -34,7 +35,7 @@ VideoFrameSurface::VideoFrameSurface(DMA
- mSurface->GetUID());
- }
-
--void VideoFrameSurface::LockVAAPIData(AVCodecContext* aAVCodecContext,
-+void VideoFrameSurface<LIBAV_VER>::LockVAAPIData(AVCodecContext* aAVCodecContext,
- AVFrame* aAVFrame,
- FFmpegLibWrapper* aLib) {
- FFMPEG_LOG("VideoFrameSurface: VAAPI locking dmabuf surface UID = %d",
-@@ -44,7 +45,7 @@ void VideoFrameSurface::LockVAAPIData(AV
- mHWAVBuffer = aLib->av_buffer_ref(aAVFrame->buf[0]);
- }
-
--void VideoFrameSurface::ReleaseVAAPIData(bool aForFrameRecycle) {
-+void VideoFrameSurface<LIBAV_VER>::ReleaseVAAPIData(bool aForFrameRecycle) {
- FFMPEG_LOG("VideoFrameSurface: VAAPI releasing dmabuf surface UID = %d",
- mSurface->GetUID());
-
-@@ -67,21 +68,22 @@ void VideoFrameSurface::ReleaseVAAPIData
- }
- }
-
--VideoFrameSurface::~VideoFrameSurface() {
-+VideoFrameSurface<LIBAV_VER>::~VideoFrameSurface() {
- FFMPEG_LOG("VideoFrameSurface: deleting dmabuf surface UID = %d",
- mSurface->GetUID());
- // We're about to quit, no need to recycle the frames.
- ReleaseVAAPIData(/* aForFrameRecycle */ false);
- }
-
--VideoFramePool::VideoFramePool() : mSurfaceLock("VideoFramePoolSurfaceLock") {}
-+VideoFramePool<LIBAV_VER>::VideoFramePool()
-+ : mSurfaceLock("VideoFramePoolSurfaceLock") {}
-
--VideoFramePool::~VideoFramePool() {
-+VideoFramePool<LIBAV_VER>::~VideoFramePool() {
- MutexAutoLock lock(mSurfaceLock);
- mDMABufSurfaces.Clear();
- }
-
--void VideoFramePool::ReleaseUnusedVAAPIFrames() {
-+void VideoFramePool<LIBAV_VER>::ReleaseUnusedVAAPIFrames() {
- MutexAutoLock lock(mSurfaceLock);
- for (const auto& surface : mDMABufSurfaces) {
- if (!surface->IsUsed()) {
-@@ -90,7 +92,8 @@ void VideoFramePool::ReleaseUnusedVAAPIF
- }
- }
-
--RefPtr<VideoFrameSurface> VideoFramePool::GetFreeVideoFrameSurface() {
-+RefPtr<VideoFrameSurface<LIBAV_VER>>
-+VideoFramePool<LIBAV_VER>::GetFreeVideoFrameSurface() {
- for (auto& surface : mDMABufSurfaces) {
- if (surface->IsUsed()) {
- continue;
-@@ -101,7 +104,8 @@ RefPtr<VideoFrameSurface> VideoFramePool
- return nullptr;
- }
-
--RefPtr<VideoFrameSurface> VideoFramePool::GetVideoFrameSurface(
-+RefPtr<VideoFrameSurface<LIBAV_VER>>
-+VideoFramePool<LIBAV_VER>::GetVideoFrameSurface(
- VADRMPRIMESurfaceDescriptor& aVaDesc, AVCodecContext* aAVCodecContext,
- AVFrame* aAVFrame, FFmpegLibWrapper* aLib) {
- if (aVaDesc.fourcc != VA_FOURCC_NV12 && aVaDesc.fourcc != VA_FOURCC_YV12 &&
-@@ -111,7 +115,8 @@ RefPtr<VideoFrameSurface> VideoFramePool
- }
-
- MutexAutoLock lock(mSurfaceLock);
-- RefPtr<VideoFrameSurface> videoSurface = GetFreeVideoFrameSurface();
-+ RefPtr<VideoFrameSurface<LIBAV_VER>> videoSurface =
-+ GetFreeVideoFrameSurface();
- if (!videoSurface) {
- RefPtr<DMABufSurfaceYUV> surface =
- DMABufSurfaceYUV::CreateYUVSurface(aVaDesc);
-@@ -119,7 +124,8 @@ RefPtr<VideoFrameSurface> VideoFramePool
- return nullptr;
- }
- FFMPEG_LOG("Created new VA-API DMABufSurface UID = %d", surface->GetUID());
-- RefPtr<VideoFrameSurface> surf = new VideoFrameSurface(surface);
-+ RefPtr<VideoFrameSurface<LIBAV_VER>> surf =
-+ new VideoFrameSurface<LIBAV_VER>(surface);
- if (!mTextureCreationWorks) {
- mTextureCreationWorks = Some(surface->VerifyTextureCreation());
- }
-diff -up firefox-99.0/dom/media/platforms/ffmpeg/FFmpegVideoFramePool.h.D141828 firefox-99.0/dom/media/platforms/ffmpeg/FFmpegVideoFramePool.h
---- firefox-99.0/dom/media/platforms/ffmpeg/FFmpegVideoFramePool.h.D141828 2022-04-07 10:11:34.980246857 +0200
-+++ firefox-99.0/dom/media/platforms/ffmpeg/FFmpegVideoFramePool.h 2022-04-07 10:14:54.478755409 +0200
-@@ -7,8 +7,9 @@
- #ifndef __FFmpegVideoFramePool_h__
- #define __FFmpegVideoFramePool_h__
-
--#include "FFmpegVideoDecoder.h"
- #include "FFmpegLibWrapper.h"
-+#include "FFmpegLibs.h"
-+#include "FFmpegLog.h"
-
- #include "mozilla/layers/DMABUFSurfaceImage.h"
- #include "mozilla/widget/DMABufLibWrapper.h"
-@@ -16,8 +17,6 @@
-
- namespace mozilla {
-
--class VideoFramePool;
--
- // VideoFrameSurface holds a reference to GPU data with a video frame.
- //
- // Actual GPU pixel data are stored at DMABufSurface and
-@@ -47,8 +46,19 @@ class VideoFramePool;
- // Unfortunately there isn't any obvious way how to mark particular VASurface
- // as used. The best we can do is to hold a reference to particular AVBuffer
- // from decoded AVFrame and AVHWFramesContext which owns the AVBuffer.
--class VideoFrameSurface {
-- friend class VideoFramePool;
-+template <int V>
-+class VideoFrameSurface {};
-+template <>
-+class VideoFrameSurface<LIBAV_VER>;
-+
-+template <int V>
-+class VideoFramePool {};
-+template <>
-+class VideoFramePool<LIBAV_VER>;
-+
-+template <>
-+class VideoFrameSurface<LIBAV_VER> {
-+ friend class VideoFramePool<LIBAV_VER>;
-
- public:
- NS_INLINE_DECL_THREADSAFE_REFCOUNTING(VideoFrameSurface)
-@@ -97,23 +107,24 @@ class VideoFrameSurface {
- };
-
- // VideoFramePool class is thread-safe.
--class VideoFramePool final {
-+template <>
-+class VideoFramePool<LIBAV_VER> {
- public:
- VideoFramePool();
- ~VideoFramePool();
-
-- RefPtr<VideoFrameSurface> GetVideoFrameSurface(
-+ RefPtr<VideoFrameSurface<LIBAV_VER>> GetVideoFrameSurface(
- VADRMPRIMESurfaceDescriptor& aVaDesc, AVCodecContext* aAVCodecContext,
- AVFrame* aAVFrame, FFmpegLibWrapper* aLib);
- void ReleaseUnusedVAAPIFrames();
-
- private:
-- RefPtr<VideoFrameSurface> GetFreeVideoFrameSurface();
-+ RefPtr<VideoFrameSurface<LIBAV_VER>> GetFreeVideoFrameSurface();
-
- private:
- // Protect mDMABufSurfaces pool access
- Mutex mSurfaceLock;
-- nsTArray<RefPtr<VideoFrameSurface>> mDMABufSurfaces;
-+ nsTArray<RefPtr<VideoFrameSurface<LIBAV_VER>>> mDMABufSurfaces;
- // We may fail to create texture over DMABuf memory due to driver bugs so
- // check that before we export first DMABuf video frame.
- Maybe<bool> mTextureCreationWorks;
bgstack15