summaryrefslogtreecommitdiffstats
path: root/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h
diff options
context:
space:
mode:
Diffstat (limited to 'WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h')
-rw-r--r--WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h31
1 files changed, 24 insertions, 7 deletions
diff --git a/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h b/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h
index 800ca6d..11eb81b 100644
--- a/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h
+++ b/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h
@@ -43,11 +43,19 @@ class GraphicsContext;
class IntSize;
class IntRect;
class GStreamerGWorld;
+class MediaPlayerPrivateGStreamer;
gboolean mediaPlayerPrivateMessageCallback(GstBus* bus, GstMessage* message, gpointer data);
void mediaPlayerPrivateVolumeChangedCallback(GObject* element, GParamSpec* pspec, gpointer data);
void mediaPlayerPrivateMuteChangedCallback(GObject* element, GParamSpec* pspec, gpointer data);
void mediaPlayerPrivateSourceChangedCallback(GObject* element, GParamSpec* pspec, gpointer data);
+void mediaPlayerPrivateVideoTagsChangedCallback(GObject* element, gint, MediaPlayerPrivateGStreamer*);
+void mediaPlayerPrivateAudioTagsChangedCallback(GObject* element, gint, MediaPlayerPrivateGStreamer*);
+gboolean mediaPlayerPrivateAudioTagsChangeTimeoutCallback(MediaPlayerPrivateGStreamer* player);
+gboolean mediaPlayerPrivateVideoTagsChangeTimeoutCallback(MediaPlayerPrivateGStreamer* player);
+
+gboolean mediaPlayerPrivateVolumeChangeTimeoutCallback(MediaPlayerPrivateGStreamer*);
+gboolean mediaPlayerPrivateMuteChangeTimeoutCallback(MediaPlayerPrivateGStreamer*);
class MediaPlayerPrivateGStreamer : public MediaPlayerPrivateInterface {
friend gboolean mediaPlayerPrivateMessageCallback(GstBus* bus, GstMessage* message, gpointer data);
@@ -58,8 +66,8 @@ class MediaPlayerPrivateGStreamer : public MediaPlayerPrivateInterface {
static void registerMediaEngine(MediaEngineRegistrar);
IntSize naturalSize() const;
- bool hasVideo() const;
- bool hasAudio() const;
+ bool hasVideo() const { return m_hasVideo; }
+ bool hasAudio() const { return m_hasAudio; }
void load(const String &url);
void commitLoad();
@@ -81,13 +89,14 @@ class MediaPlayerPrivateGStreamer : public MediaPlayerPrivateInterface {
void setVolume(float);
void volumeChanged();
- void volumeChangedTimerFired(Timer<MediaPlayerPrivateGStreamer>*);
+ void notifyPlayerOfVolumeChange();
bool supportsMuting() const;
void setMuted(bool);
void muteChanged();
- void muteChangedTimerFired(Timer<MediaPlayerPrivateGStreamer>*);
+ void notifyPlayerOfMute();
+ bool loadDelayed() const { return m_delayingLoad; }
void setPreload(MediaPlayer::Preload);
void fillTimerFired(Timer<MediaPlayerPrivateGStreamer>*);
@@ -121,6 +130,11 @@ class MediaPlayerPrivateGStreamer : public MediaPlayerPrivateInterface {
GstElement* pipeline() const { return m_playBin; }
bool pipelineReset() const { return m_resetPipeline; }
+ void videoTagsChanged(gint);
+ void audioTagsChanged(gint);
+ void notifyPlayerOfVideoTags();
+ void notifyPlayerOfAudioTags();
+
private:
MediaPlayerPrivateGStreamer(MediaPlayer*);
~MediaPlayerPrivateGStreamer();
@@ -133,10 +147,7 @@ class MediaPlayerPrivateGStreamer : public MediaPlayerPrivateInterface {
void cacheDuration();
void updateStates();
- void cancelSeek();
- void endPointTimerFired(Timer<MediaPlayerPrivateGStreamer>*);
float maxTimeLoaded() const;
- void startEndPointTimerIfNeeded();
void createGSTPlayBin();
bool changePipelineState(GstState state);
@@ -176,6 +187,12 @@ class MediaPlayerPrivateGStreamer : public MediaPlayerPrivateInterface {
bool m_delayingLoad;
bool m_mediaDurationKnown;
RefPtr<GStreamerGWorld> m_gstGWorld;
+ guint m_volumeTimerHandler;
+ guint m_muteTimerHandler;
+ bool m_hasVideo;
+ bool m_hasAudio;
+ guint m_audioTagsTimerHandler;
+ guint m_videoTagsTimerHandler;
};
}