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

Side by Side Diff: media/formats/webm/webm_cluster_parser.h

Issue 1278193003: In-class-initialize LIMITED_MEDIA_LOG log counters (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@fix_518069
Patch Set: (Rebase and) Nix the enum->const cleanup from this CL Created 5 years, 4 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 unified diff | Download patch
« no previous file with comments | « media/filters/source_buffer_stream.cc ('k') | media/formats/webm/webm_cluster_parser.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 #ifndef MEDIA_FORMATS_WEBM_WEBM_CLUSTER_PARSER_H_ 5 #ifndef MEDIA_FORMATS_WEBM_WEBM_CLUSTER_PARSER_H_
6 #define MEDIA_FORMATS_WEBM_WEBM_CLUSTER_PARSER_H_ 6 #define MEDIA_FORMATS_WEBM_WEBM_CLUSTER_PARSER_H_
7 7
8 #include <deque> 8 #include <deque>
9 #include <map> 9 #include <map>
10 #include <set> 10 #include <set>
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
106 // Returns false if |buffer| failed sanity check and therefore was not added 106 // Returns false if |buffer| failed sanity check and therefore was not added
107 // to |buffers_|. Returns true otherwise. 107 // to |buffers_|. Returns true otherwise.
108 bool QueueBuffer(const scoped_refptr<StreamParserBuffer>& buffer); 108 bool QueueBuffer(const scoped_refptr<StreamParserBuffer>& buffer);
109 109
110 // Helper that calculates the buffer duration to use in 110 // Helper that calculates the buffer duration to use in
111 // ApplyDurationEstimateIfNeeded(). 111 // ApplyDurationEstimateIfNeeded().
112 base::TimeDelta GetDurationEstimate(); 112 base::TimeDelta GetDurationEstimate();
113 113
114 // Counts the number of estimated durations used in this track. Used to 114 // Counts the number of estimated durations used in this track. Used to
115 // prevent log spam for MEDIA_LOG()s about estimated duration. 115 // prevent log spam for MEDIA_LOG()s about estimated duration.
116 int num_duration_estimates_; 116 int num_duration_estimates_ = 0;
117 117
118 int track_num_; 118 int track_num_;
119 bool is_video_; 119 bool is_video_;
120 120
121 // Parsed track buffers, each with duration and in (decode) timestamp order, 121 // Parsed track buffers, each with duration and in (decode) timestamp order,
122 // that have not yet been extracted into |ready_buffers_|. Note that up to 122 // that have not yet been extracted into |ready_buffers_|. Note that up to
123 // one additional buffer missing duration may be tracked by 123 // one additional buffer missing duration may be tracked by
124 // |last_added_buffer_missing_duration_|. 124 // |last_added_buffer_missing_duration_|.
125 BufferQueue buffers_; 125 BufferQueue buffers_;
126 scoped_refptr<StreamParserBuffer> last_added_buffer_missing_duration_; 126 scoped_refptr<StreamParserBuffer> last_added_buffer_missing_duration_;
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after
262 // the next Cluster). Avoid calling if encrypted; may produce unexpected 262 // the next Cluster). Avoid calling if encrypted; may produce unexpected
263 // output. See implementation for supported codecs. 263 // output. See implementation for supported codecs.
264 base::TimeDelta TryGetEncodedAudioDuration(const uint8_t* data, int size); 264 base::TimeDelta TryGetEncodedAudioDuration(const uint8_t* data, int size);
265 265
266 // Reads Opus packet header to determine packet duration. Duration returned 266 // Reads Opus packet header to determine packet duration. Duration returned
267 // as TimeDelta or kNoTimestamp() upon failure to read duration from packet. 267 // as TimeDelta or kNoTimestamp() upon failure to read duration from packet.
268 base::TimeDelta ReadOpusDuration(const uint8_t* data, int size); 268 base::TimeDelta ReadOpusDuration(const uint8_t* data, int size);
269 269
270 // Tracks the number of MEDIA_LOGs made in process of reading encoded 270 // Tracks the number of MEDIA_LOGs made in process of reading encoded
271 // duration. Useful to prevent log spam. 271 // duration. Useful to prevent log spam.
272 int num_duration_errors_; 272 int num_duration_errors_ = 0;
273 273
274 double timecode_multiplier_; // Multiplier used to convert timecodes into 274 double timecode_multiplier_; // Multiplier used to convert timecodes into
275 // microseconds. 275 // microseconds.
276 std::set<int64> ignored_tracks_; 276 std::set<int64> ignored_tracks_;
277 std::string audio_encryption_key_id_; 277 std::string audio_encryption_key_id_;
278 std::string video_encryption_key_id_; 278 std::string video_encryption_key_id_;
279 const AudioCodec audio_codec_; 279 const AudioCodec audio_codec_;
280 280
281 WebMListParser parser_; 281 WebMListParser parser_;
282 282
283 int64 last_block_timecode_; 283 int64 last_block_timecode_ = -1;
284 scoped_ptr<uint8_t[]> block_data_; 284 scoped_ptr<uint8_t[]> block_data_;
285 int block_data_size_; 285 int block_data_size_ = -1;
286 int64 block_duration_; 286 int64 block_duration_ = -1;
287 int64 block_add_id_; 287 int64 block_add_id_ = -1;
288 288
289 scoped_ptr<uint8_t[]> block_additional_data_; 289 scoped_ptr<uint8_t[]> block_additional_data_;
290 // Must be 0 if |block_additional_data_| is null. Must be > 0 if 290 // Must be 0 if |block_additional_data_| is null. Must be > 0 if
291 // |block_additional_data_| is NOT null. 291 // |block_additional_data_| is NOT null.
292 int block_additional_data_size_; 292 int block_additional_data_size_ = 0;
293 293
294 int64 discard_padding_; 294 int64 discard_padding_ = -1;
295 bool discard_padding_set_; 295 bool discard_padding_set_ = false;
296 296
297 int64 cluster_timecode_; 297 int64 cluster_timecode_ = -1;
298 base::TimeDelta cluster_start_time_; 298 base::TimeDelta cluster_start_time_;
299 bool cluster_ended_; 299 bool cluster_ended_ = false;
300 300
301 Track audio_; 301 Track audio_;
302 Track video_; 302 Track video_;
303 TextTrackMap text_track_map_; 303 TextTrackMap text_track_map_;
304 304
305 // Subset of |text_track_map_| maintained by GetTextBuffers(), and cleared by 305 // Subset of |text_track_map_| maintained by GetTextBuffers(), and cleared by
306 // ClearTextTrackReadyBuffers(). Callers of GetTextBuffers() get a const-ref 306 // ClearTextTrackReadyBuffers(). Callers of GetTextBuffers() get a const-ref
307 // to this member. 307 // to this member.
308 TextBufferQueueMap text_buffers_map_; 308 TextBufferQueueMap text_buffers_map_;
309 309
310 // Limits the range of buffers returned by Get{Audio,Video,Text}Buffers() to 310 // Limits the range of buffers returned by Get{Audio,Video,Text}Buffers() to
311 // this exclusive upper bound. Set to kNoDecodeTimestamp(), meaning not yet 311 // this exclusive upper bound. Set to kNoDecodeTimestamp(), meaning not yet
312 // calculated, by Reset() and Parse(). If kNoDecodeTimestamp(), then 312 // calculated, by Reset() and Parse(). If kNoDecodeTimestamp(), then
313 // Get{Audio,Video,Text}Buffers() will calculate it to be the minimum (decode) 313 // Get{Audio,Video,Text}Buffers() will calculate it to be the minimum (decode)
314 // timestamp across all tracks' |last_buffer_missing_duration_|, or 314 // timestamp across all tracks' |last_buffer_missing_duration_|, or
315 // kInfiniteDuration() if no buffers are currently missing duration. 315 // kInfiniteDuration() if no buffers are currently missing duration.
316 DecodeTimestamp ready_buffer_upper_bound_; 316 DecodeTimestamp ready_buffer_upper_bound_;
317 317
318 scoped_refptr<MediaLog> media_log_; 318 scoped_refptr<MediaLog> media_log_;
319 319
320 DISALLOW_IMPLICIT_CONSTRUCTORS(WebMClusterParser); 320 DISALLOW_IMPLICIT_CONSTRUCTORS(WebMClusterParser);
321 }; 321 };
322 322
323 } // namespace media 323 } // namespace media
324 324
325 #endif // MEDIA_FORMATS_WEBM_WEBM_CLUSTER_PARSER_H_ 325 #endif // MEDIA_FORMATS_WEBM_WEBM_CLUSTER_PARSER_H_
OLDNEW
« no previous file with comments | « media/filters/source_buffer_stream.cc ('k') | media/formats/webm/webm_cluster_parser.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698