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

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

Issue 213253006: MSE: Populate WebM missing duration with DefaultDuration, derived, or default (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 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
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()) &&

Powered by Google App Engine
This is Rietveld 408576698