Regressed by: https://github.com/WebKit/WebKit/commit/11ccaf183fad

GStreamer.cpp.o -c /wrkdirs/usr/ports/www/webkit2-gtk3/work/webkitgtk-2.34.0/Source/WebCore/p
latform/graphics/gstreamer/MediaSampleGStreamer.cpp
/wrkdirs/usr/ports/www/webkit2-gtk3/work/webkitgtk-2.34.0/Source/WebCore/platform/graphics/gs
treamer/MediaSampleGStreamer.cpp:220:12: error: call to implicitly-deleted copy constructor o
f 'WebCore::PlatformSample'
    return sample;
           ^~~~~~
/wrkdirs/usr/ports/www/webkit2-gtk3/work/webkitgtk-2.34.0/Source/WebCore/platform/MediaSample
.h:57:7: note: copy constructor of 'PlatformSample' is implicitly deleted because field 'samp
le' has a deleted copy constructor
    } sample;
      ^
/wrkdirs/usr/ports/www/webkit2-gtk3/work/webkitgtk-2.34.0/Source/WebCore/platform/MediaSample
.h:56:66: note: copy constructor of '' is implicitly deleted because variant field 'byteRange
Sample' has a non-trivial copy constructor
        std::pair<MTPluginByteSourceRef, CMFormatDescriptionRef> byteRangeSample;
                                                                 ^
1 error generated.

diff --git Source/WTF/wtf/PlatformHave.h Source/WTF/wtf/PlatformHave.h
index 4c5f1d2..e61e7fc 100644
--- Source/WTF/wtf/PlatformHave.h
+++ Source/WTF/wtf/PlatformHave.h
@@ -909,6 +909,12 @@
 #endif
 #endif
 
+#if PLATFORM(MAC) && __MAC_OS_X_VERSION_MAX_ALLOWED >= 110300
+#if !defined(HAVE_MT_PLUGIN_SAMPLE_CURSOR_PLAYABLE_HORIZON)
+#define HAVE_MT_PLUGIN_SAMPLE_CURSOR_PLAYABLE_HORIZON 1
+#endif
+#endif
+
 #if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MAX_ALLOWED >= 110200) \
     || (PLATFORM(IOS) && __IPHONE_OS_VERSION_MAX_ALLOWED >= 140400)
 #define HAVE_AVCONTENTKEYREQUEST_PENDING_PROTECTION_STATUS 1
diff --git Source/WebCore/page/RuntimeEnabledFeatures.h Source/WebCore/page/RuntimeEnabledFeatures.h
index c97386f..6bb9794 100644
--- Source/WebCore/page/RuntimeEnabledFeatures.h
+++ Source/WebCore/page/RuntimeEnabledFeatures.h
@@ -243,6 +243,11 @@ public:
     void setDisableMediaExperiencePIDInheritance(bool isDisabled) { m_disableMediaExperiencePIDInheritance = isDisabled; }
     bool disableMediaExperiencePIDInheritance() const { return m_disableMediaExperiencePIDInheritance; }
 #endif
+    
+#if HAVE(MT_PLUGIN_FORMAT_READER)
+    void setWebMFormatReaderEnabled(bool isEnabled) { m_webMFormatReaderEnabled = isEnabled; }
+    bool webMFormatReaderEnabled() const { return m_webMFormatReaderEnabled; }
+#endif
 
 #if ENABLE(VORBIS)
     WEBCORE_EXPORT void setVorbisDecoderEnabled(bool isEnabled);
@@ -375,6 +380,10 @@ private:
     bool m_webMFormatReaderEnabled { false };
 #endif
 
+#if HAVE(MT_PLUGIN_FORMAT_READER)
+    bool m_webMFormatReaderEnabled { false };
+#endif
+
 #if ENABLE(MEDIA_SOURCE)
     bool m_webMParserEnabled { false };
     bool m_webMWebAudioEnabled { false };
diff --git Source/WebCore/platform/MediaSample.h Source/WebCore/platform/MediaSample.h
index 0847b97..d34ba7f 100644
--- Source/WebCore/platform/MediaSample.h
+++ Source/WebCore/platform/MediaSample.h
@@ -34,8 +34,6 @@
 
 typedef struct opaqueCMSampleBuffer *CMSampleBufferRef;
 typedef struct _GstSample GstSample;
-typedef struct OpaqueMTPluginByteSource *MTPluginByteSourceRef;
-typedef const struct opaqueCMFormatDescription *CMFormatDescriptionRef;
 
 namespace WebCore {
 
@@ -47,13 +45,11 @@ struct PlatformSample {
         MockSampleBoxType,
         CMSampleBufferType,
         GStreamerSampleType,
-        ByteRangeSampleType,
     } type;
     union {
         MockSampleBox* mockSampleBox;
         CMSampleBufferRef cmSampleBuffer;
         GstSample* gstSample;
-        std::pair<MTPluginByteSourceRef, CMFormatDescriptionRef> byteRangeSample;
     } sample;
 };
 
@@ -91,12 +87,6 @@ public:
     virtual SampleFlags flags() const = 0;
     virtual PlatformSample platformSample() = 0;
 
-    struct ByteRange {
-        size_t byteOffset { 0 };
-        size_t byteLength { 0 };
-    };
-    virtual std::optional<ByteRange> byteRange() const = 0;
-
     enum class VideoRotation {
         None = 0,
         UpsideDown = 180,
diff --git Source/WebCore/platform/graphics/gstreamer/MediaSampleGStreamer.h Source/WebCore/platform/graphics/gstreamer/MediaSampleGStreamer.h
index d7a49b9..874c3dc 100644
--- Source/WebCore/platform/graphics/gstreamer/MediaSampleGStreamer.h
+++ Source/WebCore/platform/graphics/gstreamer/MediaSampleGStreamer.h
@@ -57,7 +57,6 @@ public:
     Ref<MediaSample> createNonDisplayingCopy() const override;
     SampleFlags flags() const override { return m_flags; }
     PlatformSample platformSample() override;
-    std::optional<ByteRange> byteRange() const override { return std::nullopt; }
     void dump(PrintStream&) const override;
     RefPtr<JSC::Uint8ClampedArray> getRGBAImageData() const final;
 
diff --git Source/WebCore/platform/mock/mediasource/MockSourceBufferPrivate.cpp Source/WebCore/platform/mock/mediasource/MockSourceBufferPrivate.cpp
index 5cb60b9..83da5b0 100644
--- Source/WebCore/platform/mock/mediasource/MockSourceBufferPrivate.cpp
+++ Source/WebCore/platform/mock/mediasource/MockSourceBufferPrivate.cpp
@@ -62,7 +62,6 @@ private:
     size_t sizeInBytes() const override { return sizeof(m_box); }
     SampleFlags flags() const override;
     PlatformSample platformSample() override;
-    std::optional<ByteRange> byteRange() const override { return std::nullopt; }
     FloatSize presentationSize() const override { return FloatSize(); }
     void dump(PrintStream&) const override;
     void offsetTimestampsBy(const MediaTime& offset) override { m_box.offsetTimestampsBy(offset); }
diff --git Source/WebKit/MediaFormatReaderPlugIn/MediaFormatReaderPlugIn.cpp Source/WebKit/MediaFormatReaderPlugIn/MediaFormatReaderPlugIn.cpp
index 496e42a..43664ed 100644
--- Source/WebKit/MediaFormatReaderPlugIn/MediaFormatReaderPlugIn.cpp
+++ Source/WebKit/MediaFormatReaderPlugIn/MediaFormatReaderPlugIn.cpp
@@ -23,14 +23,15 @@
  * THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#include <WebKit/WKMediaFormatReader.h>
+#include "config.h"
 
-extern "C" WK_EXPORT OSStatus CreateMediaFormatReaderInstance(MTPluginByteSourceRef, CFAllocatorRef, CFDictionaryRef, MTPluginFormatReaderRef*);
+#if HAVE(MT_PLUGIN_FORMAT_READER)
 
-OSStatus CreateMediaFormatReaderInstance(MTPluginByteSourceRef byteSource, CFAllocatorRef allocator, CFDictionaryRef, MTPluginFormatReaderRef* formatReader)
+OSStatus CreateMediaFormatReaderInstance(MTPluginByteSourceRef, CFAllocatorRef, CFDictionary
+Ref, MTPluginFormatReaderRef* formatReader)
 {
-    OSStatus status = WKMediaFormatReaderCreate(allocator, formatReader);
-    if (status != noErr)
-        return status;
-    return WKMediaFormatReaderStartOnMainThread(*formatReader, byteSource);
+	*formatReader = nullptr;
+	return kMTPluginFormatReaderError_InternalFailure;
 }
+
+#endif // HAVE(MT_PLUGIN_FORMAT_READER)
diff --git Source/WebKit/Shared/WebPreferencesDefaultValues.cpp Source/WebKit/Shared/WebPreferencesDefaultValues.cpp
index 8b24061..83e3a04 100644
--- Source/WebKit/Shared/WebPreferencesDefaultValues.cpp
+++ Source/WebKit/Shared/WebPreferencesDefaultValues.cpp
@@ -289,6 +289,19 @@ bool defaultWebMFormatReaderEnabled()
 
 #endif // ENABLE(WEBM_FORMAT_READER)
 
+#if ENABLE(MEDIA_SOURCE) && HAVE(MT_PLUGIN_FORMAT_READER)
+
+bool defaultWebMFormatReaderEnabled()
+{
+#if HAVE(SYSTEM_FEATURE_FLAGS)
+    return isFeatureFlagEnabled("webm_format_reader");
+#endif
+
+    return false;
+}
+
+#endif
+
 #if ENABLE(VP9)
 
 bool defaultVP8DecoderEnabled()
diff --git Source/WebKit/Shared/WebPreferencesDefaultValues.h Source/WebKit/Shared/WebPreferencesDefaultValues.h
index c7af0cb..c1c91ed 100644
--- Source/WebKit/Shared/WebPreferencesDefaultValues.h
+++ Source/WebKit/Shared/WebPreferencesDefaultValues.h
@@ -95,6 +95,10 @@ bool defaultWebXREnabled();
 bool defaultWebMFormatReaderEnabled();
 #endif
 
+#if ENABLE(MEDIA_SOURCE) && HAVE(MT_PLUGIN_FORMAT_READER)
+bool defaultWebMFormatReaderEnabled();
+#endif
+
 #if ENABLE(VP9)
 bool defaultVP8DecoderEnabled();
 bool defaultVP9DecoderEnabled();
diff --git Source/WebKit/SourcesCocoa.txt Source/WebKit/SourcesCocoa.txt
index 78fb424..ac04aa8 100644
--- Source/WebKit/SourcesCocoa.txt
+++ Source/WebKit/SourcesCocoa.txt
@@ -229,6 +229,11 @@ Shared/mac/MediaFormatReader/MediaSampleByteRange.cpp
 Shared/mac/MediaFormatReader/MediaSampleCursor.cpp
 Shared/mac/MediaFormatReader/MediaTrackReader.cpp
 
+Shared/mac/MediaFormatReader/CoreMediaWrapped.cpp
+Shared/mac/MediaFormatReader/FormatReader.cpp
+Shared/mac/MediaFormatReader/SampleCursor.cpp
+Shared/mac/MediaFormatReader/TrackReader.cpp
+
 Shared/Plugins/mac/PluginSandboxProfile.mm
 
 Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm
