OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "media/formats/webm/webm_cluster_parser.h" | 5 #include "media/formats/webm/webm_cluster_parser.h" |
6 | 6 |
7 #include <vector> | 7 #include <vector> |
8 | 8 |
9 #include "base/logging.h" | 9 #include "base/logging.h" |
10 #include "base/sys_byteorder.h" | 10 #include "base/sys_byteorder.h" |
(...skipping 25 matching lines...) Expand all Loading... |
36 int audio_track_num, | 36 int audio_track_num, |
37 base::TimeDelta audio_default_duration, | 37 base::TimeDelta audio_default_duration, |
38 int video_track_num, | 38 int video_track_num, |
39 base::TimeDelta video_default_duration, | 39 base::TimeDelta video_default_duration, |
40 const WebMTracksParser::TextTracks& text_tracks, | 40 const WebMTracksParser::TextTracks& text_tracks, |
41 const std::set<int64>& ignored_tracks, | 41 const std::set<int64>& ignored_tracks, |
42 const std::string& audio_encryption_key_id, | 42 const std::string& audio_encryption_key_id, |
43 const std::string& video_encryption_key_id, | 43 const std::string& video_encryption_key_id, |
44 const AudioCodec audio_codec, | 44 const AudioCodec audio_codec, |
45 const scoped_refptr<MediaLog>& media_log) | 45 const scoped_refptr<MediaLog>& media_log) |
46 : num_duration_errors_(0), | 46 : timecode_multiplier_(timecode_scale / 1000.0), |
47 timecode_multiplier_(timecode_scale / 1000.0), | |
48 ignored_tracks_(ignored_tracks), | 47 ignored_tracks_(ignored_tracks), |
49 audio_encryption_key_id_(audio_encryption_key_id), | 48 audio_encryption_key_id_(audio_encryption_key_id), |
50 video_encryption_key_id_(video_encryption_key_id), | 49 video_encryption_key_id_(video_encryption_key_id), |
51 audio_codec_(audio_codec), | 50 audio_codec_(audio_codec), |
52 parser_(kWebMIdCluster, this), | 51 parser_(kWebMIdCluster, this), |
53 last_block_timecode_(-1), | |
54 block_data_size_(-1), | |
55 block_duration_(-1), | |
56 block_add_id_(-1), | |
57 block_additional_data_size_(0), | |
58 discard_padding_(-1), | |
59 cluster_timecode_(-1), | |
60 cluster_start_time_(kNoTimestamp()), | 52 cluster_start_time_(kNoTimestamp()), |
61 cluster_ended_(false), | |
62 audio_(audio_track_num, false, audio_default_duration, media_log), | 53 audio_(audio_track_num, false, audio_default_duration, media_log), |
63 video_(video_track_num, true, video_default_duration, media_log), | 54 video_(video_track_num, true, video_default_duration, media_log), |
64 ready_buffer_upper_bound_(kNoDecodeTimestamp()), | 55 ready_buffer_upper_bound_(kNoDecodeTimestamp()), |
65 media_log_(media_log) { | 56 media_log_(media_log) { |
66 for (WebMTracksParser::TextTracks::const_iterator it = text_tracks.begin(); | 57 for (WebMTracksParser::TextTracks::const_iterator it = text_tracks.begin(); |
67 it != text_tracks.end(); | 58 it != text_tracks.end(); |
68 ++it) { | 59 ++it) { |
69 text_track_map_.insert(std::make_pair( | 60 text_track_map_.insert(std::make_pair( |
70 it->first, Track(it->first, false, kNoTimestamp(), media_log_))); | 61 it->first, Track(it->first, false, kNoTimestamp(), media_log_))); |
71 } | 62 } |
(...skipping 517 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
589 base::TimeDelta::FromMicroseconds(discard_padding / 1000))); | 580 base::TimeDelta::FromMicroseconds(discard_padding / 1000))); |
590 } | 581 } |
591 | 582 |
592 return track->AddBuffer(buffer); | 583 return track->AddBuffer(buffer); |
593 } | 584 } |
594 | 585 |
595 WebMClusterParser::Track::Track(int track_num, | 586 WebMClusterParser::Track::Track(int track_num, |
596 bool is_video, | 587 bool is_video, |
597 base::TimeDelta default_duration, | 588 base::TimeDelta default_duration, |
598 const scoped_refptr<MediaLog>& media_log) | 589 const scoped_refptr<MediaLog>& media_log) |
599 : num_duration_estimates_(0), | 590 : track_num_(track_num), |
600 track_num_(track_num), | |
601 is_video_(is_video), | 591 is_video_(is_video), |
602 default_duration_(default_duration), | 592 default_duration_(default_duration), |
603 estimated_next_frame_duration_(kNoTimestamp()), | 593 estimated_next_frame_duration_(kNoTimestamp()), |
604 media_log_(media_log) { | 594 media_log_(media_log) { |
605 DCHECK(default_duration_ == kNoTimestamp() || | 595 DCHECK(default_duration_ == kNoTimestamp() || |
606 default_duration_ > base::TimeDelta()); | 596 default_duration_ > base::TimeDelta()); |
607 } | 597 } |
608 | 598 |
609 WebMClusterParser::Track::~Track() {} | 599 WebMClusterParser::Track::~Track() {} |
610 | 600 |
(...skipping 271 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
882 WebMClusterParser::FindTextTrack(int track_num) { | 872 WebMClusterParser::FindTextTrack(int track_num) { |
883 const TextTrackMap::iterator it = text_track_map_.find(track_num); | 873 const TextTrackMap::iterator it = text_track_map_.find(track_num); |
884 | 874 |
885 if (it == text_track_map_.end()) | 875 if (it == text_track_map_.end()) |
886 return NULL; | 876 return NULL; |
887 | 877 |
888 return &it->second; | 878 return &it->second; |
889 } | 879 } |
890 | 880 |
891 } // namespace media | 881 } // namespace media |
OLD | NEW |