OLD | NEW |
---|---|
(Empty) | |
1 // Copyright (c) 2016 The Chromium Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 #include "media/base/media_tracks.h" | |
6 | |
7 #include "base/bind.h" | |
8 #include "media/base/audio_decoder_config.h" | |
9 #include "media/base/media_track.h" | |
wolenetz
2016/02/26 00:06:20
nit: this is already included by this class' heade
servolk
2016/02/26 01:56:31
Done.
| |
10 #include "media/base/video_decoder_config.h" | |
11 | |
12 namespace media { | |
13 | |
14 MediaTracks::MediaTracks() {} | |
15 | |
16 MediaTracks::~MediaTracks() {} | |
17 | |
18 void MediaTracks::AddAudioTrack(const AudioDecoderConfig& config, | |
19 const std::string& id, | |
20 const std::string& kind, | |
21 const std::string& label, | |
22 const std::string& language) { | |
23 DCHECK(config.IsValidConfig()); | |
24 scoped_ptr<MediaTrack> track = make_scoped_ptr( | |
25 new MediaTrack(MediaTrack::Audio, id, kind, label, language)); | |
26 tracks_.push_back(std::move(track)); | |
wolenetz
2016/02/26 00:06:20
What if there is already an audio track with same
| |
27 audio_configs_[id] = config; | |
28 } | |
29 | |
30 void MediaTracks::AddVideoTrack(const VideoDecoderConfig& config, | |
31 const std::string& id, | |
32 const std::string& kind, | |
33 const std::string& label, | |
34 const std::string& language) { | |
35 DCHECK(config.IsValidConfig()); | |
36 scoped_ptr<MediaTrack> track = make_scoped_ptr( | |
37 new MediaTrack(MediaTrack::Video, id, kind, label, language)); | |
38 tracks_.push_back(std::move(track)); | |
wolenetz
2016/02/26 00:06:20
Ditto (what if there is already a video track with
| |
39 video_configs_[id] = config; | |
40 } | |
41 | |
42 const AudioDecoderConfig& MediaTracks::getAudioConfig( | |
43 const std::string& id) const { | |
44 auto it = audio_configs_.find(id); | |
45 if (it != audio_configs_.end()) | |
46 return it->second; | |
47 static AudioDecoderConfig invalidConfig; | |
48 return invalidConfig; | |
49 } | |
50 | |
51 const VideoDecoderConfig& MediaTracks::getVideoConfig( | |
52 const std::string& id) const { | |
53 auto it = video_configs_.find(id); | |
54 if (it != video_configs_.end()) | |
55 return it->second; | |
56 static VideoDecoderConfig invalidConfig; | |
57 return invalidConfig; | |
58 } | |
59 | |
60 const AudioDecoderConfig& MediaTracks::getFirstAudioConfig() const { | |
61 for (const auto& track : tracks()) { | |
62 if (track->type() == MediaTrack::Audio) { | |
63 return getAudioConfig(track->id()); | |
wolenetz
2016/02/26 00:06:20
for example, this would return probably an unexpec
| |
64 } | |
65 } | |
66 static AudioDecoderConfig invalidConfig; | |
67 return invalidConfig; | |
68 } | |
69 | |
70 const VideoDecoderConfig& MediaTracks::getFirstVideoConfig() const { | |
71 for (const auto& track : tracks()) { | |
72 if (track->type() == MediaTrack::Video) { | |
73 return getVideoConfig(track->id()); | |
wolenetz
2016/02/26 00:06:20
ditto example
| |
74 } | |
75 } | |
76 static VideoDecoderConfig invalidConfig; | |
77 return invalidConfig; | |
78 } | |
79 | |
80 } // namespace media | |
OLD | NEW |