Chromium Code Reviews| 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(); |