Chromium Code Reviews| Index: media/blink/webmediaplayer_impl.cc |
| diff --git a/media/blink/webmediaplayer_impl.cc b/media/blink/webmediaplayer_impl.cc |
| index a2854a4e57777ba2c25358dca75e51c0d63693fb..fffff371eeb9918ee39c4420aa0fa1d8cf13e733 100644 |
| --- a/media/blink/webmediaplayer_impl.cc |
| +++ b/media/blink/webmediaplayer_impl.cc |
| @@ -191,6 +191,7 @@ WebMediaPlayerImpl::WebMediaPlayerImpl( |
| suppress_destruction_errors_(false) { |
| DCHECK(!adjust_allocated_memory_cb_.is_null()); |
| DCHECK(renderer_factory_); |
| + DCHECK(client_); |
| if (delegate_) |
| delegate_id_ = delegate_->AddObserver(this); |
| @@ -803,6 +804,30 @@ void WebMediaPlayerImpl::OnFFmpegMediaTracksUpdated( |
| // WebSourceBufferImpl. |
| DCHECK(demuxer_.get()); |
| DCHECK(!chunk_demuxer_); |
| + |
| + // Report the media track information to blink. |
| + for (const auto& track : tracks->tracks()) { |
| + if (track->type() == MediaTrack::Audio) { |
| + auto track_id = client_->addAudioTrack( |
| + blink::WebString::fromUTF8(track->id()), |
| + blink::WebMediaPlayerClient::AudioTrackKindMain, |
| + blink::WebString::fromUTF8(track->label()), |
| + blink::WebString::fromUTF8(track->language()), |
| + /*enabled*/ true); |
| + (void)track_id; |
| + } else if (track->type() == MediaTrack::Video) { |
| + auto track_id = client_->addVideoTrack( |
| + blink::WebString::fromUTF8(track->id()), |
| + blink::WebMediaPlayerClient::VideoTrackKindMain, |
| + blink::WebString::fromUTF8(track->label()), |
| + blink::WebString::fromUTF8(track->language()), |
| + /*selected*/ true); |
| + (void)track_id; |
| + } else { |
| + // Text tracks are not supported through this code path yet. |
| + NOTREACHED(); |
| + } |
| + } |
| } |
| void WebMediaPlayerImpl::OnWaitingForDecryptionKey() { |
| @@ -1209,8 +1234,7 @@ void WebMediaPlayerImpl::StartPipeline() { |
| #if !defined(MEDIA_DISABLE_FFMPEG) |
| Demuxer::MediaTracksUpdatedCB media_tracks_updated_cb = |
| - base::Bind(&WebMediaPlayerImpl::OnFFmpegMediaTracksUpdated, |
| - base::Unretained(this)); |
| + BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnFFmpegMediaTracksUpdated); |
|
wolenetz
2016/03/23 22:53:03
Good catch that this needs to be handled on the re
|
| demuxer_.reset(new FFmpegDemuxer(media_task_runner_, data_source_.get(), |
| encrypted_media_init_data_cb, |