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

Unified Diff: media/blink/webmediaplayer_impl.cc

Issue 1922333002: Implement mapping blink track id to demuxer streams (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: CR feedback Created 4 years, 7 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 0b6354a9f296e6f22c4cd2ec20ff7793d48f53c0..3b373485a2ae011fd57fcf8bdd8e060aa1357bb7 100644
--- a/media/blink/webmediaplayer_impl.cc
+++ b/media/blink/webmediaplayer_impl.cc
@@ -577,6 +577,22 @@ 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());
+
+ // TODO(servolk): Implement disabling/enabling audio streams.
+}
+
+void WebMediaPlayerImpl::selectedVideoTrackChanged(
+ blink::WebMediaPlayer::TrackId* selectedTrackId) {
+ DCHECK(main_task_runner_->BelongsToCurrentThread());
+ CHECK(demuxer_.get());
+
+ // TODO(servolk): Implement disabling/enabling video stream.
+}
+
blink::WebSize WebMediaPlayerImpl::naturalSize() const {
DCHECK(main_task_runner_->BelongsToCurrentThread());
@@ -841,6 +857,7 @@ void WebMediaPlayerImpl::OnFFmpegMediaTracksUpdated(
DCHECK(!chunk_demuxer_);
// Report the media track information to blink.
+ std::vector<blink::WebMediaPlayer::TrackId> blinkTrackIds;
for (const auto& track : tracks->tracks()) {
if (track->type() == MediaTrack::Audio) {
auto track_id = client_->addAudioTrack(
@@ -849,7 +866,7 @@ void WebMediaPlayerImpl::OnFFmpegMediaTracksUpdated(
blink::WebString::fromUTF8(track->label()),
blink::WebString::fromUTF8(track->language()),
/*enabled*/ true);
- (void)track_id;
+ blinkTrackIds.push_back(track_id);
} else if (track->type() == MediaTrack::Video) {
auto track_id = client_->addVideoTrack(
blink::WebString::fromUTF8(track->id()),
@@ -857,12 +874,14 @@ void WebMediaPlayerImpl::OnFFmpegMediaTracksUpdated(
blink::WebString::fromUTF8(track->label()),
blink::WebString::fromUTF8(track->language()),
/*selected*/ true);
- (void)track_id;
+ blinkTrackIds.push_back(track_id);
} else {
// Text tracks are not supported through this code path yet.
NOTREACHED();
}
}
+
+ demuxer_->OnTrackIdsAssigned(*tracks.get(), blinkTrackIds);
xhwang 2016/06/03 18:52:45 It looks really odd that we create the track in ch
servolk 2016/06/03 20:06:45 Thanks, good point. Blink has had separate bytestr
chcunningham 2016/06/03 20:42:49 I'm also looking for away to let Chromium decide t
servolk 2016/06/03 20:57:10 Yes, multiple bytestream track ids might map to th
servolk 2016/06/03 23:35:36 Well, completely removing WebMediaPlayer::TrackId
servolk 2016/06/06 17:42:56 Update: I though about it some more over the weeke
}
void WebMediaPlayerImpl::SetCdm(const CdmAttachedCB& cdm_attached_cb,

Powered by Google App Engine
This is Rietveld 408576698