Chromium Code Reviews| Index: media/blink/websourcebuffer_impl.cc |
| diff --git a/media/blink/websourcebuffer_impl.cc b/media/blink/websourcebuffer_impl.cc |
| index 6b08b1319634b55179767637f8fcb2d0f5df12cd..b2a73216dd9c907e0791a587e90b07d6e97f5d86 100644 |
| --- a/media/blink/websourcebuffer_impl.cc |
| +++ b/media/blink/websourcebuffer_impl.cc |
| @@ -15,6 +15,7 @@ |
| #include "media/base/media_tracks.h" |
| #include "media/base/timestamp_constants.h" |
| #include "media/filters/chunk_demuxer.h" |
| +#include "third_party/WebKit/public/platform/WebMediaPlayer.h" |
| #include "third_party/WebKit/public/platform/WebSourceBufferClient.h" |
| namespace media { |
| @@ -159,11 +160,33 @@ void WebSourceBufferImpl::removedFromMediaSource() { |
| client_ = NULL; |
| } |
| +blink::WebMediaPlayer::TrackType mediaTrackTypeToBlink(MediaTrack::Type type) { |
| + switch (type) { |
| + case MediaTrack::Audio: |
| + return blink::WebMediaPlayer::AudioTrack; |
| + case MediaTrack::Text: |
| + return blink::WebMediaPlayer::TextTrack; |
| + case MediaTrack::Video: |
| + return blink::WebMediaPlayer::VideoTrack; |
| + } |
| + NOTREACHED(); |
| + return blink::WebMediaPlayer::AudioTrack; |
| +} |
| + |
| void WebSourceBufferImpl::InitSegmentReceived(scoped_ptr<MediaTracks> tracks) { |
| DVLOG(1) << __FUNCTION__; |
| - // TODO(servolk): Implement passing MediaTrack info to blink level. |
| - // https://crbug.com/249428 |
| - client_->initializationSegmentReceived(); |
| + blink::WebVector<blink::WebMediaPlayer::TrackId> blinkTrackIds( |
|
wolenetz
2016/03/23 19:34:12
nit: DCHECK_LT(0, tracks->tracks().size() ?
servolk
2016/03/24 01:31:55
No need for this dcheck here, since the case of em
wolenetz
2016/03/24 01:54:06
Acknowledged.
|
| + tracks->tracks().size()); |
| + size_t i = 0; |
| + for (const auto& track : tracks->tracks()) { |
| + blinkTrackIds[i++] = client_->createMediaTrack( |
|
wolenetz
2016/03/23 19:34:13
Are these blinkTrackIds only valid within the proc
servolk
2016/03/24 01:31:55
Chromium does need to know these, since media trac
wolenetz
2016/03/24 01:54:07
Acknowledged.
|
| + mediaTrackTypeToBlink(track->type()), |
| + blink::WebString::fromUTF8(track->id()), |
| + blink::WebString::fromUTF8(track->kind()), |
| + blink::WebString::fromUTF8(track->label()), |
| + blink::WebString::fromUTF8(track->language())); |
| + } |
| + client_->initializationSegmentReceived(blinkTrackIds); |
| } |
| } // namespace media |