| Index: media/formats/webm/webm_stream_parser.cc | 
| diff --git a/media/formats/webm/webm_stream_parser.cc b/media/formats/webm/webm_stream_parser.cc | 
| index eae0371f0654960b1c54a209836b1e3f0cd3c431..1a49c6694b2254953cbe05d52731c5240e3a2874 100644 | 
| --- a/media/formats/webm/webm_stream_parser.cc | 
| +++ b/media/formats/webm/webm_stream_parser.cc | 
| @@ -180,11 +180,11 @@ int WebMStreamParser::ParseInfoAndTracks(const uint8* data, int size) { | 
|  | 
| bytes_parsed += result; | 
|  | 
| +  double timecode_scale_in_us = info_parser.timecode_scale() / 1000.0; | 
| base::TimeDelta duration = kInfiniteDuration(); | 
|  | 
| if (info_parser.duration() > 0) { | 
| -    double mult = info_parser.timecode_scale() / 1000.0; | 
| -    int64 duration_in_us = info_parser.duration() * mult; | 
| +    int64 duration_in_us = info_parser.duration() * timecode_scale_in_us; | 
| duration = base::TimeDelta::FromMicroseconds(duration_in_us); | 
| } | 
|  | 
| @@ -203,10 +203,13 @@ int WebMStreamParser::ParseInfoAndTracks(const uint8* data, int size) { | 
| return -1; | 
| } | 
|  | 
| + | 
| cluster_parser_.reset(new WebMClusterParser( | 
| info_parser.timecode_scale(), | 
| tracks_parser.audio_track_num(), | 
| +      tracks_parser.GetAudioDefaultDuration(timecode_scale_in_us), | 
| tracks_parser.video_track_num(), | 
| +      tracks_parser.GetVideoDefaultDuration(timecode_scale_in_us), | 
| tracks_parser.text_tracks(), | 
| tracks_parser.ignored_tracks(), | 
| tracks_parser.audio_encryption_key_id(), | 
| @@ -263,9 +266,10 @@ int WebMStreamParser::ParseCluster(const uint8* data, int size) { | 
| new_segment_cb_.Run(); | 
| } | 
|  | 
| -  const BufferQueue& audio_buffers = cluster_parser_->audio_buffers(); | 
| -  const BufferQueue& video_buffers = cluster_parser_->video_buffers(); | 
| +  const BufferQueue& audio_buffers = cluster_parser_->GetAudioBuffers(); | 
| +  const BufferQueue& video_buffers = cluster_parser_->GetVideoBuffers(); | 
| const TextBufferQueueMap& text_map = cluster_parser_->GetTextBuffers(); | 
| + | 
| bool cluster_ended = cluster_parser_->cluster_ended(); | 
|  | 
| if ((!audio_buffers.empty() || !video_buffers.empty() || !text_map.empty()) && | 
|  |