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

Side by Side Diff: media/filters/source_buffer_stream.h

Issue 1236543007: MSE: Log buffered audio splice generation to media-internals (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 5 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 // SourceBufferStream is a data structure that stores media Buffers in ranges. 5 // SourceBufferStream is a data structure that stores media Buffers in ranges.
6 // Buffers can be appended out of presentation order. Buffers are retrieved by 6 // Buffers can be appended out of presentation order. Buffers are retrieved by
7 // seeking to the desired start point and calling GetNextBuffer(). Buffers are 7 // seeking to the desired start point and calling GetNextBuffer(). Buffers are
8 // returned in sequential presentation order. 8 // returned in sequential presentation order.
9 9
10 #ifndef MEDIA_FILTERS_SOURCE_BUFFER_STREAM_H_ 10 #ifndef MEDIA_FILTERS_SOURCE_BUFFER_STREAM_H_
(...skipping 310 matching lines...) Expand 10 before | Expand all | Expand 10 after
321 // Called by PrepareRangesForNextAppend() before pruning overlapped buffers to 321 // Called by PrepareRangesForNextAppend() before pruning overlapped buffers to
322 // generate a splice frame with a small portion of the overlapped buffers. If 322 // generate a splice frame with a small portion of the overlapped buffers. If
323 // a splice frame is generated, the first buffer in |new_buffers| will have 323 // a splice frame is generated, the first buffer in |new_buffers| will have
324 // its timestamps, duration, and fade out preroll updated. 324 // its timestamps, duration, and fade out preroll updated.
325 void GenerateSpliceFrame(const BufferQueue& new_buffers); 325 void GenerateSpliceFrame(const BufferQueue& new_buffers);
326 326
327 // If |out_buffer| has splice buffers or preroll, sets |pending_buffer_| 327 // If |out_buffer| has splice buffers or preroll, sets |pending_buffer_|
328 // appropriately and returns true. Otherwise returns false. 328 // appropriately and returns true. Otherwise returns false.
329 bool SetPendingBuffer(scoped_refptr<StreamParserBuffer>* out_buffer); 329 bool SetPendingBuffer(scoped_refptr<StreamParserBuffer>* out_buffer);
330 330
331 // Update |splice_stats_| and log the update to |media_log_|.
332 void LogSplice(double splice_duration);
333 void LogDegenerateSplice();
334
331 // Used to report log messages that can help the web developer figure out what 335 // Used to report log messages that can help the web developer figure out what
332 // is wrong with the content. 336 // is wrong with the content.
333 scoped_refptr<MediaLog> media_log_; 337 scoped_refptr<MediaLog> media_log_;
334 338
335 // List of disjoint buffered ranges, ordered by start time. 339 // List of disjoint buffered ranges, ordered by start time.
336 RangeList ranges_; 340 RangeList ranges_;
337 341
338 // Indicates which decoder config is being used by the decoder. 342 // Indicates which decoder config is being used by the decoder.
339 // GetNextBuffer() is only allows to return buffers that have a 343 // GetNextBuffer() is only allows to return buffers that have a
340 // config ID that matches this index. If there is a mismatch then 344 // config ID that matches this index. If there is a mismatch then
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
412 // Indicates which of the splice buffers in |splice_buffer_| should be 416 // Indicates which of the splice buffers in |splice_buffer_| should be
413 // handled out next. 417 // handled out next.
414 size_t splice_buffers_index_; 418 size_t splice_buffers_index_;
415 419
416 // Indicates that all buffers before |pending_buffer_| have been handed out. 420 // Indicates that all buffers before |pending_buffer_| have been handed out.
417 bool pending_buffers_complete_; 421 bool pending_buffers_complete_;
418 422
419 // Indicates that splice frame generation is enabled. 423 // Indicates that splice frame generation is enabled.
420 const bool splice_frames_enabled_; 424 const bool splice_frames_enabled_;
421 425
426 // Buffered audio splice generation statistics for reporting to |media_log_|.
427 // TODO(wolenetz,chcunningham): Once multi-track audio is enabled, report
428 // these statistics per track.
429 MediaLog::AudioSpliceStatistics splice_stats_;
430
422 DISALLOW_COPY_AND_ASSIGN(SourceBufferStream); 431 DISALLOW_COPY_AND_ASSIGN(SourceBufferStream);
423 }; 432 };
424 433
425 } // namespace media 434 } // namespace media
426 435
427 #endif // MEDIA_FILTERS_SOURCE_BUFFER_STREAM_H_ 436 #endif // MEDIA_FILTERS_SOURCE_BUFFER_STREAM_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698