Index: media/webm/webm_cluster_parser.cc |
diff --git a/media/webm/webm_cluster_parser.cc b/media/webm/webm_cluster_parser.cc |
index c5a2fdc598237800758df3d8e88acdefc914cff4..13854a0958eacdccc451270b947529eb408b12f2 100644 |
--- a/media/webm/webm_cluster_parser.cc |
+++ b/media/webm/webm_cluster_parser.cc |
@@ -24,6 +24,7 @@ WebMClusterParser::WebMClusterParser(int64 timecode_scale, |
block_duration_(-1), |
cluster_timecode_(-1), |
cluster_start_time_(kNoTimestamp()), |
+ cluster_ended_(false), |
audio_(audio_track_num), |
video_(video_track_num) { |
CHECK_GE(video_encryption_key_id_size, 0); |
@@ -51,10 +52,13 @@ int WebMClusterParser::Parse(const uint8* buf, int size) { |
int result = parser_.Parse(buf, size); |
- if (result <= 0) |
+ if (result <= 0) { |
+ cluster_ended_ = false; |
return result; |
+ } |
- if (parser_.IsParsingComplete()) { |
+ cluster_ended_ = parser_.IsParsingComplete(); |
+ if (cluster_ended_) { |
// If there were no buffers in this cluster, set the cluster start time to |
// be the |cluster_timecode_|. |
if (cluster_start_time_ == kNoTimestamp()) { |