Title: [206204] trunk/Source/WebCore
Revision
206204
Author
ph...@webkit.org
Date
2016-09-21 02:44:06 -0700 (Wed, 21 Sep 2016)

Log Message

[OpenWebRTC] Miscellaneous fixes
https://bugs.webkit.org/show_bug.cgi?id=162332

Reviewed by Alejandro G. Castro.

* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerOwr.cpp:
(WebCore::MediaPlayerPrivateGStreamerOwr::currentTime): Improved logging.
(WebCore::MediaPlayerPrivateGStreamerOwr::load): Ditto.
(WebCore::MediaPlayerPrivateGStreamerOwr::loadingFailed): Ditto.
(WebCore::MediaPlayerPrivateGStreamerOwr::createGSTAudioSinkBin):
Pre-roll the autoaudiosink, fetch the underlying platform audio
sink and pass it to the OpenWebRTC renderer.
(WebCore::MediaPlayerPrivateGStreamerOwr::maybeHandleChangeMutedState): Improved logging.
(WebCore::MediaPlayerPrivateGStreamerOwr::setSize): Don't configure invalid video renderer.
* platform/mediastream/openwebrtc/RealtimeMediaSourceCenterOwr.cpp:
(WebCore::RealtimeMediaSourceCenterOwr::createMediaStream): Fix copy-paste error.

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (206203 => 206204)


--- trunk/Source/WebCore/ChangeLog	2016-09-21 08:43:23 UTC (rev 206203)
+++ trunk/Source/WebCore/ChangeLog	2016-09-21 09:44:06 UTC (rev 206204)
@@ -1,3 +1,22 @@
+2016-09-21  Philippe Normand  <pnorm...@igalia.com>
+
+        [OpenWebRTC] Miscellaneous fixes
+        https://bugs.webkit.org/show_bug.cgi?id=162332
+
+        Reviewed by Alejandro G. Castro.
+
+        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerOwr.cpp:
+        (WebCore::MediaPlayerPrivateGStreamerOwr::currentTime): Improved logging.
+        (WebCore::MediaPlayerPrivateGStreamerOwr::load): Ditto.
+        (WebCore::MediaPlayerPrivateGStreamerOwr::loadingFailed): Ditto.
+        (WebCore::MediaPlayerPrivateGStreamerOwr::createGSTAudioSinkBin):
+        Pre-roll the autoaudiosink, fetch the underlying platform audio
+        sink and pass it to the OpenWebRTC renderer.
+        (WebCore::MediaPlayerPrivateGStreamerOwr::maybeHandleChangeMutedState): Improved logging.
+        (WebCore::MediaPlayerPrivateGStreamerOwr::setSize): Don't configure invalid video renderer.
+        * platform/mediastream/openwebrtc/RealtimeMediaSourceCenterOwr.cpp:
+        (WebCore::RealtimeMediaSourceCenterOwr::createMediaStream): Fix copy-paste error.
+
 2016-09-21  Youenn Fablet  <you...@apple.com>
 
         Refactor CachedResourceLoader::canRequest

Modified: trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerOwr.cpp (206203 => 206204)


--- trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerOwr.cpp	2016-09-21 08:43:23 UTC (rev 206203)
+++ trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerOwr.cpp	2016-09-21 09:44:06 UTC (rev 206204)
@@ -115,7 +115,7 @@
     if (static_cast<GstClockTime>(position) != GST_CLOCK_TIME_NONE)
         result = static_cast<double>(position) / GST_SECOND;
 
-    GST_DEBUG("Position %" GST_TIME_FORMAT, GST_TIME_ARGS(position));
+    GST_LOG("Position %" GST_TIME_FORMAT, GST_TIME_ARGS(position));
     gst_query_unref(query);
 
     return result;
@@ -148,7 +148,7 @@
     if (streamPrivate.hasAudio() && !m_audioSink)
         createGSTAudioSinkBin();
 
-    GST_DEBUG("Loading MediaStreamPrivate %p", &streamPrivate);
+    GST_DEBUG("Loading MediaStreamPrivate %p video: %s, audio: %s", &streamPrivate, streamPrivate.hasVideo() ? "yes":"no", streamPrivate.hasAudio() ? "yes":"no");
 
     m_streamPrivate = &streamPrivate;
     if (!m_streamPrivate->active()) {
@@ -188,6 +188,7 @@
 void MediaPlayerPrivateGStreamerOwr::loadingFailed(MediaPlayer::NetworkState error)
 {
     if (m_networkState != error) {
+        GST_WARNING("Loading failed, error: %d", error);
         m_networkState = error;
         m_player->networkStateChanged();
     }
@@ -259,11 +260,19 @@
     GST_DEBUG("Creating audio sink");
     // FIXME: volume/mute support: https://webkit.org/b/153828.
 
-    GRefPtr<GstElement> sink = gst_element_factory_make("autoaudiosink", 0);
+    // Pre-roll an autoaudiosink so that the platform audio sink is created and
+    // can be retrieved from the autoaudiosink bin.
+    GRefPtr<GstElement> sink = gst_element_factory_make("autoaudiosink", nullptr);
     GstChildProxy* childProxy = GST_CHILD_PROXY(sink.get());
-    m_audioSink = adoptGRef(GST_ELEMENT(gst_child_proxy_get_child_by_index(childProxy, 0)));
+    gst_element_set_state(sink.get(), GST_STATE_READY);
+    GRefPtr<GstElement> platformSink = adoptGRef(GST_ELEMENT(gst_child_proxy_get_child_by_index(childProxy, 0)));
+    GstElementFactory* factory = gst_element_get_factory(platformSink.get());
+
+    // Dispose now un-needed autoaudiosink.
     gst_element_set_state(sink.get(), GST_STATE_NULL);
 
+    // Create a fresh new audio sink compatible with the platform.
+    m_audioSink = gst_element_factory_create(factory, nullptr);
     m_audioRenderer = adoptGRef(owr_gst_audio_renderer_new(m_audioSink.get()));
 }
 
@@ -294,6 +303,7 @@
     auto realTimeMediaSource = reinterpret_cast<RealtimeMediaSourceOwr*>(&track.source());
     auto mediaSource = OWR_MEDIA_SOURCE(realTimeMediaSource->mediaSource());
 
+    GST_DEBUG("%s track now %s", track.type() == RealtimeMediaSource::Audio ? "audio":"video", realTimeMediaSource->muted() ? "muted":"un-muted");
     switch (track.type()) {
     case RealtimeMediaSource::Audio:
         if (!realTimeMediaSource->muted()) {
@@ -356,7 +366,8 @@
         return;
 
     MediaPlayerPrivateGStreamerBase::setSize(size);
-    g_object_set(m_videoRenderer.get(), "width", size.width(), "height", size.height(), nullptr);
+    if (m_videoRenderer)
+        g_object_set(m_videoRenderer.get(), "width", size.width(), "height", size.height(), nullptr);
 }
 
 } // namespace WebCore

Modified: trunk/Source/WebCore/platform/mediastream/openwebrtc/RealtimeMediaSourceCenterOwr.cpp (206203 => 206204)


--- trunk/Source/WebCore/platform/mediastream/openwebrtc/RealtimeMediaSourceCenterOwr.cpp	2016-09-21 08:43:23 UTC (rev 206203)
+++ trunk/Source/WebCore/platform/mediastream/openwebrtc/RealtimeMediaSourceCenterOwr.cpp	2016-09-21 09:44:06 UTC (rev 206204)
@@ -146,7 +146,7 @@
         if (sourceIterator != m_sourceMap.end()) {
             RefPtr<RealtimeMediaSource> source = sourceIterator->value;
             if (source->type() == RealtimeMediaSource::Video)
-                audioSources.append(source.release());
+                videoSources.append(source.release());
         }
     }
 
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to