37 int Parse(
const uint8_t* buf,
int size);
39 int64_t audio_track_num()
const {
return audio_track_num_; }
40 int64_t video_track_num()
const {
return video_track_num_; }
47 int64_t GetVideoDefaultDuration(
const double timecode_scale_in_us)
const;
49 const std::set<int64_t>& ignored_tracks()
const {
return ignored_tracks_; }
51 const std::string& audio_encryption_key_id()
const {
52 return audio_encryption_key_id_;
55 std::shared_ptr<AudioStreamInfo> audio_stream_info() {
56 return audio_stream_info_;
59 const std::string& video_encryption_key_id()
const {
60 return video_encryption_key_id_;
63 std::shared_ptr<VideoStreamInfo> video_stream_info() {
64 return video_stream_info_;
67 typedef std::map<int, TextTrackConfig> TextTracks;
69 const TextTracks& text_tracks()
const {
78 bool OnListEnd(
int id)
override;
79 bool OnUInt(
int id, int64_t val)
override;
80 bool OnFloat(
int id,
double val)
override;
81 bool OnBinary(
int id,
const uint8_t* data,
int size)
override;
82 bool OnString(
int id,
const std::string& str)
override;
86 std::string track_name_;
87 std::string track_language_;
88 std::string codec_id_;
89 std::vector<uint8_t> codec_private_;
90 int64_t seek_preroll_;
92 int64_t default_duration_;
93 std::unique_ptr<WebMContentEncodingsClient> track_content_encodings_client_;
95 int64_t audio_track_num_;
96 int64_t audio_default_duration_;
97 int64_t video_track_num_;
98 int64_t video_default_duration_;
99 bool ignore_text_tracks_;
100 TextTracks text_tracks_;
101 std::set<int64_t> ignored_tracks_;
102 std::string audio_encryption_key_id_;
103 std::string video_encryption_key_id_;
106 std::shared_ptr<AudioStreamInfo> audio_stream_info_;
110 std::shared_ptr<VideoStreamInfo> video_stream_info_;