Title: [209125] trunk/Source/WebCore
- Revision
- 209125
- Author
- ph...@webkit.org
- Date
- 2016-11-30 00:36:45 -0800 (Wed, 30 Nov 2016)
Log Message
[WebRTC][OpenWebRTC] Temporary device selection support
https://bugs.webkit.org/show_bug.cgi?id=165141
Reviewed by Alejandro G. Castro.
Make sure the player handles only one audio and video track at
most for now. The device choice can be influenced with the
WEBKIT_VIDEO_DEVICE and WEBKIT_AUDIO_DEVICE environment variables.
Each variable optionally holds the name of the device to use.
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerOwr.cpp:
(WebCore::MediaPlayerPrivateGStreamerOwr::play):
(WebCore::MediaPlayerPrivateGStreamerOwr::load):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (209124 => 209125)
--- trunk/Source/WebCore/ChangeLog 2016-11-30 08:30:51 UTC (rev 209124)
+++ trunk/Source/WebCore/ChangeLog 2016-11-30 08:36:45 UTC (rev 209125)
@@ -1,3 +1,19 @@
+2016-11-29 Philippe Normand <pnorm...@igalia.com>
+
+ [WebRTC][OpenWebRTC] Temporary device selection support
+ https://bugs.webkit.org/show_bug.cgi?id=165141
+
+ Reviewed by Alejandro G. Castro.
+
+ Make sure the player handles only one audio and video track at
+ most for now. The device choice can be influenced with the
+ WEBKIT_VIDEO_DEVICE and WEBKIT_AUDIO_DEVICE environment variables.
+ Each variable optionally holds the name of the device to use.
+
+ * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerOwr.cpp:
+ (WebCore::MediaPlayerPrivateGStreamerOwr::play):
+ (WebCore::MediaPlayerPrivateGStreamerOwr::load):
+
2016-11-29 Claudio Saavedra <csaave...@igalia.com>
Build fix with !HAVE(ACCESSIBILITY)
Modified: trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerOwr.cpp (209124 => 209125)
--- trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerOwr.cpp 2016-11-30 08:30:51 UTC (rev 209124)
+++ trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerOwr.cpp 2016-11-30 08:36:45 UTC (rev 209125)
@@ -73,14 +73,11 @@
GST_DEBUG("Connecting to live stream, descriptor: %p", m_streamPrivate.get());
- for (auto track : m_streamPrivate->tracks()) {
- if (!track->enabled()) {
- GST_DEBUG("Track %s disabled", track->label().ascii().data());
- continue;
- }
+ if (m_videoTrack)
+ maybeHandleChangeMutedState(*m_videoTrack.get());
- maybeHandleChangeMutedState(*track);
- }
+ if (m_audioTrack)
+ maybeHandleChangeMutedState(*m_audioTrack.get());
}
void MediaPlayerPrivateGStreamerOwr::pause()
@@ -192,18 +189,37 @@
continue;
}
- track->addObserver(*this);
+ GST_DEBUG("Processing track %s", track->label().ascii().data());
+ bool observeTrack = false;
+
+ // TODO: Support for multiple tracks of the same type.
+
switch (track->type()) {
case RealtimeMediaSource::Audio:
- m_audioTrack = track;
+ if (!m_audioTrack) {
+ String preSelectedDevice = getenv("WEBKIT_AUDIO_DEVICE");
+ if (!preSelectedDevice || (preSelectedDevice == track->label())) {
+ m_audioTrack = track;
+ observeTrack = true;
+ }
+ }
break;
case RealtimeMediaSource::Video:
- m_videoTrack = track;
+ if (!m_videoTrack) {
+ String preSelectedDevice = getenv("WEBKIT_VIDEO_DEVICE");
+ if (!preSelectedDevice || (preSelectedDevice == track->label())) {
+ m_videoTrack = track;
+ observeTrack = true;
+ }
+ }
break;
case RealtimeMediaSource::None:
GST_WARNING("Loading a track with None type");
}
+
+ if (observeTrack)
+ track->addObserver(*this);
}
m_readyState = MediaPlayer::HaveEnoughData;
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes