From 26a029d407be480d791972afb5975cf62c9360a6 Mon Sep 17 00:00:00 2001
From: Daniel Baumann <daniel.baumann@progress-linux.org>
Date: Fri, 19 Apr 2024 02:47:55 +0200
Subject: Adding upstream version 124.0.1.

Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
---
 gfx/layers/ipc/SharedPlanarYCbCrImage.h | 64 +++++++++++++++++++++++++++++++++
 1 file changed, 64 insertions(+)
 create mode 100644 gfx/layers/ipc/SharedPlanarYCbCrImage.h

(limited to 'gfx/layers/ipc/SharedPlanarYCbCrImage.h')

diff --git a/gfx/layers/ipc/SharedPlanarYCbCrImage.h b/gfx/layers/ipc/SharedPlanarYCbCrImage.h
new file mode 100644
index 0000000000..9f6c06df55
--- /dev/null
+++ b/gfx/layers/ipc/SharedPlanarYCbCrImage.h
@@ -0,0 +1,64 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* vim: set ts=8 sts=2 et sw=2 tw=80: */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include <stdint.h>              // for uint8_t, uint32_t
+#include "ImageContainer.h"      // for PlanarYCbCrImage, etc
+#include "mozilla/Attributes.h"  // for override
+#include "mozilla/RefPtr.h"      // for RefPtr
+#include "mozilla/ipc/Shmem.h"   // for Shmem
+#include "nsCOMPtr.h"            // for already_AddRefed
+#include "nsDebug.h"             // for NS_WARNING
+#include "nsISupportsImpl.h"     // for MOZ_COUNT_CTOR
+
+#ifndef MOZILLA_LAYERS_SHAREDPLANARYCBCRIMAGE_H
+#  define MOZILLA_LAYERS_SHAREDPLANARYCBCRIMAGE_H
+
+namespace mozilla {
+namespace layers {
+
+class ImageClient;
+class TextureClient;
+class TextureClientRecycleAllocator;
+
+class SharedPlanarYCbCrImage : public PlanarYCbCrImage {
+ public:
+  explicit SharedPlanarYCbCrImage(ImageClient* aCompositable);
+  explicit SharedPlanarYCbCrImage(
+      TextureClientRecycleAllocator* aRecycleAllocator);
+
+ protected:
+  virtual ~SharedPlanarYCbCrImage();
+
+ public:
+  TextureClient* GetTextureClient(KnowsCompositor* aKnowsCompositor) override;
+
+  already_AddRefed<gfx::SourceSurface> GetAsSourceSurface() override;
+  nsresult CopyData(const PlanarYCbCrData& aData) override;
+  nsresult AdoptData(const Data& aData) override;
+  nsresult CreateEmptyBuffer(const Data& aData, const gfx::IntSize& aYSize,
+                             const gfx::IntSize& aCbCrSize) override;
+
+  void SetIsDRM(bool aIsDRM) override;
+  bool IsValid() const override;
+
+  size_t SizeOfIncludingThis(MallocSizeOf aMallocSizeOf) const override {
+    return aMallocSizeOf(this) + SizeOfExcludingThis(aMallocSizeOf);
+  }
+
+  size_t SizeOfExcludingThis(MallocSizeOf aMallocSizeOf) const override;
+
+  TextureClientRecycleAllocator* RecycleAllocator();
+
+ private:
+  RefPtr<TextureClient> mTextureClient;
+  RefPtr<ImageClient> mCompositable;
+  RefPtr<TextureClientRecycleAllocator> mRecycleAllocator;
+};
+
+}  // namespace layers
+}  // namespace mozilla
+
+#endif
-- 
cgit v1.2.3