diff -urp webkitgtk-2.28.0.gtk/Source/cmake/GStreamerChecks.cmake webkitgtk-2.28.0/Source/cmake/GStreamerChecks.cmake
--- webkitgtk-2.28.0.gtk/Source/cmake/GStreamerChecks.cmake	2020-02-04 04:24:08.000000000 -0600
+++ webkitgtk-2.28.0/Source/cmake/GStreamerChecks.cmake	2020-03-19 16:01:09.256012367 -0500
@@ -10,7 +10,7 @@ if (ENABLE_VIDEO OR ENABLE_WEB_AUDIO)
         SET_AND_EXPOSE_TO_BUILD(USE_WEBAUDIO_GSTREAMER TRUE)
     endif ()
 
-    find_package(GStreamer 1.10.0 REQUIRED COMPONENTS ${GSTREAMER_COMPONENTS})
+    find_package(GStreamer 1.8.3 REQUIRED COMPONENTS ${GSTREAMER_COMPONENTS})
 
     if (ENABLE_WEB_AUDIO)
         if (NOT PC_GSTREAMER_AUDIO_FOUND OR NOT PC_GSTREAMER_FFT_FOUND)
@@ -26,24 +26,39 @@ if (ENABLE_VIDEO OR ENABLE_WEB_AUDIO)
         endif ()
     endif ()
 
-    if (USE_GSTREAMER_MPEGTS AND NOT PC_GSTREAMER_MPEGTS_FOUND)
-        message(FATAL_ERROR "GStreamer MPEG-TS is needed for USE_GSTREAMER_MPEGTS.")
+    if (USE_GSTREAMER_MPEGTS)
+        if (NOT PC_GSTREAMER_MPEGTS_FOUND)
+            message(FATAL_ERROR "GStreamer MPEG-TS is needed for USE_GSTREAMER_MPEGTS.")
+        endif ()
     endif ()
 
-    if (USE_GSTREAMER_GL AND NOT PC_GSTREAMER_GL_FOUND)
-        message(FATAL_ERROR "GStreamerGL is needed for USE_GSTREAMER_GL.")
+    if (USE_GSTREAMER_GL)
+        if (PC_GSTREAMER_VERSION VERSION_LESS "1.10")
+            message(FATAL_ERROR "GStreamer 1.10 is needed for USE_GSTREAMER_GL.")
+        else ()
+            if (NOT PC_GSTREAMER_GL_FOUND)
+                message(FATAL_ERROR "GStreamerGL is needed for USE_GSTREAMER_GL.")
+            endif ()
+        endif ()
     endif ()
 
     SET_AND_EXPOSE_TO_BUILD(USE_GSTREAMER TRUE)
 endif ()
 
-if (ENABLE_MEDIA_SOURCE AND PC_GSTREAMER_VERSION VERSION_LESS "1.14")
-    message(FATAL_ERROR "GStreamer 1.14 is needed for ENABLE_MEDIA_SOURCE.")
+if (ENABLE_MEDIA_SOURCE)
+    if (PC_GSTREAMER_VERSION VERSION_LESS "1.14")
+        message(FATAL_ERROR "GStreamer 1.14 is needed for ENABLE_MEDIA_SOURCE.")
+    endif ()
 endif ()
 
 if (ENABLE_MEDIA_STREAM OR ENABLE_WEB_RTC)
-    SET_AND_EXPOSE_TO_BUILD(USE_LIBWEBRTC TRUE)
-    SET_AND_EXPOSE_TO_BUILD(WEBRTC_WEBKIT_BUILD TRUE)
+    if (PC_GSTREAMER_VERSION VERSION_LESS "1.10")
+        SET_AND_EXPOSE_TO_BUILD(USE_LIBWEBRTC FALSE)
+        SET_AND_EXPOSE_TO_BUILD(WEBRTC_WEBKIT_BUILD FALSE)
+    else ()
+        SET_AND_EXPOSE_TO_BUILD(USE_LIBWEBRTC TRUE)
+        SET_AND_EXPOSE_TO_BUILD(WEBRTC_WEBKIT_BUILD TRUE)
+    endif ()
 else ()
     SET_AND_EXPOSE_TO_BUILD(USE_LIBWEBRTC FALSE)
     SET_AND_EXPOSE_TO_BUILD(WEBRTC_WEBKIT_BUILD FALSE)
diff -urp webkitgtk-2.28.0.gtk/Source/WebCore/platform/graphics/gstreamer/AudioTrackPrivateGStreamer.cpp webkitgtk-2.28.0/Source/WebCore/platform/graphics/gstreamer/AudioTrackPrivateGStreamer.cpp
--- webkitgtk-2.28.0.gtk/Source/WebCore/platform/graphics/gstreamer/AudioTrackPrivateGStreamer.cpp	2020-02-04 04:24:08.000000000 -0600
+++ webkitgtk-2.28.0/Source/WebCore/platform/graphics/gstreamer/AudioTrackPrivateGStreamer.cpp	2020-03-19 16:01:09.256012367 -0500
@@ -43,6 +43,7 @@ AudioTrackPrivateGStreamer::AudioTrackPr
     notifyTrackOfActiveChanged();
 }
 
+#if GST_CHECK_VERSION(1, 10, 0)
 AudioTrackPrivateGStreamer::AudioTrackPrivateGStreamer(WeakPtr<MediaPlayerPrivateGStreamer> player, gint index, GRefPtr<GstStream> stream)
     : TrackPrivateBaseGStreamer(this, index, stream)
     , m_player(player)
@@ -69,6 +70,7 @@ AudioTrackPrivate::Kind AudioTrackPrivat
 
     return AudioTrackPrivate::kind();
 }
+#endif
 
 void AudioTrackPrivateGStreamer::disconnect()
 {
diff -urp webkitgtk-2.28.0.gtk/Source/WebCore/platform/graphics/gstreamer/AudioTrackPrivateGStreamer.h webkitgtk-2.28.0/Source/WebCore/platform/graphics/gstreamer/AudioTrackPrivateGStreamer.h
--- webkitgtk-2.28.0.gtk/Source/WebCore/platform/graphics/gstreamer/AudioTrackPrivateGStreamer.h	2020-02-04 04:24:08.000000000 -0600
+++ webkitgtk-2.28.0/Source/WebCore/platform/graphics/gstreamer/AudioTrackPrivateGStreamer.h	2020-03-19 16:01:09.260012388 -0500
@@ -43,12 +43,14 @@ public:
         return adoptRef(*new AudioTrackPrivateGStreamer(player, index, pad));
     }
 
+#if GST_CHECK_VERSION(1, 10, 0)
     static RefPtr<AudioTrackPrivateGStreamer> create(WeakPtr<MediaPlayerPrivateGStreamer> player, gint index, GRefPtr<GstStream> stream)
     {
         return adoptRef(*new AudioTrackPrivateGStreamer(player, index, stream));
     }
 
     Kind kind() const final;
+#endif
 
     void disconnect() override;
 
@@ -64,7 +66,9 @@ public:
 
 private:
     AudioTrackPrivateGStreamer(WeakPtr<MediaPlayerPrivateGStreamer>, gint index, GRefPtr<GstPad>);
+#if GST_CHECK_VERSION(1, 10, 0)
     AudioTrackPrivateGStreamer(WeakPtr<MediaPlayerPrivateGStreamer>, gint index, GRefPtr<GstStream>);
+#endif
 
     AtomString m_id;
     WeakPtr<MediaPlayerPrivateGStreamer> m_player;
diff -urp webkitgtk-2.28.0.gtk/Source/WebCore/platform/graphics/gstreamer/GRefPtrGStreamer.cpp webkitgtk-2.28.0/Source/WebCore/platform/graphics/gstreamer/GRefPtrGStreamer.cpp
--- webkitgtk-2.28.0.gtk/Source/WebCore/platform/graphics/gstreamer/GRefPtrGStreamer.cpp	2020-02-04 04:24:08.000000000 -0600
+++ webkitgtk-2.28.0/Source/WebCore/platform/graphics/gstreamer/GRefPtrGStreamer.cpp	2020-03-19 16:01:09.260012388 -0500
@@ -378,6 +378,7 @@ template <> void derefGPtr<GstQuery>(Gst
         gst_query_unref(ptr);
 }
 
+#if GST_CHECK_VERSION(1, 10, 0)
 template <> GRefPtr<GstStream> adoptGRef(GstStream* ptr)
 {
     return GRefPtr<GstStream>(ptr, GRefPtrAdopt);
@@ -415,6 +416,7 @@ template <> void derefGPtr<GstStreamColl
     if (ptr)
         gst_object_unref(ptr);
 }
+#endif
 
 template <> GRefPtr<WebKitVideoSink> adoptGRef(WebKitVideoSink* ptr)
 {
diff -urp webkitgtk-2.28.0.gtk/Source/WebCore/platform/graphics/gstreamer/GRefPtrGStreamer.h webkitgtk-2.28.0/Source/WebCore/platform/graphics/gstreamer/GRefPtrGStreamer.h
--- webkitgtk-2.28.0.gtk/Source/WebCore/platform/graphics/gstreamer/GRefPtrGStreamer.h	2020-02-04 04:24:08.000000000 -0600
+++ webkitgtk-2.28.0/Source/WebCore/platform/graphics/gstreamer/GRefPtrGStreamer.h	2020-03-19 16:01:09.260012388 -0500
@@ -116,6 +116,7 @@ GRefPtr<WebKitWebSrc> ensureGRef(WebKitW
 template<> WebKitWebSrc* refGPtr<WebKitWebSrc>(WebKitWebSrc* ptr);
 template<> void derefGPtr<WebKitWebSrc>(WebKitWebSrc* ptr);
 
+#if GST_CHECK_VERSION(1, 10, 0)
 template<> GRefPtr<GstStream> adoptGRef(GstStream*);
 template<> GstStream* refGPtr<GstStream>(GstStream*);
 template<> void derefGPtr<GstStream>(GstStream*);
@@ -123,6 +124,7 @@ template<> void derefGPtr<GstStream>(Gst
 template<> GRefPtr<GstStreamCollection> adoptGRef(GstStreamCollection*);
 template<> GstStreamCollection* refGPtr<GstStreamCollection>(GstStreamCollection*);
 template<> void derefGPtr<GstStreamCollection>(GstStreamCollection*);
+#endif
 
 #if USE(GSTREAMER_GL)
 template<> GRefPtr<GstGLDisplay> adoptGRef(GstGLDisplay* ptr);
diff -urp webkitgtk-2.28.0.gtk/Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.cpp webkitgtk-2.28.0/Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.cpp
--- webkitgtk-2.28.0.gtk/Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.cpp	2020-02-04 04:24:08.000000000 -0600
+++ webkitgtk-2.28.0/Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.cpp	2020-03-19 16:01:09.260012388 -0500
@@ -44,7 +44,7 @@
 #include "WebKitMediaSourceGStreamer.h"
 #endif
 
-#if ENABLE(MEDIA_STREAM)
+#if ENABLE(MEDIA_STREAM) && GST_CHECK_VERSION(1, 10, 0)
 #include "GStreamerMediaStreamSource.h"
 #endif
 
@@ -287,8 +287,9 @@ bool initializeGStreamerAndRegisterWebKi
         gst_element_register(nullptr, "webkitclearkey", GST_RANK_PRIMARY + 100, WEBKIT_TYPE_MEDIA_CK_DECRYPT);
 #endif
 
-#if ENABLE(MEDIA_STREAM)
-        gst_element_register(nullptr, "mediastreamsrc", GST_RANK_PRIMARY, WEBKIT_TYPE_MEDIA_STREAM_SRC);
+#if ENABLE(MEDIA_STREAM) && GST_CHECK_VERSION(1, 10, 0)
+        if (webkitGstCheckVersion(1, 10, 0))
+            gst_element_register(nullptr, "mediastreamsrc", GST_RANK_PRIMARY, WEBKIT_TYPE_MEDIA_STREAM_SRC);
 #endif
 
 #if ENABLE(MEDIA_SOURCE)
diff -urp webkitgtk-2.28.0.gtk/Source/WebCore/platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.cpp webkitgtk-2.28.0/Source/WebCore/platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.cpp
--- webkitgtk-2.28.0.gtk/Source/WebCore/platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.cpp	2020-02-04 04:24:08.000000000 -0600
+++ webkitgtk-2.28.0/Source/WebCore/platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.cpp	2020-03-19 16:01:09.264012409 -0500
@@ -58,6 +58,7 @@ InbandTextTrackPrivateGStreamer::InbandT
     notifyTrackOfStreamChanged();
 }
 
+#if GST_CHECK_VERSION(1, 10, 0)
 InbandTextTrackPrivateGStreamer::InbandTextTrackPrivateGStreamer(gint index, GRefPtr<GstStream> stream)
     : InbandTextTrackPrivate(WebVTT)
     , TrackPrivateBaseGStreamer(this, index, stream)
@@ -65,6 +66,7 @@ InbandTextTrackPrivateGStreamer::InbandT
     m_streamId = gst_stream_get_stream_id(stream.get());
     GST_INFO("Track %d got stream start for stream %s.", m_index, m_streamId.utf8().data());
 }
+#endif
 
 void InbandTextTrackPrivateGStreamer::disconnect()
 {
diff -urp webkitgtk-2.28.0.gtk/Source/WebCore/platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.h webkitgtk-2.28.0/Source/WebCore/platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.h
--- webkitgtk-2.28.0.gtk/Source/WebCore/platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.h	2020-02-04 04:24:08.000000000 -0600
+++ webkitgtk-2.28.0/Source/WebCore/platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.h	2020-03-19 16:01:09.264012409 -0500
@@ -44,10 +44,12 @@ public:
         return adoptRef(*new InbandTextTrackPrivateGStreamer(index, pad));
     }
 
+#if GST_CHECK_VERSION(1, 10, 0)
     static Ref<InbandTextTrackPrivateGStreamer> create(gint index, GRefPtr<GstStream> stream)
     {
         return adoptRef(*new InbandTextTrackPrivateGStreamer(index, stream));
     }
+#endif
 
     void disconnect() override;
 
@@ -61,7 +63,9 @@ public:
 
 private:
     InbandTextTrackPrivateGStreamer(gint index, GRefPtr<GstPad>);
+#if GST_CHECK_VERSION(1, 10, 0)
     InbandTextTrackPrivateGStreamer(gint index, GRefPtr<GstStream>);
+#endif
 
     void streamChanged();
 
diff -urp webkitgtk-2.28.0.gtk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp webkitgtk-2.28.0/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp
--- webkitgtk-2.28.0.gtk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp	2020-02-26 04:27:47.000000000 -0600
+++ webkitgtk-2.28.0/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp	2020-03-23 11:25:52.137866077 -0500
@@ -54,7 +54,7 @@
 #include "VideoTrackPrivateGStreamer.h"
 #endif // ENABLE(VIDEO_TRACK)
 
-#if ENABLE(MEDIA_STREAM)
+#if ENABLE(MEDIA_STREAM) && GST_CHECK_VERSION(1, 10, 0)
 #include "GStreamerMediaStreamSource.h"
 #endif
 
@@ -100,6 +100,7 @@
 #undef GST_USE_UNSTABLE_API
 #endif // ENABLE(VIDEO_TRACK) && USE(GSTREAMER_MPEGTS)
 
+#if GST_CHECK_VERSION(1, 10, 0)
 #if ENABLE(VIDEO_TRACK)
 #define CREATE_TRACK(type, Type) G_STMT_START {                         \
         m_has##Type = true;                                             \
@@ -121,6 +122,7 @@
         m_has##Type## = true;                   \
     } G_STMT_END
 #endif // ENABLE(VIDEO_TRACK)
+#endif // GST_CHECK_VERSION(1, 10, 0)
 
 #if USE(GSTREAMER_GL)
 #include "GLVideoSinkGStreamer.h"
@@ -635,6 +637,7 @@ void MediaPlayerPrivateGStreamer::load(c
 #if ENABLE(MEDIA_STREAM)
 void MediaPlayerPrivateGStreamer::load(MediaStreamPrivate& stream)
 {
+#if GST_CHECK_VERSION(1, 10, 0)
     m_streamPrivate = &stream;
     static Atomic<uint32_t> pipelineId;
     auto pipelineName = makeString("mediastream-", pipelineId.exchangeAdd(1));
@@ -643,6 +646,12 @@ void MediaPlayerPrivateGStreamer::load(M
     syncOnClock(false);
 
     m_player->play();
+#else
+    // Properly fail so the global MediaPlayer tries to fallback to the next MediaPlayerPrivate.
+    m_networkState = MediaPlayer::FormatError;
+    m_player->networkStateChanged();
+    notImplemented();
+#endif
 }
 #endif
 
@@ -1146,7 +1155,7 @@ void MediaPlayerPrivateGStreamer::source
     if (WEBKIT_IS_WEB_SRC(m_source.get())) {
         webKitWebSrcSetMediaPlayer(WEBKIT_WEB_SRC_CAST(m_source.get()), m_player);
         g_signal_connect(GST_ELEMENT_PARENT(m_source.get()), "element-added", G_CALLBACK(uriDecodeBinElementAddedCallback), this);
-#if ENABLE(MEDIA_STREAM)
+#if ENABLE(MEDIA_STREAM) && GST_CHECK_VERSION(1, 10, 0)
     } else if (WEBKIT_IS_MEDIA_STREAM_SRC(sourceElement)) {
         auto stream = m_streamPrivate.get();
         ASSERT(stream);
@@ -1653,6 +1662,7 @@ void MediaPlayerPrivateGStreamer::enable
     Vector<String> selectedStreams;
     String selectedStreamId;
 
+#if GST_CHECK_VERSION(1, 10, 0)
     GstStream* stream = nullptr;
 
     if (!m_isLegacyPlaybin) {
@@ -1664,6 +1674,7 @@ void MediaPlayerPrivateGStreamer::enable
         selectedStreamId = String::fromUTF8(gst_stream_get_stream_id(stream));
         selectedStreams.append(selectedStreamId);
     }
+#endif // GST_CHECK_VERSION(1, 10, 0)
 
     switch (trackType) {
     case TrackPrivateBaseGStreamer::TrackType::Audio:
@@ -1714,6 +1725,7 @@ void MediaPlayerPrivateGStreamer::enable
     GST_INFO_OBJECT(pipeline(), "Enabling %s track with index: %u", trackTypeAsString, index);
     if (m_isLegacyPlaybin)
         g_object_set(m_pipeline.get(), propertyName, index, nullptr);
+#if GST_CHECK_VERSION(1, 10, 0)
     else {
         GList* selectedStreamsList = nullptr;
 
@@ -1724,8 +1736,10 @@ void MediaPlayerPrivateGStreamer::enable
         gst_element_send_event(m_pipeline.get(), gst_event_new_select_streams(selectedStreamsList));
         g_list_free_full(selectedStreamsList, reinterpret_cast<GDestroyNotify>(g_free));
     }
+#endif
 }
 
+#if GST_CHECK_VERSION(1, 10, 0)
 void MediaPlayerPrivateGStreamer::updateTracks()
 {
     ASSERT(!m_isLegacyPlaybin);
@@ -1775,6 +1789,7 @@ void MediaPlayerPrivateGStreamer::clearT
     CLEAR_TRACKS(m_textTracks, m_player->removeTextTrack);
 #endif // ENABLE(VIDEO_TRACK)
 }
+#endif // GST_CHECK_VERSION(1, 10, 0)
 
 void MediaPlayerPrivateGStreamer::videoChangedCallback(MediaPlayerPrivateGStreamer* player)
 {
@@ -1802,6 +1817,7 @@ void MediaPlayerPrivateGStreamer::setPip
 
 bool MediaPlayerPrivateGStreamer::handleSyncMessage(GstMessage* message)
 {
+#if GST_CHECK_VERSION(1, 10, 0)
     if (GST_MESSAGE_TYPE(message) == GST_MESSAGE_STREAM_COLLECTION && !m_isLegacyPlaybin) {
         GRefPtr<GstStreamCollection> collection;
         gst_message_parse_stream_collection(message, &collection.outPtr());
@@ -1813,6 +1829,7 @@ bool MediaPlayerPrivateGStreamer::handle
             });
         }
     }
+#endif
 
     if (GST_MESSAGE_TYPE(message) != GST_MESSAGE_NEED_CONTEXT)
         return false;
@@ -2300,6 +2317,7 @@ void MediaPlayerPrivateGStreamer::handle
         gst_tag_list_unref(tags);
         break;
     }
+#if GST_CHECK_VERSION(1, 10, 0)
     case GST_MESSAGE_STREAMS_SELECTED: {
         GRefPtr<GstStreamCollection> collection;
         gst_message_parse_streams_selected(message, &collection.outPtr());
@@ -2342,6 +2360,7 @@ void MediaPlayerPrivateGStreamer::handle
         }
         break;
     }
+#endif
     default:
         GST_DEBUG_OBJECT(pipeline(), "Unhandled GStreamer message type: %s", GST_MESSAGE_TYPE_NAME(message));
         break;
@@ -2930,7 +2949,7 @@ MediaPlayer::SupportsType MediaPlayerPri
         return result;
 #endif
 
-#if !ENABLE(MEDIA_STREAM)
+#if !ENABLE(MEDIA_STREAM) || !GST_CHECK_VERSION(1, 10, 0)
     if (parameters.isMediaStream)
         return result;
 #endif
@@ -2987,8 +3006,10 @@ void MediaPlayerPrivateGStreamer::create
     // MSE doesn't support playbin3. Mediastream requires playbin3. Regular
     // playback can use playbin3 on-demand with the WEBKIT_GST_USE_PLAYBIN3
     // environment variable.
+#if GST_CHECK_VERSION(1, 10, 0)
     if ((!isMediaSource() && g_getenv("WEBKIT_GST_USE_PLAYBIN3")) || url.protocolIs("mediastream"))
         playbinName = "playbin3";
+#endif
 
     if (m_pipeline) {
         if (!g_strcmp0(GST_OBJECT_NAME(gst_element_get_factory(m_pipeline.get())), playbinName)) {
diff -urp webkitgtk-2.28.0.gtk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h webkitgtk-2.28.0/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h
--- webkitgtk-2.28.0.gtk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h	2020-02-04 04:24:08.000000000 -0600
+++ webkitgtk-2.28.0/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h	2020-03-23 11:39:58.346390744 -0500
@@ -235,7 +235,9 @@ protected:
         TextChanged = 1 << 5,
 #endif
         SizeChanged = 1 << 6,
+#if GST_CHECK_VERSION(1, 10, 0)
         StreamCollectionChanged = 1 << 7
+#endif
     };
 
     static bool isAvailable();
@@ -443,8 +445,10 @@ private:
     void setPlaybinURL(const URL& urlString);
     void loadFull(const String& url, const String& pipelineName);
 
+#if GST_CHECK_VERSION(1, 10, 0)
     void updateTracks();
     void clearTracks();
+#endif
 
 #if ENABLE(ENCRYPTED_MEDIA)
     bool isCDMAttached() const { return m_cdmInstance; }
@@ -489,7 +493,9 @@ private:
     bool m_shouldPreservePitch { false };
     mutable Optional<Seconds> m_lastQueryTime;
     bool m_isLegacyPlaybin;
+#if GST_CHECK_VERSION(1, 10, 0)
     GRefPtr<GstStreamCollection> m_streamCollection;
+#endif
 #if ENABLE(MEDIA_STREAM)
     RefPtr<MediaStreamPrivate> m_streamPrivate;
 #endif
diff -urp webkitgtk-2.28.0.gtk/Source/WebCore/platform/graphics/gstreamer/TrackPrivateBaseGStreamer.cpp webkitgtk-2.28.0/Source/WebCore/platform/graphics/gstreamer/TrackPrivateBaseGStreamer.cpp
--- webkitgtk-2.28.0.gtk/Source/WebCore/platform/graphics/gstreamer/TrackPrivateBaseGStreamer.cpp	2020-02-04 04:24:08.000000000 -0600
+++ webkitgtk-2.28.0/Source/WebCore/platform/graphics/gstreamer/TrackPrivateBaseGStreamer.cpp	2020-03-19 16:02:33.904465011 -0500
@@ -58,6 +58,7 @@ TrackPrivateBaseGStreamer::TrackPrivateB
     tagsChanged();
 }
 
+#if GST_CHECK_VERSION(1, 10, 0)
 TrackPrivateBaseGStreamer::TrackPrivateBaseGStreamer(TrackPrivateBase* owner, gint index, GRefPtr<GstStream> stream)
     : m_notifier(MainThreadNotifier<MainThreadNotification>::create())
     , m_index(index)
@@ -69,6 +70,7 @@ TrackPrivateBaseGStreamer::TrackPrivateB
     // We can't call notifyTrackOfTagsChanged() directly, because we need tagsChanged() to setup m_tags.
     tagsChanged();
 }
+#endif
 
 TrackPrivateBaseGStreamer::~TrackPrivateBaseGStreamer()
 {
@@ -80,8 +82,10 @@ void TrackPrivateBaseGStreamer::disconne
 {
     m_tags.clear();
 
+#if GST_CHECK_VERSION(1, 10, 0)
     if (m_stream)
         m_stream.clear();
+#endif
 
     m_notifier->cancelPendingNotifications();
 
@@ -111,8 +115,10 @@ void TrackPrivateBaseGStreamer::tagsChan
         else
             tags = adoptGRef(gst_tag_list_new_empty());
     }
+#if GST_CHECK_VERSION(1, 10, 0)
     else if (m_stream)
         tags = adoptGRef(gst_stream_get_tags(m_stream.get()));
+#endif
     else
         tags = adoptGRef(gst_tag_list_new_empty());
 
diff -urp webkitgtk-2.28.0.gtk/Source/WebCore/platform/graphics/gstreamer/TrackPrivateBaseGStreamer.h webkitgtk-2.28.0/Source/WebCore/platform/graphics/gstreamer/TrackPrivateBaseGStreamer.h
--- webkitgtk-2.28.0.gtk/Source/WebCore/platform/graphics/gstreamer/TrackPrivateBaseGStreamer.h	2020-02-04 04:24:08.000000000 -0600
+++ webkitgtk-2.28.0/Source/WebCore/platform/graphics/gstreamer/TrackPrivateBaseGStreamer.h	2020-03-19 16:02:33.904465011 -0500
@@ -56,15 +56,18 @@ public:
 
     void setIndex(int index) { m_index =  index; }
 
+#if GST_CHECK_VERSION(1, 10, 0)
     GstStream* stream()
     {
         return m_stream.get();
     }
+#endif
 
 protected:
     TrackPrivateBaseGStreamer(TrackPrivateBase* owner, gint index, GRefPtr<GstPad>);
+#if GST_CHECK_VERSION(1, 10, 0)
     TrackPrivateBaseGStreamer(TrackPrivateBase* owner, gint index, GRefPtr<GstStream>);
-
+#endif
     void notifyTrackOfActiveChanged();
     void notifyTrackOfTagsChanged();
 
@@ -80,7 +83,9 @@ protected:
     AtomString m_label;
     AtomString m_language;
     GRefPtr<GstPad> m_pad;
+#if GST_CHECK_VERSION(1, 10, 0)
     GRefPtr<GstStream> m_stream;
+#endif
 
 private:
     bool getLanguageCode(GstTagList* tags, AtomString& value);
diff -urp webkitgtk-2.28.0.gtk/Source/WebCore/platform/graphics/gstreamer/VideoTrackPrivateGStreamer.cpp webkitgtk-2.28.0/Source/WebCore/platform/graphics/gstreamer/VideoTrackPrivateGStreamer.cpp
--- webkitgtk-2.28.0.gtk/Source/WebCore/platform/graphics/gstreamer/VideoTrackPrivateGStreamer.cpp	2020-02-04 04:24:08.000000000 -0600
+++ webkitgtk-2.28.0/Source/WebCore/platform/graphics/gstreamer/VideoTrackPrivateGStreamer.cpp	2020-03-19 16:02:33.904465011 -0500
@@ -43,6 +43,7 @@ VideoTrackPrivateGStreamer::VideoTrackPr
     notifyTrackOfActiveChanged();
 }
 
+#if GST_CHECK_VERSION(1, 10, 0)
 VideoTrackPrivateGStreamer::VideoTrackPrivateGStreamer(WeakPtr<MediaPlayerPrivateGStreamer> player, gint index, GRefPtr<GstStream> stream)
     : TrackPrivateBaseGStreamer(this, index, stream)
     , m_player(player)
@@ -68,6 +69,7 @@ VideoTrackPrivate::Kind VideoTrackPrivat
 
     return VideoTrackPrivate::kind();
 }
+#endif
 
 void VideoTrackPrivateGStreamer::disconnect()
 {
diff -urp webkitgtk-2.28.0.gtk/Source/WebCore/platform/graphics/gstreamer/VideoTrackPrivateGStreamer.h webkitgtk-2.28.0/Source/WebCore/platform/graphics/gstreamer/VideoTrackPrivateGStreamer.h
--- webkitgtk-2.28.0.gtk/Source/WebCore/platform/graphics/gstreamer/VideoTrackPrivateGStreamer.h	2020-02-04 04:24:08.000000000 -0600
+++ webkitgtk-2.28.0/Source/WebCore/platform/graphics/gstreamer/VideoTrackPrivateGStreamer.h	2020-03-19 16:02:33.904465011 -0500
@@ -43,13 +43,13 @@ public:
     {
         return adoptRef(*new VideoTrackPrivateGStreamer(player, index, pad));
     }
-
+#if GST_CHECK_VERSION(1, 10, 0)
     static Ref<VideoTrackPrivateGStreamer> create(WeakPtr<MediaPlayerPrivateGStreamer> player, gint index, GRefPtr<GstStream> stream)
     {
         return adoptRef(*new VideoTrackPrivateGStreamer(player, index, stream));
     }
-
     Kind kind() const final;
+#endif
 
     void disconnect() override;
 
@@ -65,8 +65,9 @@ public:
 
 private:
     VideoTrackPrivateGStreamer(WeakPtr<MediaPlayerPrivateGStreamer>, gint index, GRefPtr<GstPad>);
+#if GST_CHECK_VERSION(1, 10, 0)
     VideoTrackPrivateGStreamer(WeakPtr<MediaPlayerPrivateGStreamer>, gint index, GRefPtr<GstStream>);
-
+#endif
     AtomString m_id;
     WeakPtr<MediaPlayerPrivateGStreamer> m_player;
 };
diff -urp webkitgtk-2.28.0.gtk/Source/WebCore/platform/mediastream/gstreamer/GStreamerCapturer.cpp webkitgtk-2.28.0/Source/WebCore/platform/mediastream/gstreamer/GStreamerCapturer.cpp
--- webkitgtk-2.28.0.gtk/Source/WebCore/platform/mediastream/gstreamer/GStreamerCapturer.cpp	2020-02-04 04:24:08.000000000 -0600
+++ webkitgtk-2.28.0/Source/WebCore/platform/mediastream/gstreamer/GStreamerCapturer.cpp	2020-03-19 16:02:33.908465032 -0500
@@ -29,6 +29,8 @@
 #include <mutex>
 #include <webrtc/api/media_stream_interface.h>
 
+#if GST_CHECK_VERSION(1, 10, 0)
+
 GST_DEBUG_CATEGORY(webkit_capturer_debug);
 #define GST_CAT_DEFAULT webkit_capturer_debug
 
@@ -184,4 +186,5 @@ void GStreamerCapturer::stop()
 
 } // namespace WebCore
 
+#endif // GST_CHECK_VERSION(1, 10, 0)
 #endif // ENABLE(VIDEO) && ENABLE(MEDIA_STREAM) && USE(LIBWEBRTC) && USE(GSTREAMER)
diff -urp webkitgtk-2.28.0.gtk/Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp webkitgtk-2.28.0/Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp
--- webkitgtk-2.28.0.gtk/Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp	2020-02-04 04:24:08.000000000 -0600
+++ webkitgtk-2.28.0/Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp	2020-03-19 16:02:33.908465032 -0500
@@ -34,6 +34,8 @@
 #include <gst/app/gstappsrc.h>
 #include <gst/base/gstflowcombiner.h>
 
+#if GST_CHECK_VERSION(1, 10, 0)
+
 namespace WebCore {
 
 static void webkitMediaStreamSrcPushVideoSample(WebKitMediaStreamSrc* self, GstSample* gstsample);
@@ -678,5 +680,5 @@ GstElement* webkitMediaStreamSrcNew(void
 }
 
 } // WebCore
-
+#endif // GST_CHECK_VERSION(1, 10, 0)
 #endif // ENABLE(VIDEO) && ENABLE(MEDIA_STREAM) && USE(LIBWEBRTC)
