| OLD | NEW | 
|---|
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be | 
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. | 
| 4 | 4 | 
| 5 #ifndef MEDIA_BASE_MEDIA_TRACKS_H_ | 5 #ifndef MEDIA_BASE_MEDIA_TRACKS_H_ | 
| 6 #define MEDIA_BASE_MEDIA_TRACKS_H_ | 6 #define MEDIA_BASE_MEDIA_TRACKS_H_ | 
| 7 | 7 | 
| 8 #include <map> | 8 #include <map> | 
| 9 #include <memory> | 9 #include <memory> | 
| 10 #include <string> | 10 #include <string> | 
| 11 #include <vector> | 11 #include <vector> | 
| 12 | 12 | 
| 13 #include "base/macros.h" | 13 #include "base/macros.h" | 
| 14 #include "media/base/media_export.h" | 14 #include "media/base/media_export.h" | 
| 15 #include "media/base/media_track.h" | 15 #include "media/base/media_track.h" | 
| 16 | 16 | 
| 17 namespace media { | 17 namespace media { | 
| 18 | 18 | 
| 19 class AudioDecoderConfig; | 19 class AudioDecoderConfig; | 
| 20 class VideoDecoderConfig; | 20 class VideoDecoderConfig; | 
| 21 | 21 | 
| 22 class MEDIA_EXPORT MediaTracks { | 22 class MEDIA_EXPORT MediaTracks { | 
| 23  public: | 23  public: | 
| 24   using MediaTracksCollection = std::vector<std::unique_ptr<MediaTrack>>; | 24   using MediaTracksCollection = std::vector<std::unique_ptr<MediaTrack>>; | 
| 25 | 25 | 
| 26   MediaTracks(); | 26   MediaTracks(); | 
| 27   ~MediaTracks(); | 27   ~MediaTracks(); | 
| 28 | 28 | 
| 29   // Callers need to ensure that track id is unique. | 29   // Adds a new audio track. The |bytestreamTrackId| must uniquely identify the | 
|  | 30   // track within the bytestream. | 
| 30   void AddAudioTrack(const AudioDecoderConfig& config, | 31   void AddAudioTrack(const AudioDecoderConfig& config, | 
| 31                      const std::string& id, | 32                      StreamParser::TrackId bytestream_track_id, | 
| 32                      const std::string& kind, | 33                      const std::string& kind, | 
| 33                      const std::string& label, | 34                      const std::string& label, | 
| 34                      const std::string& language); | 35                      const std::string& language); | 
| 35   // Callers need to ensure that track id is unique. | 36   // Adds a new video track. The |bytestreamTrackId| must uniquely identify the | 
|  | 37   // track within the bytestream. | 
| 36   void AddVideoTrack(const VideoDecoderConfig& config, | 38   void AddVideoTrack(const VideoDecoderConfig& config, | 
| 37                      const std::string& id, | 39                      StreamParser::TrackId bytestream_track_id, | 
| 38                      const std::string& kind, | 40                      const std::string& kind, | 
| 39                      const std::string& label, | 41                      const std::string& label, | 
| 40                      const std::string& language); | 42                      const std::string& language); | 
| 41 | 43 | 
| 42   const MediaTracksCollection& tracks() const { return tracks_; } | 44   const MediaTracksCollection& tracks() const { return tracks_; } | 
| 43 | 45 | 
| 44   const AudioDecoderConfig& getAudioConfig(const std::string& id) const; | 46   const AudioDecoderConfig& getAudioConfig( | 
| 45   const VideoDecoderConfig& getVideoConfig(const std::string& id) const; | 47       StreamParser::TrackId bytestream_track_id) const; | 
|  | 48   const VideoDecoderConfig& getVideoConfig( | 
|  | 49       StreamParser::TrackId bytestream_track_id) const; | 
| 46 | 50 | 
| 47   // TODO(servolk): These are temporary helpers useful until all code paths are | 51   // TODO(servolk): These are temporary helpers useful until all code paths are | 
| 48   // converted to properly handle multiple media tracks. | 52   // converted to properly handle multiple media tracks. | 
| 49   const AudioDecoderConfig& getFirstAudioConfig() const; | 53   const AudioDecoderConfig& getFirstAudioConfig() const; | 
| 50   const VideoDecoderConfig& getFirstVideoConfig() const; | 54   const VideoDecoderConfig& getFirstVideoConfig() const; | 
| 51 | 55 | 
| 52  private: | 56  private: | 
| 53   MediaTracksCollection tracks_; | 57   MediaTracksCollection tracks_; | 
| 54   std::map<std::string, AudioDecoderConfig> audio_configs_; | 58   std::map<StreamParser::TrackId, AudioDecoderConfig> audio_configs_; | 
| 55   std::map<std::string, VideoDecoderConfig> video_configs_; | 59   std::map<StreamParser::TrackId, VideoDecoderConfig> video_configs_; | 
| 56 | 60 | 
| 57   DISALLOW_COPY_AND_ASSIGN(MediaTracks); | 61   DISALLOW_COPY_AND_ASSIGN(MediaTracks); | 
| 58 }; | 62 }; | 
| 59 | 63 | 
| 60 }  // namespace media | 64 }  // namespace media | 
| 61 | 65 | 
| 62 #endif  // MEDIA_BASE_MEDIA_TRACKS_H_ | 66 #endif  // MEDIA_BASE_MEDIA_TRACKS_H_ | 
| OLD | NEW | 
|---|