Index: media/filters/frame_processor_unittest.cc |
diff --git a/media/filters/frame_processor_unittest.cc b/media/filters/frame_processor_unittest.cc |
index 39a689e695772742cd0ac6629e7b8143f37161a3..1f5b44ebe73dc7284fecd7264d4ce276091b321c 100644 |
--- a/media/filters/frame_processor_unittest.cc |
+++ b/media/filters/frame_processor_unittest.cc |
@@ -61,7 +61,6 @@ class FrameProcessorTest : public testing::TestWithParam<bool> { |
base::Unretained(&callbacks_)), |
new MediaLog())), |
append_window_end_(kInfiniteDuration()), |
- new_media_segment_(false), |
audio_id_(FrameProcessor::kAudioTrackId), |
video_id_(FrameProcessor::kVideoTrackId), |
frame_duration_(base::TimeDelta::FromMilliseconds(10)) {} |
@@ -150,9 +149,8 @@ class FrameProcessorTest : public testing::TestWithParam<bool> { |
ASSERT_TRUE(frame_processor_->ProcessFrames( |
StringToBufferQueue(audio_timestamps, audio_id_, DemuxerStream::AUDIO), |
StringToBufferQueue(video_timestamps, video_id_, DemuxerStream::VIDEO), |
- empty_text_buffers_, |
- append_window_start_, append_window_end_, |
- &new_media_segment_, ×tamp_offset_)); |
+ empty_text_buffers_, append_window_start_, append_window_end_, |
+ ×tamp_offset_)); |
} |
void CheckExpectedRangesByTimestamp(ChunkDemuxerStream* stream, |
@@ -240,13 +238,16 @@ class FrameProcessorTest : public testing::TestWithParam<bool> { |
CheckReadStalls(stream); |
} |
+ bool in_coded_frame_group() { |
+ return frame_processor_->in_coded_frame_group_; |
+ } |
+ |
base::MessageLoop message_loop_; |
StrictMock<FrameProcessorTestCallbackHelper> callbacks_; |
scoped_ptr<FrameProcessor> frame_processor_; |
base::TimeDelta append_window_start_; |
base::TimeDelta append_window_end_; |
- bool new_media_segment_; |
base::TimeDelta timestamp_offset_; |
scoped_ptr<ChunkDemuxerStream> audio_; |
scoped_ptr<ChunkDemuxerStream> video_; |
@@ -314,15 +315,13 @@ class FrameProcessorTest : public testing::TestWithParam<bool> { |
TEST_F(FrameProcessorTest, WrongTypeInAppendedBuffer) { |
AddTestTracks(HAS_AUDIO); |
- new_media_segment_ = true; |
+ EXPECT_FALSE(in_coded_frame_group()); |
ASSERT_FALSE(frame_processor_->ProcessFrames( |
- StringToBufferQueue("0K", audio_id_, DemuxerStream::VIDEO), |
- empty_queue_, |
- empty_text_buffers_, |
- append_window_start_, append_window_end_, |
- &new_media_segment_, ×tamp_offset_)); |
- EXPECT_TRUE(new_media_segment_); |
+ StringToBufferQueue("0K", audio_id_, DemuxerStream::VIDEO), empty_queue_, |
+ empty_text_buffers_, append_window_start_, append_window_end_, |
+ ×tamp_offset_)); |
+ EXPECT_FALSE(in_coded_frame_group()); |
EXPECT_EQ(base::TimeDelta(), timestamp_offset_); |
CheckExpectedRangesByTimestamp(audio_.get(), "{ }"); |
CheckReadStalls(audio_.get()); |
@@ -330,15 +329,12 @@ TEST_F(FrameProcessorTest, WrongTypeInAppendedBuffer) { |
TEST_F(FrameProcessorTest, NonMonotonicallyIncreasingTimestampInOneCall) { |
AddTestTracks(HAS_AUDIO); |
- new_media_segment_ = true; |
ASSERT_FALSE(frame_processor_->ProcessFrames( |
StringToBufferQueue("10K 0K", audio_id_, DemuxerStream::AUDIO), |
- empty_queue_, |
- empty_text_buffers_, |
- append_window_start_, append_window_end_, |
- &new_media_segment_, ×tamp_offset_)); |
- EXPECT_TRUE(new_media_segment_); |
+ empty_queue_, empty_text_buffers_, append_window_start_, |
+ append_window_end_, ×tamp_offset_)); |
+ EXPECT_FALSE(in_coded_frame_group()); |
EXPECT_EQ(base::TimeDelta(), timestamp_offset_); |
CheckExpectedRangesByTimestamp(audio_.get(), "{ }"); |
CheckReadStalls(audio_.get()); |
@@ -348,13 +344,12 @@ TEST_P(FrameProcessorTest, AudioOnly_SingleFrame) { |
// Tests A: P(A) -> (a) |
InSequence s; |
AddTestTracks(HAS_AUDIO); |
- new_media_segment_ = true; |
if (GetParam()) |
frame_processor_->SetSequenceMode(true); |
EXPECT_CALL(callbacks_, PossibleDurationIncrease(frame_duration_)); |
ProcessFrames("0K", ""); |
- EXPECT_FALSE(new_media_segment_); |
+ EXPECT_TRUE(in_coded_frame_group()); |
EXPECT_EQ(base::TimeDelta(), timestamp_offset_); |
CheckExpectedRangesByTimestamp(audio_.get(), "{ [0,10) }"); |
CheckReadsThenReadStalls(audio_.get(), "0"); |
@@ -364,13 +359,12 @@ TEST_P(FrameProcessorTest, VideoOnly_SingleFrame) { |
// Tests V: P(V) -> (v) |
InSequence s; |
AddTestTracks(HAS_VIDEO); |
- new_media_segment_ = true; |
if (GetParam()) |
frame_processor_->SetSequenceMode(true); |
EXPECT_CALL(callbacks_, PossibleDurationIncrease(frame_duration_)); |
ProcessFrames("", "0K"); |
- EXPECT_FALSE(new_media_segment_); |
+ EXPECT_TRUE(in_coded_frame_group()); |
EXPECT_EQ(base::TimeDelta(), timestamp_offset_); |
CheckExpectedRangesByTimestamp(video_.get(), "{ [0,10) }"); |
CheckReadsThenReadStalls(video_.get(), "0"); |
@@ -380,13 +374,12 @@ TEST_P(FrameProcessorTest, AudioOnly_TwoFrames) { |
// Tests A: P(A0, A10) -> (a0, a10) |
InSequence s; |
AddTestTracks(HAS_AUDIO); |
- new_media_segment_ = true; |
if (GetParam()) |
frame_processor_->SetSequenceMode(true); |
EXPECT_CALL(callbacks_, PossibleDurationIncrease(frame_duration_ * 2)); |
ProcessFrames("0K 10K", ""); |
- EXPECT_FALSE(new_media_segment_); |
+ EXPECT_TRUE(in_coded_frame_group()); |
EXPECT_EQ(base::TimeDelta(), timestamp_offset_); |
CheckExpectedRangesByTimestamp(audio_.get(), "{ [0,20) }"); |
CheckReadsThenReadStalls(audio_.get(), "0 10"); |
@@ -396,7 +389,6 @@ TEST_P(FrameProcessorTest, AudioOnly_SetOffsetThenSingleFrame) { |
// Tests A: STSO(50)+P(A0) -> TSO==50,(a0@50) |
InSequence s; |
AddTestTracks(HAS_AUDIO); |
- new_media_segment_ = true; |
if (GetParam()) |
frame_processor_->SetSequenceMode(true); |
@@ -404,7 +396,7 @@ TEST_P(FrameProcessorTest, AudioOnly_SetOffsetThenSingleFrame) { |
SetTimestampOffset(fifty_ms); |
EXPECT_CALL(callbacks_, PossibleDurationIncrease(frame_duration_ + fifty_ms)); |
ProcessFrames("0K", ""); |
- EXPECT_FALSE(new_media_segment_); |
+ EXPECT_TRUE(in_coded_frame_group()); |
EXPECT_EQ(fifty_ms, timestamp_offset_); |
CheckExpectedRangesByTimestamp(audio_.get(), "{ [50,60) }"); |
@@ -419,7 +411,6 @@ TEST_P(FrameProcessorTest, AudioOnly_SetOffsetThenFrameTimestampBelowOffset) { |
// if segments mode: TSO==50,(a20@70) |
InSequence s; |
AddTestTracks(HAS_AUDIO); |
- new_media_segment_ = true; |
bool using_sequence_mode = GetParam(); |
if (using_sequence_mode) |
frame_processor_->SetSequenceMode(true); |
@@ -437,7 +428,7 @@ TEST_P(FrameProcessorTest, AudioOnly_SetOffsetThenFrameTimestampBelowOffset) { |
} |
ProcessFrames("20K", ""); |
- EXPECT_FALSE(new_media_segment_); |
+ EXPECT_TRUE(in_coded_frame_group()); |
// We do not stall on reading without seeking to 50ms / 70ms due to |
// SourceBufferStream::kSeekToStartFudgeRoom(). |
@@ -456,19 +447,18 @@ TEST_P(FrameProcessorTest, AudioOnly_SequentialProcessFrames) { |
// Tests A: P(A0,A10)+P(A20,A30) -> (a0,a10,a20,a30) |
InSequence s; |
AddTestTracks(HAS_AUDIO); |
- new_media_segment_ = true; |
if (GetParam()) |
frame_processor_->SetSequenceMode(true); |
EXPECT_CALL(callbacks_, PossibleDurationIncrease(frame_duration_ * 2)); |
ProcessFrames("0K 10K", ""); |
- EXPECT_FALSE(new_media_segment_); |
+ EXPECT_TRUE(in_coded_frame_group()); |
EXPECT_EQ(base::TimeDelta(), timestamp_offset_); |
CheckExpectedRangesByTimestamp(audio_.get(), "{ [0,20) }"); |
EXPECT_CALL(callbacks_, PossibleDurationIncrease(frame_duration_ * 4)); |
ProcessFrames("20K 30K", ""); |
- EXPECT_FALSE(new_media_segment_); |
+ EXPECT_TRUE(in_coded_frame_group()); |
EXPECT_EQ(base::TimeDelta(), timestamp_offset_); |
CheckExpectedRangesByTimestamp(audio_.get(), "{ [0,40) }"); |
@@ -482,7 +472,6 @@ TEST_P(FrameProcessorTest, AudioOnly_NonSequentialProcessFrames) { |
// if segments mode: TSO==0,(a0,a10,a20,a30) |
InSequence s; |
AddTestTracks(HAS_AUDIO); |
- new_media_segment_ = true; |
bool using_sequence_mode = GetParam(); |
if (using_sequence_mode) { |
frame_processor_->SetSequenceMode(true); |
@@ -492,7 +481,7 @@ TEST_P(FrameProcessorTest, AudioOnly_NonSequentialProcessFrames) { |
} |
ProcessFrames("20K 30K", ""); |
- EXPECT_FALSE(new_media_segment_); |
+ EXPECT_TRUE(in_coded_frame_group()); |
if (using_sequence_mode) { |
CheckExpectedRangesByTimestamp(audio_.get(), "{ [0,20) }"); |
@@ -505,7 +494,7 @@ TEST_P(FrameProcessorTest, AudioOnly_NonSequentialProcessFrames) { |
} |
ProcessFrames("0K 10K", ""); |
- EXPECT_FALSE(new_media_segment_); |
+ EXPECT_TRUE(in_coded_frame_group()); |
if (using_sequence_mode) { |
CheckExpectedRangesByTimestamp(audio_.get(), "{ [0,40) }"); |
@@ -529,20 +518,19 @@ TEST_P(FrameProcessorTest, AudioVideo_SequentialProcessFrames) { |
// (a0,a10,a20,a30,a40);(v0,v10,v20,v30) |
InSequence s; |
AddTestTracks(HAS_AUDIO | HAS_VIDEO); |
- new_media_segment_ = true; |
if (GetParam()) |
frame_processor_->SetSequenceMode(true); |
EXPECT_CALL(callbacks_, PossibleDurationIncrease(frame_duration_ * 3)); |
ProcessFrames("0K 10K", "0K 10 20"); |
- EXPECT_FALSE(new_media_segment_); |
+ EXPECT_TRUE(in_coded_frame_group()); |
EXPECT_EQ(base::TimeDelta(), timestamp_offset_); |
CheckExpectedRangesByTimestamp(audio_.get(), "{ [0,20) }"); |
CheckExpectedRangesByTimestamp(video_.get(), "{ [0,30) }"); |
EXPECT_CALL(callbacks_, PossibleDurationIncrease(frame_duration_ * 5)); |
ProcessFrames("20K 30K 40K", "30"); |
- EXPECT_FALSE(new_media_segment_); |
+ EXPECT_TRUE(in_coded_frame_group()); |
EXPECT_EQ(base::TimeDelta(), timestamp_offset_); |
CheckExpectedRangesByTimestamp(audio_.get(), "{ [0,50) }"); |
CheckExpectedRangesByTimestamp(video_.get(), "{ [0,40) }"); |
@@ -559,7 +547,6 @@ TEST_P(FrameProcessorTest, AudioVideo_Discontinuity) { |
// MergeBufferQueues() behavior. |
InSequence s; |
AddTestTracks(HAS_AUDIO | HAS_VIDEO); |
- new_media_segment_ = true; |
bool using_sequence_mode = GetParam(); |
if (using_sequence_mode) { |
frame_processor_->SetSequenceMode(true); |
@@ -569,7 +556,7 @@ TEST_P(FrameProcessorTest, AudioVideo_Discontinuity) { |
} |
ProcessFrames("0K 10K 30K 40K 50K", "0K 10 40 50K"); |
- EXPECT_FALSE(new_media_segment_); |
+ EXPECT_TRUE(in_coded_frame_group()); |
if (using_sequence_mode) { |
EXPECT_EQ(frame_duration_, timestamp_offset_); |
@@ -594,14 +581,13 @@ TEST_P(FrameProcessorTest, |
AppendWindowFilterOfNegativeBufferTimestampsWithPrerollDiscard) { |
InSequence s; |
AddTestTracks(HAS_AUDIO); |
- new_media_segment_ = true; |
if (GetParam()) |
frame_processor_->SetSequenceMode(true); |
SetTimestampOffset(frame_duration_ * -2); |
EXPECT_CALL(callbacks_, PossibleDurationIncrease(frame_duration_)); |
ProcessFrames("0K 10K 20K", ""); |
- EXPECT_FALSE(new_media_segment_); |
+ EXPECT_TRUE(in_coded_frame_group()); |
EXPECT_EQ(frame_duration_ * -2, timestamp_offset_); |
CheckExpectedRangesByTimestamp(audio_.get(), "{ [0,10) }"); |
CheckReadsThenReadStalls(audio_.get(), "0:10P 0:20"); |
@@ -610,7 +596,6 @@ TEST_P(FrameProcessorTest, |
TEST_P(FrameProcessorTest, AppendWindowFilterWithInexactPreroll) { |
InSequence s; |
AddTestTracks(HAS_AUDIO); |
- new_media_segment_ = true; |
if (GetParam()) |
frame_processor_->SetSequenceMode(true); |
SetTimestampOffset(-frame_duration_); |
@@ -623,7 +608,6 @@ TEST_P(FrameProcessorTest, AppendWindowFilterWithInexactPreroll) { |
TEST_P(FrameProcessorTest, AppendWindowFilterWithInexactPreroll_2) { |
InSequence s; |
AddTestTracks(HAS_AUDIO); |
- new_media_segment_ = true; |
if (GetParam()) |
frame_processor_->SetSequenceMode(true); |
SetTimestampOffset(-frame_duration_); |
@@ -636,7 +620,6 @@ TEST_P(FrameProcessorTest, AppendWindowFilterWithInexactPreroll_2) { |
TEST_P(FrameProcessorTest, AllowNegativeFramePTSAndDTSBeforeOffsetAdjustment) { |
InSequence s; |
AddTestTracks(HAS_AUDIO); |
- new_media_segment_ = true; |
bool using_sequence_mode = GetParam(); |
if (using_sequence_mode) { |
frame_processor_->SetSequenceMode(true); |
@@ -664,7 +647,6 @@ TEST_P(FrameProcessorTest, PartialAppendWindowFilterNoDiscontinuity) { |
// trimmed frame. |
InSequence s; |
AddTestTracks(HAS_AUDIO); |
- new_media_segment_ = true; |
if (GetParam()) |
frame_processor_->SetSequenceMode(true); |
EXPECT_CALL(callbacks_, |
@@ -684,7 +666,6 @@ TEST_P(FrameProcessorTest, |
// frame that originally had DTS > PTS. |
InSequence s; |
AddTestTracks(HAS_AUDIO); |
- new_media_segment_ = true; |
bool using_sequence_mode = GetParam(); |
if (using_sequence_mode) { |
frame_processor_->SetSequenceMode(true); |
@@ -723,7 +704,6 @@ TEST_P(FrameProcessorTest, PartialAppendWindowFilterNoNewMediaSegment) { |
// discontinuity. |
InSequence s; |
AddTestTracks(HAS_AUDIO | HAS_VIDEO); |
- new_media_segment_ = true; |
frame_processor_->SetSequenceMode(GetParam()); |
EXPECT_CALL(callbacks_, PossibleDurationIncrease(frame_duration_)); |
ProcessFrames("", "0K"); |
@@ -733,7 +713,7 @@ TEST_P(FrameProcessorTest, PartialAppendWindowFilterNoNewMediaSegment) { |
ProcessFrames("", "10"); |
EXPECT_EQ(base::TimeDelta(), timestamp_offset_); |
- EXPECT_FALSE(new_media_segment_); |
+ EXPECT_TRUE(in_coded_frame_group()); |
CheckExpectedRangesByTimestamp(audio_.get(), "{ [0,5) }"); |
CheckExpectedRangesByTimestamp(video_.get(), "{ [0,20) }"); |
CheckReadsThenReadStalls(audio_.get(), "0:-5"); |