HTMLAudioElement is playing with breaking on streammode.
authorKeonHo Kim <keonho07.kim@samsung.com>
Tue, 20 Aug 2013 10:45:17 +0000 (19:45 +0900)
committerKeonHo Kim <keonho07.kim@samsung.com>
Tue, 20 Aug 2013 10:48:50 +0000 (19:48 +0900)
[Title] HTMLAudioElement is playing with breaking on streammode.
[Problem] DBuild Issue
[Cause] Readystate has been set futuredate during buffering in stream mode
[Solution] Need to set readystate to currentdata for buffering

Change-Id: I7ef2c669c9e652f9ca515bb81eb986628c03b772

Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp
Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h

index 4250104..c8b9784 100755 (executable)
@@ -381,6 +381,7 @@ MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer(MediaPlayer* player)
     , m_originalPreloadWasAutoAndWasOverridden(false)
     , m_preservesPitch(false)
 #if ENABLE(TIZEN_GSTREAMER_VIDEO)
+    , m_bufferingMode(GST_BUFFERING_STREAM)
     , m_suspendTime(0)
 #endif
 {
@@ -1134,6 +1135,9 @@ void MediaPlayerPrivateGStreamer::processBufferingStats(GstMessage* message)
 
     GstBufferingMode mode;
     gst_message_parse_buffering_stats(message, &mode, 0, 0, 0);
+#if ENABLE(TIZEN_GSTREAMER_VIDEO)
+    m_bufferingMode = mode;
+#endif
     if (mode != GST_BUFFERING_DOWNLOAD) {
         updateStates();
         return;
@@ -1463,6 +1467,11 @@ void MediaPlayerPrivateGStreamer::updateStates()
                 }
             } else if (!m_buffering && (currentTime() < duration())) {
                 m_paused = true;
+#if ENABLE(TIZEN_GSTREAMER_VIDEO)
+            } else if (m_buffering && m_bufferingMode != GST_BUFFERING_DOWNLOAD) {
+                m_readyState = MediaPlayer::HaveCurrentData;
+                m_networkState = MediaPlayer::Loading;
+#endif
             }
         } else if (state == GST_STATE_PLAYING) {
             m_readyState = MediaPlayer::HaveEnoughData;
index 02d7809..bc781c9 100644 (file)
@@ -263,6 +263,7 @@ class MediaPlayerPrivateGStreamer : public MediaPlayerPrivateInterface
             bool m_preservesPitch;
 
 #if ENABLE(TIZEN_GSTREAMER_VIDEO)
+            GstBufferingMode m_bufferingMode;
             float m_suspendTime;
 #endif
     };