Chromium Code Reviews| Index: media/base/media_tracks.cc |
| diff --git a/media/base/media_tracks.cc b/media/base/media_tracks.cc |
| index 832e5a822b12a497f43d01aabc9ef898c55fb7d0..06e6f81d9c47acf566c9b3e14cc84a037104b993 100644 |
| --- a/media/base/media_tracks.cc |
| +++ b/media/base/media_tracks.cc |
| @@ -14,30 +14,56 @@ MediaTracks::MediaTracks() {} |
| MediaTracks::~MediaTracks() {} |
| -void MediaTracks::AddAudioTrack(const AudioDecoderConfig& config, |
| - const std::string& id, |
| - const std::string& kind, |
| - const std::string& label, |
| - const std::string& language) { |
| +const MediaTrack* MediaTracks::AddAudioTrack(const AudioDecoderConfig& config, |
| + const std::string& id, |
| + const std::string& kind, |
| + const std::string& label, |
| + const std::string& language) { |
| DCHECK(config.IsValidConfig()); |
| CHECK(audio_configs_.find(id) == audio_configs_.end()); |
| scoped_ptr<MediaTrack> track = make_scoped_ptr( |
| new MediaTrack(MediaTrack::Audio, id, kind, label, language)); |
| tracks_.push_back(std::move(track)); |
| audio_configs_[id] = config; |
| + return tracks_.back().get(); |
| } |
| -void MediaTracks::AddVideoTrack(const VideoDecoderConfig& config, |
| - const std::string& id, |
| - const std::string& kind, |
| - const std::string& label, |
| - const std::string& language) { |
| +const MediaTrack* MediaTracks::AddVideoTrack(const VideoDecoderConfig& config, |
| + const std::string& id, |
| + const std::string& kind, |
| + const std::string& label, |
| + const std::string& language) { |
| DCHECK(config.IsValidConfig()); |
| CHECK(video_configs_.find(id) == video_configs_.end()); |
| scoped_ptr<MediaTrack> track = make_scoped_ptr( |
| new MediaTrack(MediaTrack::Video, id, kind, label, language)); |
| tracks_.push_back(std::move(track)); |
| video_configs_[id] = config; |
| + return tracks_.back().get(); |
| +} |
| + |
| +void MediaTracks::SetDemuxerStreamForMediaTrack(const MediaTrack* track, |
| + const DemuxerStream* stream) { |
| + DCHECK(track_to_demux_stream_map_.find(track) == |
| + track_to_demux_stream_map_.end()); |
| + track_to_demux_stream_map_[track] = stream; |
|
wolenetz
2016/04/15 22:47:18
Please add a CHECK that |tracks_| contains |track|
servolk
2016/04/15 23:26:31
Done.
|
| +} |
| + |
| +MediaTracks::TrackIdToDemuxStreamMap MediaTracks::OnTrackIdsAssigned( |
| + const std::vector<unsigned>& track_ids) const { |
| + TrackIdToDemuxStreamMap result; |
| + CHECK_EQ(tracks().size(), track_ids.size()); |
| + CHECK_EQ(track_to_demux_stream_map_.size(), tracks().size()); |
| + for (size_t i = 0; i < track_ids.size(); ++i) { |
| + const MediaTrack* track = tracks()[i].get(); |
| + DCHECK(track); |
| + const auto& it = track_to_demux_stream_map_.find(track); |
| + DCHECK(it != track_to_demux_stream_map_.end()); |
|
wolenetz
2016/04/15 22:47:18
If SetDemuxerStreamForMediaTrack() hasn't been cal
servolk
2016/04/15 23:26:31
Done.
|
| + DVLOG(3) << "OnTrackIdsAssigned track_id=" << track_ids[i] |
| + << " DemuxerStream=" << it->second; |
| + result[track_ids[i]] = it->second; |
| + } |
| + return result; |
| } |
| const AudioDecoderConfig& MediaTracks::getAudioConfig( |