Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(329)

Unified Diff: media/blink/webmediaplayer_impl.cc

Issue 1812543003: Allow muting/unmuting audio through media track API (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@blink-sb-tracks6
Patch Set: rebase Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: media/blink/webmediaplayer_impl.cc
diff --git a/media/blink/webmediaplayer_impl.cc b/media/blink/webmediaplayer_impl.cc
index c6772dbf1410fd4e6c421d10620120a79656a382..e2ccc2533dde9aad91ccee3520ae5e0732708402 100644
--- a/media/blink/webmediaplayer_impl.cc
+++ b/media/blink/webmediaplayer_impl.cc
@@ -7,6 +7,7 @@
#include <algorithm>
#include <cmath>
#include <limits>
+#include <sstream>
#include <string>
#include <utility>
@@ -59,6 +60,7 @@
#include "third_party/WebKit/public/web/WebDocument.h"
#include "third_party/WebKit/public/web/WebFrame.h"
#include "third_party/WebKit/public/web/WebLocalFrame.h"
+#include "third_party/WebKit/public/web/WebRuntimeFeatures.h"
#include "third_party/WebKit/public/web/WebView.h"
using blink::WebCanvas;
@@ -567,6 +569,40 @@ bool WebMediaPlayerImpl::hasAudio() const {
return pipeline_metadata_.has_audio;
}
+void WebMediaPlayerImpl::enabledAudioTracksChanged(
+ const blink::WebVector<blink::WebMediaPlayer::TrackId>& enabledTrackIds) {
+ DCHECK(main_task_runner_->BelongsToCurrentThread());
+ CHECK(demuxer_.get());
+
+ std::vector<const DemuxerStream*> enabledAudioStreams;
+ std::stringstream trackIdsStr;
+ for (const auto& trackId : enabledTrackIds) {
+ const DemuxerStream* s = demuxer_->GetDemuxerStreamByTrackId(trackId);
+ DCHECK(s);
+ enabledAudioStreams.push_back(s);
+ trackIdsStr << trackId << " ";
+ }
+ DVLOG(5) << "WMPI::enabledAudioTracksChanged enabledTrackIds="
wolenetz 2016/03/30 00:31:32 This seems appropriate for a MEDIA_LOG(INFO,...) e
servolk 2016/03/30 01:13:12 Done.
+ << trackIdsStr.str();
+ pipeline_.OnEnabledAudioStreamsChanged(enabledAudioStreams);
+}
+
+void WebMediaPlayerImpl::selectedVideoTrackChanged(
+ blink::WebMediaPlayer::TrackId* selectedTrackId) {
+ DCHECK(main_task_runner_->BelongsToCurrentThread());
+ CHECK(demuxer_.get());
+
+ const DemuxerStream* selectedVideoStream = nullptr;
+ if (selectedTrackId) {
+ DVLOG(5) << "WMPI::selectedVideoTrackChanged selectedTrackId="
wolenetz 2016/03/30 00:31:32 ditto
servolk 2016/03/30 01:13:12 Done.
+ << *selectedTrackId;
+ demuxer_->GetDemuxerStreamByTrackId(*selectedTrackId);
+ } else {
+ DVLOG(5) << "WMPI::selectedVideoTrackChanged selectedTrackId=<none>";
wolenetz 2016/03/30 00:31:32 ditto
servolk 2016/03/30 01:13:13 Done.
+ }
+ pipeline_.OnSelectedVideoStreamChanged(selectedVideoStream);
+}
+
blink::WebSize WebMediaPlayerImpl::naturalSize() const {
DCHECK(main_task_runner_->BelongsToCurrentThread());
@@ -823,6 +859,9 @@ void WebMediaPlayerImpl::OnFFmpegMediaTracksUpdated(
DCHECK(demuxer_.get());
DCHECK(!chunk_demuxer_);
+ if (!blink::WebRuntimeFeatures::audioVideoTracksEnabled())
+ return;
+
// Report the media track information to blink.
for (const auto& track : tracks->tracks()) {
if (track->type() == MediaTrack::Audio) {
@@ -832,7 +871,7 @@ void WebMediaPlayerImpl::OnFFmpegMediaTracksUpdated(
blink::WebString::fromUTF8(track->label()),
blink::WebString::fromUTF8(track->language()),
/*enabled*/ true);
- (void)track_id;
+ demuxer_->OnTrackIdAssigned(track_id, track.get());
} else if (track->type() == MediaTrack::Video) {
auto track_id = client_->addVideoTrack(
blink::WebString::fromUTF8(track->id()),
@@ -840,7 +879,7 @@ void WebMediaPlayerImpl::OnFFmpegMediaTracksUpdated(
blink::WebString::fromUTF8(track->label()),
blink::WebString::fromUTF8(track->language()),
/*selected*/ true);
- (void)track_id;
+ demuxer_->OnTrackIdAssigned(track_id, track.get());
} else {
// Text tracks are not supported through this code path yet.
NOTREACHED();

Powered by Google App Engine
This is Rietveld 408576698