| Index: media/formats/webm/tracks_builder.h
|
| diff --git a/media/formats/webm/tracks_builder.h b/media/formats/webm/tracks_builder.h
|
| index ecd0fe5ce0a2740fe9dec8f5eb43db54b98c83d2..35f8955c6b0515779d3c6523d802e101dadc5912 100644
|
| --- a/media/formats/webm/tracks_builder.h
|
| +++ b/media/formats/webm/tracks_builder.h
|
| @@ -15,16 +15,37 @@ namespace media {
|
|
|
| class TracksBuilder {
|
| public:
|
| - TracksBuilder();
|
| + // If |allow_invalid_values| is false, some AddTrack() parameters will be
|
| + // basically checked and will assert if out of valid range. |codec_id|,
|
| + // |name|, |language| and any device-specific constraints are not checked.
|
| + explicit TracksBuilder(bool allow_invalid_values);
|
| + TracksBuilder(); // Sets |allow_invalid_values| to false.
|
| ~TracksBuilder();
|
|
|
| - void AddTrack(int track_num, int track_type, int track_uid,
|
| - const std::string& codec_id, const std::string& name,
|
| - const std::string& language);
|
| + // Only a non-negative |default_duration| will result in a serialized
|
| + // kWebMIdDefaultDuration element. Note, 0 is allowed here for testing only
|
| + // if |allow_invalid_values_| is true, since it is an illegal value for
|
| + // DefaultDuration. Similar applies to |audio_channels|,
|
| + // |audio_sampling_frequency|, |video_pixel_width| and |video_pixel_height|.
|
| + void AddVideoTrack(int track_num, int track_uid, const std::string& codec_id,
|
| + const std::string& name, const std::string& language,
|
| + int default_duration, int video_pixel_width,
|
| + int video_pixel_height);
|
| + void AddAudioTrack(int track_num, int track_uid, const std::string& codec_id,
|
| + const std::string& name, const std::string& language,
|
| + int default_duration, int audio_channels,
|
| + double audio_sampling_frequency);
|
| + void AddTextTrack(int track_num, int track_uid, const std::string& codec_id,
|
| + const std::string& name, const std::string& language);
|
|
|
| std::vector<uint8> Finish();
|
|
|
| private:
|
| + void AddTrackInternal(int track_num, int track_type, int track_uid,
|
| + const std::string& codec_id, const std::string& name,
|
| + const std::string& language, int default_duration,
|
| + int video_pixel_width, int video_pixel_height,
|
| + int audio_channels, double audio_sampling_frequency);
|
| int GetTracksSize() const;
|
| int GetTracksPayloadSize() const;
|
| void WriteTracks(uint8* buffer, int buffer_size) const;
|
| @@ -33,12 +54,17 @@ class TracksBuilder {
|
| public:
|
| Track(int track_num, int track_type, int track_uid,
|
| const std::string& codec_id, const std::string& name,
|
| - const std::string& language);
|
| + const std::string& language, int default_duration,
|
| + int video_pixel_width, int video_pixel_height,
|
| + int audio_channels, double audio_sampling_frequency,
|
| + bool allow_invalid_values);
|
|
|
| int GetSize() const;
|
| void Write(uint8** buf, int* buf_size) const;
|
| private:
|
| int GetPayloadSize() const;
|
| + int GetVideoPayloadSize() const;
|
| + int GetAudioPayloadSize() const;
|
|
|
| int track_num_;
|
| int track_type_;
|
| @@ -46,10 +72,16 @@ class TracksBuilder {
|
| std::string codec_id_;
|
| std::string name_;
|
| std::string language_;
|
| + int default_duration_;
|
| + int video_pixel_width_;
|
| + int video_pixel_height_;
|
| + int audio_channels_;
|
| + double audio_sampling_frequency_;
|
| };
|
|
|
| typedef std::list<Track> TrackList;
|
| TrackList tracks_;
|
| + bool allow_invalid_values_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(TracksBuilder);
|
| };
|
|
|