[SCM] WebKit Debian packaging branch, webkit-1.1, updated. upstream/1.1.21-584-g1e41756
philn at webkit.org
philn at webkit.org
Fri Feb 26 22:25:31 UTC 2010
The following commit has been merged in the webkit-1.1 branch:
commit 80c349781271e2c33690736342fb9b4c294cce96
Author: philn at webkit.org <philn at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Fri Feb 19 08:30:14 2010 +0000
2010-02-17 Philippe Normand <pnormand at igalia.com>
Reviewed by Eric Seidel.
[GTK] RTP/RTSP streams playback support
https://bugs.webkit.org/show_bug.cgi?id=33662
Added live pipelines support in updateStates().
* manual-tests/video-rtsp.html: Added.
* platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivate::seek):
(WebCore::MediaPlayerPrivate::updateStates):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@55005 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index c5714e2..2d1d8bd 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,17 @@
+2010-02-17 Philippe Normand <pnormand at igalia.com>
+
+ Reviewed by Eric Seidel.
+
+ [GTK] RTP/RTSP streams playback support
+ https://bugs.webkit.org/show_bug.cgi?id=33662
+
+ Added live pipelines support in updateStates().
+
+ * manual-tests/video-rtsp.html: Added.
+ * platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:
+ (WebCore::MediaPlayerPrivate::seek):
+ (WebCore::MediaPlayerPrivate::updateStates):
+
2010-02-18 Yaar Schnitman <yaar at chromium.org>
Reviewed by Darin Adler.
diff --git a/WebCore/manual-tests/video-rtsp.html b/WebCore/manual-tests/video-rtsp.html
new file mode 100644
index 0000000..4fff987
--- /dev/null
+++ b/WebCore/manual-tests/video-rtsp.html
@@ -0,0 +1,11 @@
+<html>
+<head>
+<title>RTSP playback test</title>
+</head>
+<body>
+<video with=640 height=352 autoplay controls src="rtsp://a2047.v1411b.c1411.g.vq.akamaistream.net/5/2047/1411/2_h264_650/1a1a1ae454c430950065de4cbb2f94c226950c7ae655b61a48a91475e243acda3dac194879adde0f/wwdc_2006_2_650.mov"></video>
+<p>Test that QuickTime file with RTSP URL loads.<p>
+<script>start()</script>
+<pre id="console"></pre>
+</body>
+</html>
diff --git a/WebCore/platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp b/WebCore/platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp
index cbc64a1..e1c9fd2 100644
--- a/WebCore/platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp
+++ b/WebCore/platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp
@@ -53,7 +53,6 @@
#include <gst/video/video.h>
#include <limits>
#include <math.h>
-#include <webkit/webkitwebview.h>
#include <wtf/gtk/GOwnPtr.h>
// GstPlayFlags flags from playbin2. It is the policy of GStreamer to
@@ -463,9 +462,6 @@ void MediaPlayerPrivate::seek(float time)
if (!m_playBin)
return;
- if (m_isStreaming)
- return;
-
if (m_errorOccured)
return;
@@ -891,7 +887,18 @@ void MediaPlayerPrivate::updateStates()
gst_element_state_get_name(state),
gst_element_state_get_name(pending));
// Change in progress
- return;
+
+ if (!m_isStreaming)
+ return;
+
+ // Resume playback if a seek was performed in a live pipeline.
+ if (m_seeking) {
+ shouldUpdateAfterSeek = true;
+ m_seeking = false;
+ if (m_paused)
+ gst_element_set_state(m_playBin, GST_STATE_PLAYING);
+ }
+ break;
case GST_STATE_CHANGE_FAILURE:
LOG_VERBOSE(Media, "Failure: State: %s, pending: %s",
gst_element_state_get_name(state),
@@ -905,8 +912,25 @@ void MediaPlayerPrivate::updateStates()
if (state == GST_STATE_READY)
m_readyState = MediaPlayer::HaveNothing;
- else if (state == GST_STATE_PAUSED)
- m_readyState = MediaPlayer::HaveCurrentData;
+ else if (state == GST_STATE_PAUSED) {
+ m_readyState = MediaPlayer::HaveEnoughData;
+ m_paused = true;
+ // Live pipelines go in PAUSED without prerolling.
+ m_isStreaming = true;
+ } else if (state == GST_STATE_PLAYING) {
+ m_startedPlaying = true;
+ m_paused = false;
+ }
+
+ if (m_paused && !m_startedPlaying)
+ gst_element_set_state(m_playBin, GST_STATE_PLAYING);
+
+ if (m_seeking) {
+ shouldUpdateAfterSeek = true;
+ m_seeking = false;
+ if (m_paused)
+ gst_element_set_state(m_playBin, GST_STATE_PLAYING);
+ }
m_networkState = MediaPlayer::Loading;
break;
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list