Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(355)

Unified Diff: media/formats/webm/webm_tracks_parser.cc

Issue 1842503002: MSE: Cleanup WebM tracks parser initialization (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Future-proof with conditional re-Reset() Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « media/formats/webm/webm_tracks_parser.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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..9e37756038e9a97ba73bf9fefca26eb89657094f 100644
--- a/media/formats/webm/webm_tracks_parser.cc
+++ b/media/formats/webm/webm_tracks_parser.cc
@@ -47,29 +47,18 @@ 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();
+ reset_on_next_parse_ = false;
audio_track_num_ = -1;
audio_default_duration_ = -1;
audio_decoder_config_ = AudioDecoderConfig();
@@ -79,6 +68,27 @@ 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) {
+ if (reset_on_next_parse_)
+ Reset();
+
+ reset_on_next_parse_ = true;
WebMListParser parser(kWebMIdTracks, this);
int result = parser.Parse(buf, size);
@@ -111,15 +121,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;
}
« no previous file with comments | « media/formats/webm/webm_tracks_parser.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698