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

Unified Diff: media/blink/websourcebuffer_impl.cc

Issue 1659653002: Pass MSE media track info from ChunkDemuxer to blink::SourceBuffer (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@use-media-tracks-in-media
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/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

Powered by Google App Engine
This is Rietveld 408576698