diff options
author | Lorry Tar Creator <lorry-tar-importer@lorry> | 2017-06-27 06:07:23 +0000 |
---|---|---|
committer | Lorry Tar Creator <lorry-tar-importer@lorry> | 2017-06-27 06:07:23 +0000 |
commit | 1bf1084f2b10c3b47fd1a588d85d21ed0eb41d0c (patch) | |
tree | 46dcd36c86e7fbc6e5df36deb463b33e9967a6f7 /Source/WebCore/platform/graphics/gstreamer/TrackPrivateBaseGStreamer.h | |
parent | 32761a6cee1d0dee366b885b7b9c777e67885688 (diff) | |
download | WebKitGtk-tarball-master.tar.gz |
webkitgtk-2.16.5HEADwebkitgtk-2.16.5master
Diffstat (limited to 'Source/WebCore/platform/graphics/gstreamer/TrackPrivateBaseGStreamer.h')
-rw-r--r-- | Source/WebCore/platform/graphics/gstreamer/TrackPrivateBaseGStreamer.h | 34 |
1 files changed, 23 insertions, 11 deletions
diff --git a/Source/WebCore/platform/graphics/gstreamer/TrackPrivateBaseGStreamer.h b/Source/WebCore/platform/graphics/gstreamer/TrackPrivateBaseGStreamer.h index 1e3b8c898..8e3488497 100644 --- a/Source/WebCore/platform/graphics/gstreamer/TrackPrivateBaseGStreamer.h +++ b/Source/WebCore/platform/graphics/gstreamer/TrackPrivateBaseGStreamer.h @@ -29,6 +29,8 @@ #if ENABLE(VIDEO) && USE(GSTREAMER) && ENABLE(VIDEO_TRACK) #include "GRefPtrGStreamer.h" +#include "MainThreadNotifier.h" +#include <wtf/Lock.h> #include <wtf/ThreadingPrimitives.h> #include <wtf/text/WTFString.h> @@ -48,28 +50,38 @@ public: void setIndex(int index) { m_index = index; } - void activeChanged(); - void tagsChanged(); +protected: + TrackPrivateBaseGStreamer(TrackPrivateBase* owner, gint index, GRefPtr<GstPad>); void notifyTrackOfActiveChanged(); void notifyTrackOfTagsChanged(); -protected: - TrackPrivateBaseGStreamer(TrackPrivateBase* owner, gint index, GRefPtr<GstPad>); + enum MainThreadNotification { + ActiveChanged = 1 << 0, + TagsChanged = 1 << 1, + NewSample = 1 << 2, + StreamChanged = 1 << 3 + }; + Ref<MainThreadNotifier<MainThreadNotification>> m_notifier; gint m_index; - String m_label; - String m_language; + AtomicString m_label; + AtomicString m_language; GRefPtr<GstPad> m_pad; private: - bool getTag(GstTagList* tags, const gchar* tagName, String& value); + bool getLanguageCode(GstTagList* tags, AtomicString& value); - TrackPrivateBase* m_owner; - guint m_activeTimerHandler; - guint m_tagTimerHandler; + template<class StringType> + bool getTag(GstTagList* tags, const gchar* tagName, StringType& value); + + static void activeChangedCallback(TrackPrivateBaseGStreamer*); + static void tagsChangedCallback(TrackPrivateBaseGStreamer*); - Mutex m_tagMutex; + void tagsChanged(); + + TrackPrivateBase* m_owner; + Lock m_tagMutex; GRefPtr<GstTagList> m_tags; }; |