Chromium Code Reviews| Index: media/formats/webm/webm_tracks_parser.cc |
| diff --git a/media/formats/webm/webm_tracks_parser.cc b/media/formats/webm/webm_tracks_parser.cc |
| index 112427f691a9f50cc7915d52e05564caeaf8ec59..5c3df68ba27b85ba15b5eb7f24b1551828c6fef6 100644 |
| --- a/media/formats/webm/webm_tracks_parser.cc |
| +++ b/media/formats/webm/webm_tracks_parser.cc |
| @@ -47,29 +47,17 @@ static base::TimeDelta PrecisionCappedDefaultDuration( |
| WebMTracksParser::WebMTracksParser(const scoped_refptr<MediaLog>& media_log, |
| bool ignore_text_tracks) |
| - : track_type_(-1), |
| - track_num_(-1), |
| - seek_preroll_(-1), |
| - codec_delay_(-1), |
| - default_duration_(-1), |
| - audio_track_num_(-1), |
| - audio_default_duration_(-1), |
| - video_track_num_(-1), |
| - video_default_duration_(-1), |
| - ignore_text_tracks_(ignore_text_tracks), |
| + : ignore_text_tracks_(ignore_text_tracks), |
| media_log_(media_log), |
| audio_client_(media_log), |
| video_client_(media_log) { |
| + Reset(); |
| } |
| WebMTracksParser::~WebMTracksParser() {} |
| -int WebMTracksParser::Parse(const uint8_t* buf, int size) { |
| - track_type_ =-1; |
| - track_num_ = -1; |
| - default_duration_ = -1; |
| - track_name_.clear(); |
| - track_language_.clear(); |
| +void WebMTracksParser::Reset() { |
| + ResetTrackEntry(); |
| audio_track_num_ = -1; |
| audio_default_duration_ = -1; |
| audio_decoder_config_ = AudioDecoderConfig(); |
| @@ -79,7 +67,23 @@ int WebMTracksParser::Parse(const uint8_t* buf, int size) { |
| text_tracks_.clear(); |
| ignored_tracks_.clear(); |
| media_tracks_.reset(new MediaTracks()); |
| +} |
| + |
| +void WebMTracksParser::ResetTrackEntry() { |
| + track_type_ = -1; |
| + track_num_ = -1; |
| + track_name_.clear(); |
| + track_language_.clear(); |
| + codec_id_ = ""; |
| + codec_private_.clear(); |
| + seek_preroll_ = -1; |
| + codec_delay_ = -1; |
| + default_duration_ = -1; |
| + audio_client_.Reset(); |
| + video_client_.Reset(); |
| +} |
| +int WebMTracksParser::Parse(const uint8_t* buf, int size) { |
| WebMListParser parser(kWebMIdTracks, this); |
|
wolenetz
2016/03/28 20:45:07
Note, this works without invoking Reset() here too
wolenetz
2016/03/28 20:53:44
From quick chat, I've added usage of a flag here t
|
| int result = parser.Parse(buf, size); |
| @@ -111,15 +115,7 @@ WebMParserClient* WebMTracksParser::OnListStart(int id) { |
| } |
| if (id == kWebMIdTrackEntry) { |
| - track_type_ = -1; |
| - track_num_ = -1; |
| - default_duration_ = -1; |
| - track_name_.clear(); |
| - track_language_.clear(); |
| - codec_id_ = ""; |
| - codec_private_.clear(); |
| - audio_client_.Reset(); |
| - video_client_.Reset(); |
| + ResetTrackEntry(); |
| return this; |
| } |