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());
}
}