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

Unified Diff: media/filters/source_buffer_stream.cc

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 side-by-side diff with in-line comments
Download patch
« media/base/media_log_event.h ('K') | « media/filters/source_buffer_stream.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: media/filters/source_buffer_stream.cc
diff --git a/media/filters/source_buffer_stream.cc b/media/filters/source_buffer_stream.cc
index d20969f00c96c81089b8a94436700cf6aee9c5bf..cdb4bac0b3415dad5bdb8cd27736be7cd4611603 100644
--- a/media/filters/source_buffer_stream.cc
+++ b/media/filters/source_buffer_stream.cc
@@ -1548,8 +1548,10 @@ void SourceBufferStream::GenerateSpliceFrame(const BufferQueue& new_buffers) {
//
// We also do not want to generate splices if the first new buffer replaces an
// existing buffer exactly.
- if (pre_splice_buffers.front()->timestamp() >= splice_timestamp)
+ if (pre_splice_buffers.front()->timestamp() >= splice_timestamp) {
+ LogDegenerateSplice();
return;
+ }
// If any |pre_splice_buffers| are already splices or preroll, do not generate
// a splice.
@@ -1559,11 +1561,13 @@ void SourceBufferStream::GenerateSpliceFrame(const BufferQueue& new_buffers) {
if (!original_splice_buffers.empty()) {
DVLOG(1) << "Can't generate splice: overlapped buffers contain a "
"pre-existing splice.";
+ LogDegenerateSplice();
return;
}
if (pre_splice_buffers[i]->preroll_buffer().get()) {
DVLOG(1) << "Can't generate splice: overlapped buffers contain preroll.";
+ LogDegenerateSplice();
return;
}
}
@@ -1582,12 +1586,14 @@ void SourceBufferStream::GenerateSpliceFrame(const BufferQueue& new_buffers) {
DVLOG(1) << "Can't generate splice: not enough samples for crossfade; have "
<< splice_duration.InMicroseconds() << " us, but need "
<< minimum_splice_duration.InMicroseconds() << " us.";
+ LogDegenerateSplice();
return;
}
DVLOG(1) << "Generating splice frame @ " << new_buffers.front()->timestamp()
<< ", splice duration: " << splice_duration.InMicroseconds()
<< " us";
+ LogSplice(splice_duration.InSecondsF());
new_buffers.front()->ConvertToSpliceBuffer(pre_splice_buffers);
}
@@ -1609,4 +1615,16 @@ bool SourceBufferStream::SetPendingBuffer(
return true;
}
+void SourceBufferStream::LogSplice(double splice_duration) {
+ splice_stats_.OnSplice(splice_duration);
+ media_log_->AddEvent(
+ media_log_->CreateBufferedSpliceStatisticsChangedEvent(splice_stats_));
+}
+
+void SourceBufferStream::LogDegenerateSplice() {
+ splice_stats_.OnDegenerateSplice();
+ media_log_->AddEvent(
+ media_log_->CreateBufferedSpliceStatisticsChangedEvent(splice_stats_));
+}
+
} // namespace media
« media/base/media_log_event.h ('K') | « media/filters/source_buffer_stream.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698