Title: [136382] trunk/Source/WebCore
- Revision
- 136382
- Author
- [email protected]
- Date
- 2012-12-03 04:37:44 -0800 (Mon, 03 Dec 2012)
Log Message
[GStreamer] initial volume events on media elements should happen earlier
https://bugs.webkit.org/show_bug.cgi?id=96912
Patch by Jussi Kukkonen <[email protected]> on 2012-12-03
Reviewed by Philippe Normand.
Update mediaelement volume and mute properties to whatever values
playbin has as soon as possible (when the playbin reaches PAUSED state).
This will improve user experience as the volume visuals won't suddenly
change when user clicks play.
No new tests: media/event-attributes.html already tests media events.
Unfortunately this test is flaky on EFL and GTK (more specifically
it is flaky on pulseaudio-using gstreamer platforms: http://webkit.org/b/83704).
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::load):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
(MediaPlayerPrivateGStreamer):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (136381 => 136382)
--- trunk/Source/WebCore/ChangeLog 2012-12-03 12:37:14 UTC (rev 136381)
+++ trunk/Source/WebCore/ChangeLog 2012-12-03 12:37:44 UTC (rev 136382)
@@ -1,3 +1,24 @@
+2012-12-03 Jussi Kukkonen <[email protected]>
+
+ [GStreamer] initial volume events on media elements should happen earlier
+ https://bugs.webkit.org/show_bug.cgi?id=96912
+
+ Reviewed by Philippe Normand.
+
+ Update mediaelement volume and mute properties to whatever values
+ playbin has as soon as possible (when the playbin reaches PAUSED state).
+ This will improve user experience as the volume visuals won't suddenly
+ change when user clicks play.
+
+ No new tests: media/event-attributes.html already tests media events.
+ Unfortunately this test is flaky on EFL and GTK (more specifically
+ it is flaky on pulseaudio-using gstreamer platforms: http://webkit.org/b/83704).
+
+ * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
+ (WebCore::MediaPlayerPrivateGStreamer::load):
+ * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
+ (MediaPlayerPrivateGStreamer):
+
2012-12-03 Alexis Menard <[email protected]>
Unreviewed build fix after r136378.
Modified: trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp (136381 => 136382)
--- trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp 2012-12-03 12:37:14 UTC (rev 136381)
+++ trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp 2012-12-03 12:37:44 UTC (rev 136382)
@@ -316,6 +316,7 @@
m_player->networkStateChanged();
m_readyState = MediaPlayer::HaveNothing;
m_player->readyStateChanged();
+ m_volumeAndMuteInitialized = false;
// GStreamer needs to have the pipeline set to a paused state to
// start providing anything useful.
@@ -1186,6 +1187,13 @@
if (state == GST_STATE_PAUSED) {
if (!m_webkitAudioSink)
updateAudioSink();
+
+ if (!m_volumeAndMuteInitialized) {
+ notifyPlayerOfVolumeChange();
+ notifyPlayerOfMute();
+ m_volumeAndMuteInitialized = true;
+ }
+
if (m_buffering && m_bufferingPercentage == 100) {
m_buffering = false;
m_bufferingPercentage = 0;
Modified: trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h (136381 => 136382)
--- trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h 2012-12-03 12:37:14 UTC (rev 136381)
+++ trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h 2012-12-03 12:37:44 UTC (rev 136382)
@@ -193,6 +193,7 @@
#endif
guint m_volumeTimerHandler;
guint m_muteTimerHandler;
+ bool m_volumeAndMuteInitialized;
bool m_hasVideo;
bool m_hasAudio;
guint m_audioTimerHandler;
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes