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

Unified Diff: media/filters/source_buffer_stream_unittest.cc

Issue 379693002: Update SourceBufferStream and its unit tests to always expect valid durations. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 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
Index: media/filters/source_buffer_stream_unittest.cc
diff --git a/media/filters/source_buffer_stream_unittest.cc b/media/filters/source_buffer_stream_unittest.cc
index 50efdacd4f2bdd93007bec10bec8070bd9096095..ee8328985f25dc7ee7d13cfe02c394ee895db3ee 100644
--- a/media/filters/source_buffer_stream_unittest.cc
+++ b/media/filters/source_buffer_stream_unittest.cc
@@ -31,8 +31,7 @@ static const int kDataSize = 1;
class SourceBufferStreamTest : public testing::Test {
protected:
- SourceBufferStreamTest()
- : accurate_durations_(false) {
+ SourceBufferStreamTest() {
video_config_ = TestVideoConfig::Normal();
SetStreamInfo(kDefaultFramesPerSecond, kDefaultKeyframesPerSecond);
stream_.reset(new SourceBufferStream(video_config_, log_cb(), true));
@@ -57,7 +56,6 @@ class SourceBufferStreamTest : public testing::Test {
void SetAudioStream() {
video_config_ = TestVideoConfig::Invalid();
- accurate_durations_ = true;
audio_config_.Initialize(kCodecVorbis,
kSampleFormatPlanarF32,
CHANNEL_LAYOUT_STEREO,
@@ -356,6 +354,9 @@ class SourceBufferStreamTest : public testing::Test {
}
base::TimeDelta frame_duration() const { return frame_duration_; }
+ void set_frame_duration(base::TimeDelta frame_duration) {
+ frame_duration_ = frame_duration;
+ }
scoped_ptr<SourceBufferStream> stream_;
VideoDecoderConfig video_config_;
@@ -407,8 +408,7 @@ class SourceBufferStreamTest : public testing::Test {
presentation_timestamp = timestamp - frame_duration_;
}
buffer->set_timestamp(presentation_timestamp);
- if (accurate_durations_)
- buffer->set_duration(frame_duration_);
+ buffer->set_duration(frame_duration_);
queue.push_back(buffer);
}
@@ -416,6 +416,16 @@ class SourceBufferStreamTest : public testing::Test {
EXPECT_EQ(expect_success, stream_->Append(queue));
}
+ void UpdateLastBufferDuration(base::TimeDelta current_dts,
+ BufferQueue* buffers) {
+ if (buffers->empty() || buffers->back()->duration() > base::TimeDelta())
+ return;
+
+ base::TimeDelta last_dts = buffers->back()->GetDecodeTimestamp();
+ DCHECK(current_dts >= last_dts);
+ buffers->back()->set_duration(current_dts - last_dts);
+ }
+
// StringToBufferQueue() allows for the generation of StreamParserBuffers from
// coded strings of timestamps separated by spaces. Supported syntax:
//
@@ -479,7 +489,15 @@ class SourceBufferStreamTest : public testing::Test {
timestamps[i] = timestamps[i].substr(0, timestamps[i].length() - 1);
}
- int time_in_ms;
+ int time_in_ms = 0;
+ int duration_in_ms = 0;
+ size_t duration_pos = timestamps[i].find('D');
+ if (duration_pos != std::string::npos) {
+ CHECK(base::StringToInt(timestamps[i].substr(duration_pos + 1),
+ &duration_in_ms));
+ timestamps[i] = timestamps[i].substr(0, duration_pos );
wolenetz 2014/07/09 22:42:16 nit: s/ )/)/
acolwell GONE FROM CHROMIUM 2014/07/15 18:49:28 Done.
+ }
+
CHECK(base::StringToInt(timestamps[i], &time_in_ms));
// Create buffer. Buffer type and track ID are meaningless to these tests.
@@ -489,8 +507,8 @@ class SourceBufferStreamTest : public testing::Test {
base::TimeDelta timestamp =
base::TimeDelta::FromMilliseconds(time_in_ms);
buffer->set_timestamp(timestamp);
- if (accurate_durations_)
- buffer->set_duration(frame_duration_);
+ if (duration_in_ms)
+ buffer->set_duration(base::TimeDelta::FromMilliseconds(duration_in_ms));
buffer->SetDecodeTimestamp(timestamp);
// Simulate preroll buffers by just generating another buffer and sticking
@@ -511,6 +529,8 @@ class SourceBufferStreamTest : public testing::Test {
pre_splice_buffers.back()->GetDecodeTimestamp().InMicroseconds());
}
buffer->SetConfigId(splice_config_id);
+ UpdateLastBufferDuration(buffer->GetDecodeTimestamp(),
+ &pre_splice_buffers);
pre_splice_buffers.push_back(buffer);
continue;
}
@@ -523,8 +543,18 @@ class SourceBufferStreamTest : public testing::Test {
pre_splice_buffers.clear();
}
+ UpdateLastBufferDuration(buffer->GetDecodeTimestamp(), &buffers);
buffers.push_back(buffer);
}
+
+ // If the last buffer doesn't have a duration, assume it is the
+ // same as the second to last buffer.
+ if (buffers.size() >= 2 &&
+ buffers.back()->duration() <= base::TimeDelta()) {
+ buffers.back()->set_duration(
+ buffers[buffers.size() - 2]->duration());
+ }
+
return buffers;
}
@@ -565,10 +595,6 @@ class SourceBufferStreamTest : public testing::Test {
int frames_per_second_;
int keyframes_per_second_;
base::TimeDelta frame_duration_;
- // TODO(dalecurtis): It's silly to have this, all tests should use accurate
- // durations instead. However, currently all tests are written with an
- // expectation of 0 duration, so it's an involved change.
- bool accurate_durations_;
DISALLOW_COPY_AND_ASSIGN(SourceBufferStreamTest);
};
@@ -691,7 +717,7 @@ TEST_F(SourceBufferStreamTest,
// Completely overlap the old buffers, with a segment that starts
// after the old segment start timestamp, but before the timestamp
// of the first buffer in the segment.
- NewSegmentAppend("20K 50K 80K 110K");
+ NewSegmentAppend("20K 50K 80K 110D10K");
// Verify that the buffered ranges are updated properly and we don't crash.
CheckExpectedRangesByTimestamp("{ [20,150) }");
@@ -773,13 +799,15 @@ TEST_F(SourceBufferStreamTest, End_Overlap_Several) {
// after: *0K* *120K* 150K
// track:
TEST_F(SourceBufferStreamTest, End_Overlap_SingleBuffer) {
+ set_frame_duration(base::TimeDelta::FromMilliseconds(30));
+
// Seek to start of stream.
SeekToTimestamp(base::TimeDelta::FromMilliseconds(0));
NewSegmentAppend("0K 30 60 90 120K 150");
CheckExpectedRangesByTimestamp("{ [0,180) }");
- NewSegmentAppend("0K");
+ NewSegmentAppend("0D30K");
wolenetz 2014/07/09 22:42:18 curious: without D30 and frame_duration_ set to 30
acolwell GONE FROM CHROMIUM 2014/07/15 18:49:27 Removed the set_frame_duration() call since it was
wolenetz 2014/07/15 21:05:37 Acknowledged.
CheckExpectedRangesByTimestamp("{ [0,30) [120,180) }");
CheckExpectedBuffers("0K");
@@ -1549,7 +1577,7 @@ TEST_F(SourceBufferStreamTest, Overlap_OneByOne_DeleteGroup) {
SeekToTimestamp(base::TimeDelta::FromMilliseconds(130));
// Overlap with a new segment from 0 to 120ms.
wolenetz 2014/07/09 22:42:17 nit: s/120/130?
acolwell GONE FROM CHROMIUM 2014/07/15 18:49:27 Done.
- NewSegmentAppendOneByOne("0K 120");
+ NewSegmentAppendOneByOne("0K 120D10");
// Next buffer should still be 130ms.
CheckExpectedBuffers("130K");
@@ -1580,7 +1608,7 @@ TEST_F(SourceBufferStreamTest, Overlap_OneByOne_BetweenMediaSegments) {
// new : 0K 30 60 90 120K
// after: 0K 30 60 90 *120K* 130K
TEST_F(SourceBufferStreamTest, Overlap_OneByOne_TrackBuffer) {
- NewSegmentAppendOneByOne("10K 40 70 100K 125 130K");
+ NewSegmentAppendOneByOne("10K 40 70 100K 125 130D30K");
CheckExpectedRangesByTimestamp("{ [10,160) }");
// Seek to 70ms.
@@ -1588,13 +1616,13 @@ TEST_F(SourceBufferStreamTest, Overlap_OneByOne_TrackBuffer) {
CheckExpectedBuffers("10K 40");
// Overlap with a new segment from 0 to 120ms.
wolenetz 2014/07/09 22:42:16 nit: s/120/130? (or 125, see next comment)
acolwell GONE FROM CHROMIUM 2014/07/15 18:49:27 Done.
- NewSegmentAppendOneByOne("0K 30 60 90 120K");
+ NewSegmentAppendOneByOne("0K 30 60 90 120D10K");
wolenetz 2014/07/09 22:42:17 s/120D10K/120D5K/ to better test that old buffer a
acolwell GONE FROM CHROMIUM 2014/07/15 18:49:27 I'm just trying to explicitly document the origina
wolenetz 2014/07/15 21:05:37 Acknowledged.
CheckExpectedRangesByTimestamp("{ [0,160) }");
- // Should return frames 70ms and 100ms from the track buffer, then switch
+ // Should return frame 70ms from the track buffer, then switch
// to the new data at 120K, then switch back to the old data at 130K. The
// frame at 125ms that depended on keyframe 100ms should have been deleted.
- CheckExpectedBuffers("70 100K 120K 130K");
acolwell GONE FROM CHROMIUM 2014/07/09 02:07:02 I haven't 100% convinced myself that this particul
wolenetz 2014/07/09 22:42:17 I think your analysis is correct, and the new beha
+ CheckExpectedBuffers("70 120K 130K");
// Check the final result: should not include data from the track buffer.
SeekToTimestamp(base::TimeDelta::FromMilliseconds(0));
@@ -1606,11 +1634,11 @@ TEST_F(SourceBufferStreamTest, Overlap_OneByOne_TrackBuffer) {
// old : 10K 40 *70* 100K 125 130K
// new : 0K 30 60 90 120K
// after: 0K 30 60 90 *120K* 130K
-// track: 70 100K
+// track: 70
// new : 110K 130
// after: 0K 30 60 90 *110K* 130
TEST_F(SourceBufferStreamTest, Overlap_OneByOne_TrackBuffer2) {
- NewSegmentAppendOneByOne("10K 40 70 100K 125 130K");
+ NewSegmentAppendOneByOne("10K 40 70 100K 125 130D30K");
CheckExpectedRangesByTimestamp("{ [10,160) }");
// Seek to 70ms.
@@ -1619,7 +1647,7 @@ TEST_F(SourceBufferStreamTest, Overlap_OneByOne_TrackBuffer2) {
// Overlap with a new segment from 0 to 120ms; 70ms and 100ms go in track
// buffer.
- NewSegmentAppendOneByOne("0K 30 60 90 120K");
+ NewSegmentAppendOneByOne("0K 30 60 90 120D10K");
CheckExpectedRangesByTimestamp("{ [0,160) }");
// Now overlap the keyframe at 120ms.
@@ -1627,7 +1655,7 @@ TEST_F(SourceBufferStreamTest, Overlap_OneByOne_TrackBuffer2) {
// Should expect buffers 70ms and 100ms from the track buffer. Then it should
wolenetz 2014/07/09 22:42:17 nit: s/expect buffers 70ms and 100ms/return frame
acolwell GONE FROM CHROMIUM 2014/07/15 18:49:26 Done.
// return the keyframe after the track buffer, which is at 110ms.
- CheckExpectedBuffers("70 100K 110K 130");
+ CheckExpectedBuffers("70 110K 130");
}
// Overlap the next keyframe after the end of the track buffer without a
@@ -1635,33 +1663,33 @@ TEST_F(SourceBufferStreamTest, Overlap_OneByOne_TrackBuffer2) {
// old : 10K 40 *70* 100K 125 130K
// new : 0K 30 60 90 120K
// after: 0K 30 60 90 *120K* 130K
-// track: 70 100K
+// track: 70
// new : 50K 80 110 140
// after: 0K 30 50K 80 110 140 * (waiting for keyframe)
-// track: 70 100K 120K 130K
+// track: 70
TEST_F(SourceBufferStreamTest, Overlap_OneByOne_TrackBuffer3) {
- NewSegmentAppendOneByOne("10K 40 70 100K 125 130K");
+ NewSegmentAppendOneByOne("10K 40 70 100K 125 130D30K");
CheckExpectedRangesByTimestamp("{ [10,160) }");
// Seek to 70ms.
SeekToTimestamp(base::TimeDelta::FromMilliseconds(70));
CheckExpectedBuffers("10K 40");
- // Overlap with a new segment from 0 to 120ms; 70ms and 100ms go in track
- // buffer.
- NewSegmentAppendOneByOne("0K 30 60 90 120K");
+ // Overlap with a new segment from 0 to 120ms; 70ms goes in track buffer.
+ NewSegmentAppendOneByOne("0K 30 60 90 120D10K");
CheckExpectedRangesByTimestamp("{ [0,160) }");
// Now overlap the keyframe at 120ms. There's no keyframe after 70ms, so 120ms
wolenetz 2014/07/09 22:42:17 nit: s/*/Now overlap the keyframes at 120ms and 13
acolwell GONE FROM CHROMIUM 2014/07/15 18:49:26 Done.
// and 130ms go into the track buffer.
NewSegmentAppendOneByOne("50K 80 110 140");
+ CheckExpectedRangesByTimestamp("{ [0,170) }");
// Should have all the buffers from the track buffer, then stall.
- CheckExpectedBuffers("70 100K 120K 130K");
+ CheckExpectedBuffers("70");
CheckNoNextBuffer();
// Appending a keyframe should fulfill the read.
- AppendBuffersOneByOne("150K");
+ AppendBuffersOneByOne("150D30K");
CheckExpectedBuffers("150K");
CheckNoNextBuffer();
}
@@ -1676,7 +1704,7 @@ TEST_F(SourceBufferStreamTest, Overlap_OneByOne_TrackBuffer3) {
// after: 0K 30 60 *80K* 110 140
// track: 70
TEST_F(SourceBufferStreamTest, Overlap_OneByOne_TrackBuffer4) {
- NewSegmentAppendOneByOne("10K 40 70 100K 125 130K");
+ NewSegmentAppendOneByOne("10K 40 70 100K 125 130D30K");
CheckExpectedRangesByTimestamp("{ [10,160) }");
// Seek to 70ms.
@@ -1685,7 +1713,7 @@ TEST_F(SourceBufferStreamTest, Overlap_OneByOne_TrackBuffer4) {
// Overlap with a new segment from 0 to 120ms; 70ms and 100ms go in track
// buffer.
- NewSegmentAppendOneByOne("0K 30 60 90 120K");
+ NewSegmentAppendOneByOne("0K 30 60 90 120D10K");
CheckExpectedRangesByTimestamp("{ [0,160) }");
// Now append a keyframe at 80ms.
@@ -1731,13 +1759,13 @@ TEST_F(SourceBufferStreamTest, Overlap_OneByOne_TrackBuffer5) {
// old : 10K 40 *70* 100K 125 130K ... 200K 230
// new : 0K 30 60 90 120K
// after: 0K 30 60 90 *120K* 130K ... 200K 230
-// track: 70 100K
+// track: 70
// old : 0K 30 60 90 *120K* 130K ... 200K 230
// new : 260K 290
// after: 0K 30 60 90 *120K* 130K ... 200K 230 260K 290
-// track: 70 100K
+// track: 70
TEST_F(SourceBufferStreamTest, Overlap_OneByOne_TrackBuffer6) {
- NewSegmentAppendOneByOne("10K 40 70 100K 125 130K");
+ NewSegmentAppendOneByOne("10K 40 70 100K 125 130D30K");
NewSegmentAppendOneByOne("200K 230");
CheckExpectedRangesByTimestamp("{ [10,160) [200,260) }");
@@ -1746,7 +1774,7 @@ TEST_F(SourceBufferStreamTest, Overlap_OneByOne_TrackBuffer6) {
CheckExpectedBuffers("10K 40");
// Overlap with a new segment from 0 to 120ms.
- NewSegmentAppendOneByOne("0K 30 60 90 120K");
+ NewSegmentAppendOneByOne("0K 30 60 90 120D10K");
CheckExpectedRangesByTimestamp("{ [0,160) [200,260) }");
// Verify that 70 gets read out of the track buffer.
@@ -1756,7 +1784,7 @@ TEST_F(SourceBufferStreamTest, Overlap_OneByOne_TrackBuffer6) {
NewSegmentAppendOneByOne("260K 290");
CheckExpectedRangesByTimestamp("{ [0,160) [200,320) }");
- CheckExpectedBuffers("100K 120K 130K");
+ CheckExpectedBuffers("120K 130K");
CheckNoNextBuffer();
// Check the final result: should not include data from the track buffer.
@@ -2122,7 +2150,7 @@ TEST_F(SourceBufferStreamTest, GetNextBuffer_ExhaustThenStartOverlap2) {
CheckNoNextBuffer();
// Append a keyframe with the same timestamp as the last buffer output.
- NewSegmentAppend("120K");
+ NewSegmentAppend("120D30K");
CheckNoNextBuffer();
// Append the rest of the segment and make sure that buffers are returned
@@ -2550,7 +2578,7 @@ TEST_F(SourceBufferStreamTest, GarbageCollection_SaveAppendGOP) {
// Make sure you can continue appending data to this GOP; again, GC should not
// wipe out anything.
- AppendBuffers("120");
+ AppendBuffers("120D30");
CheckExpectedRangesByTimestamp("{ [0,150) }");
// Set memory limit to 100 and append a 2nd range after this without
@@ -2572,7 +2600,7 @@ TEST_F(SourceBufferStreamTest, GarbageCollection_SaveAppendGOP) {
CheckExpectedRangesByTimestamp("{ [290,380) [500,620) }");
// Continue appending to this GOP after GC.
- AppendBuffers("620");
+ AppendBuffers("620D30");
CheckExpectedRangesByTimestamp("{ [290,380) [500,650) }");
}
@@ -2591,7 +2619,7 @@ TEST_F(SourceBufferStreamTest, GarbageCollection_SaveAppendGOP_Middle) {
// This whole GOP should be saved, and should be able to continue appending
// data to it.
CheckExpectedRangesByTimestamp("{ [80,170) }");
- AppendBuffers("170");
+ AppendBuffers("170D30");
CheckExpectedRangesByTimestamp("{ [80,200) }");
// Set memory limit to 100 and append a 2nd range after this without
@@ -2614,7 +2642,7 @@ TEST_F(SourceBufferStreamTest, GarbageCollection_SaveAppendGOP_Middle) {
CheckExpectedRangesByTimestamp("{ [80,200) [500,620) }");
// Continue appending to this GOP after GC.
- AppendBuffers("620");
+ AppendBuffers("620D30");
CheckExpectedRangesByTimestamp("{ [80,200) [500,650) }");
}
@@ -3629,7 +3657,7 @@ TEST_F(SourceBufferStreamTest, Text_CompleteOverlap) {
CheckExpectedRangesByTimestamp("{ [3000,4500) }");
NewSegmentAppend("0K 501K 1001K 1501K 2001K 2501K "
"3001K 3501K 4001K 4501K 5001K");
- CheckExpectedRangesByTimestamp("{ [0,5502) }");
+ CheckExpectedRangesByTimestamp("{ [0,5501) }");
Seek(0);
CheckExpectedBuffers("0K 501K 1001K 1501K 2001K 2501K "
@@ -3641,7 +3669,7 @@ TEST_F(SourceBufferStreamTest, Text_OverlapAfter) {
NewSegmentAppend("0K 500K 1000K 1500K 2000K");
CheckExpectedRangesByTimestamp("{ [0,2500) }");
NewSegmentAppend("1499K 2001K 2501K 3001K");
- CheckExpectedRangesByTimestamp("{ [0,3503) }");
+ CheckExpectedRangesByTimestamp("{ [0,3501) }");
Seek(0);
CheckExpectedBuffers("0K 500K 1000K 1499K 2001K 2501K 3001K");
@@ -3652,22 +3680,22 @@ TEST_F(SourceBufferStreamTest, Text_OverlapBefore) {
NewSegmentAppend("1500K 2000K 2500K 3000K 3500K");
CheckExpectedRangesByTimestamp("{ [1500,4000) }");
NewSegmentAppend("0K 501K 1001K 1501K 2001K");
- CheckExpectedRangesByTimestamp("{ [0,4001) }");
+ CheckExpectedRangesByTimestamp("{ [0,4000) }");
Seek(0);
- CheckExpectedBuffers("0K 501K 1001K 1501K 2001K 2500K 3000K 3500K");
+ CheckExpectedBuffers("0K 501K 1001K 1501K 2001K 3000K 3500K");
}
TEST_F(SourceBufferStreamTest, SpliceFrame_Basic) {
Seek(0);
- NewSegmentAppend("0K S(3K 6 9 10) 15 20 S(25K 30 35) 40");
+ NewSegmentAppend("0K S(3K 6 9D3 10D5) 15 20 S(25K 30D5 35D5) 40");
CheckExpectedBuffers("0K 3K 6 9 C 10 15 20 25K 30 C 35 40");
CheckNoNextBuffer();
}
TEST_F(SourceBufferStreamTest, SpliceFrame_SeekClearsSplice) {
Seek(0);
- NewSegmentAppend("0K S(3K 6 9 10) 15K 20");
+ NewSegmentAppend("0K S(3K 6 9D3 10D5) 15K 20");
CheckExpectedBuffers("0K 3K 6");
SeekToTimestamp(base::TimeDelta::FromMilliseconds(15));
@@ -3677,7 +3705,7 @@ TEST_F(SourceBufferStreamTest, SpliceFrame_SeekClearsSplice) {
TEST_F(SourceBufferStreamTest, SpliceFrame_SeekClearsSpliceFromTrackBuffer) {
Seek(0);
- NewSegmentAppend("0K 2K S(3K 6 9 10) 15K 20");
+ NewSegmentAppend("0K 2K S(3K 6 9D3 10D5) 15K 20");
CheckExpectedBuffers("0K 2K");
// Overlap the existing segment.
@@ -3699,7 +3727,7 @@ TEST_F(SourceBufferStreamTest, SpliceFrame_ConfigChangeWithinSplice) {
Seek(0);
CheckVideoConfig(video_config_);
- NewSegmentAppend("0K S(3K 6C 9 10) 15");
+ NewSegmentAppend("0K S(3K 6C 9D3 10D5) 15");
CheckExpectedBuffers("0K 3K C");
CheckVideoConfig(new_config);
@@ -3712,7 +3740,7 @@ TEST_F(SourceBufferStreamTest, SpliceFrame_ConfigChangeWithinSplice) {
TEST_F(SourceBufferStreamTest, SpliceFrame_BasicFromTrackBuffer) {
Seek(0);
- NewSegmentAppend("0K 5K S(8K 9 10) 20");
+ NewSegmentAppend("0K 5K S(8K 9D1 10D10) 20");
CheckExpectedBuffers("0K 5K");
// Overlap the existing segment.
@@ -3732,7 +3760,7 @@ TEST_F(SourceBufferStreamTest,
Seek(0);
CheckVideoConfig(video_config_);
- NewSegmentAppend("0K 5K S(7K 8C 9 10) 20");
+ NewSegmentAppend("0K 5K S(7K 8C 9D1 10D10) 20");
CheckExpectedBuffers("0K 5K");
// Overlap the existing segment.
@@ -3777,7 +3805,7 @@ TEST_F(SourceBufferStreamTest, Audio_SpliceFrame_NoDoubleSplice) {
Seek(0);
// Create a splice before the first splice which would include it.
- NewSegmentAppend("9K");
+ NewSegmentAppend("9D2K");
wolenetz 2014/07/09 22:42:17 Is D2 necessary since SetAudioStream()->SetStreamI
acolwell GONE FROM CHROMIUM 2014/07/15 18:49:27 Yes. frame_duration_ is not used by string based a
wolenetz 2014/07/15 21:05:37 Acknowledged.
// A splice on top of a splice should result in a discard of the original
// splice and no new splice frame being generated.
@@ -3803,7 +3831,7 @@ TEST_F(SourceBufferStreamTest, Audio_SpliceFrame_CorrectMediaSegmentStartTime) {
CheckExpectedRangesByTimestamp("{ [0,6) }");
NewSegmentAppend("6K 8K 10K");
CheckExpectedRangesByTimestamp("{ [0,12) }");
- NewSegmentAppend("1K 4K");
+ NewSegmentAppend("1K 4D2K");
wolenetz 2014/07/09 22:42:16 ditto
acolwell GONE FROM CHROMIUM 2014/07/15 18:49:26 The duration is only specified here because the no
wolenetz 2014/07/15 21:05:37 Acknowledged.
CheckExpectedRangesByTimestamp("{ [0,12) }");
CheckExpectedBuffers("0K 2K 4K C 1K 4K 6K 8K 10K");
CheckNoNextBuffer();
@@ -3840,9 +3868,9 @@ TEST_F(SourceBufferStreamTest, Audio_SpliceFrame_NoTinySplices) {
// 2ms this results in an overlap of 1ms between the ranges. A splice frame
// should not be generated since it requires at least 2 frames, or 2ms in this
// case, of data to crossfade.
- NewSegmentAppend("0K");
+ NewSegmentAppend("0D2K");
wolenetz 2014/07/09 22:42:17 ditto
acolwell GONE FROM CHROMIUM 2014/07/15 18:49:27 ditto re: making 1 buffer case explicit.
wolenetz 2014/07/15 21:05:37 Acknowledged.
CheckExpectedRangesByTimestamp("{ [0,2) }");
- NewSegmentAppend("1K");
+ NewSegmentAppend("1D2K");
wolenetz 2014/07/09 22:42:17 ditto
acolwell GONE FROM CHROMIUM 2014/07/15 18:49:26 ditto re: making 1 buffer case explicit.
wolenetz 2014/07/15 21:05:37 Acknowledged.
CheckExpectedRangesByTimestamp("{ [0,3) }");
CheckExpectedBuffers("0K 1K");
CheckNoNextBuffer();
« media/base/stream_parser_buffer.cc ('K') | « media/filters/source_buffer_stream.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698