Fix the issue that audio is not played after resuming.
[framework/web/webkit-efl.git] / Source / WebCore / platform / graphics / gstreamer / MediaPlayerPrivateGStreamer.cpp
index 10e346b..07f6508 100755 (executable)
@@ -470,7 +470,10 @@ void MediaPlayerPrivateGStreamer::load(const String& url)
     // Set m_videoSize as frame size which comes from webkitCameraSource.
     // This size is fixed.
     if (isLocalMediaStream())
-        m_videoSize = IntSize(480, 640);
+        if (gst_element_factory_find("camerasrc"))
+            m_videoSize = IntSize(480, 640);
+        else
+            m_videoSize = IntSize(640, 480);
 #endif
 
     if (m_preload == MediaPlayer::None) {
@@ -1094,8 +1097,9 @@ gboolean MediaPlayerPrivateGStreamer::handleMessage(GstMessage* message)
             GST_DEBUG_BIN_TO_DOT_FILE_WITH_TS(GST_BIN(m_playBin.get()), GST_DEBUG_GRAPH_SHOW_ALL, dotFileName.data());
 
 #if ENABLE(TIZEN_GSTREAMER_VIDEO)
-            if (m_suspendTime > 0 && newState == GST_STATE_PAUSED) {
-                if (!isLocalMediaStream())
+            HTMLMediaElement* element = static_cast<HTMLMediaElement*>(player()->mediaPlayerClient());
+            if (element->suspended() && newState == GST_STATE_PAUSED) {
+                if (m_suspendTime > 0 && !(isLocalMediaStream() || m_isEndReached))
                     seek(m_suspendTime);
                 m_suspendTime = 0;
                 m_player->mediaPlayerClient()->setSuspended(false);
@@ -1738,7 +1742,7 @@ void MediaPlayerPrivateGStreamer::didEnd()
     // position is not always reported as 0 for instance.
     float now = currentTime();
 #if ENABLE(TIZEN_GSTREAMER_VIDEO)
-    if (now > 0 && now >= duration() && m_mediaDuration != now) {
+    if (now > 0 && now != duration()) {
 #else
     if (now > 0 && now <= duration() && m_mediaDuration != now) {
 #endif