Index: media/filters/video_frame_stream_unittest.cc |
diff --git a/media/filters/video_frame_stream_unittest.cc b/media/filters/video_frame_stream_unittest.cc |
index 79a8d9fa3ddd2a141ea1db894733edc3867a1e37..fa95c81d1884cb83278fad1789c3d134bc04ff31 100644 |
--- a/media/filters/video_frame_stream_unittest.cc |
+++ b/media/filters/video_frame_stream_unittest.cc |
@@ -108,6 +108,7 @@ class VideoFrameStreamTest : public testing::TestWithParam<bool> { |
DEMUXER_READ_NORMAL, |
DEMUXER_READ_CONFIG_CHANGE, |
DECODER_INIT, |
+ DECODER_REINIT, |
DECODER_READ, |
DECODER_RESET, |
DECODER_STOP |
@@ -137,6 +138,12 @@ class VideoFrameStreamTest : public testing::TestWithParam<bool> { |
message_loop_.RunUntilIdle(); |
break; |
+ case DECODER_REINIT: |
+ decoder_->HoldNextInit(); |
+ ReadUntilPending(); |
+ message_loop_.RunUntilIdle(); |
+ break; |
+ |
case DECODER_READ: |
decoder_->HoldNextRead(); |
ReadUntilPending(); |
@@ -176,6 +183,10 @@ class VideoFrameStreamTest : public testing::TestWithParam<bool> { |
decoder_->SatisfyInit(); |
break; |
+ case DECODER_REINIT: |
+ decoder_->SatisfyInit(); |
+ break; |
+ |
case DECODER_READ: |
decoder_->SatisfyRead(); |
break; |
@@ -269,12 +280,32 @@ TEST_P(VideoFrameStreamTest, Read_AfterReset) { |
ReadFrame(); |
} |
+// No Reset() before initialization is successfully completed. |
+ |
TEST_P(VideoFrameStreamTest, Reset_AfterInitialization) { |
Initialize(); |
Reset(); |
} |
-TEST_P(VideoFrameStreamTest, Reset_DuringNormalDemuxerRead) { |
+TEST_P(VideoFrameStreamTest, Reset_DuringReinitialization) { |
+ Initialize(); |
+ EnterPendingState(DECODER_REINIT); |
+ video_frame_stream_->Reset( |
+ base::Bind(&VideoFrameStreamTest::OnReset, base::Unretained(this))); |
+ EXPECT_CALL(*this, OnReset()); |
+ SatisfyPendingCallback(DECODER_REINIT); |
+ ReadFrame(); |
+} |
+ |
+TEST_P(VideoFrameStreamTest, Reset_AfterReinitialization) { |
+ Initialize(); |
+ EnterPendingState(DECODER_REINIT); |
+ SatisfyPendingCallback(DECODER_REINIT); |
+ Reset(); |
+ ReadFrame(); |
+} |
+ |
+TEST_P(VideoFrameStreamTest, Reset_DuringDemuxerRead_Normal) { |
Initialize(); |
EnterPendingState(DEMUXER_READ_NORMAL); |
EnterPendingState(DECODER_RESET); |
@@ -282,7 +313,7 @@ TEST_P(VideoFrameStreamTest, Reset_DuringNormalDemuxerRead) { |
SatisfyPendingCallback(DECODER_RESET); |
} |
-TEST_P(VideoFrameStreamTest, Reset_DuringConfigChangeDemuxerRead) { |
+TEST_P(VideoFrameStreamTest, Reset_DuringDemuxerRead_ConfigChange) { |
Initialize(); |
EnterPendingState(DEMUXER_READ_CONFIG_CHANGE); |
EnterPendingState(DECODER_RESET); |
@@ -304,7 +335,7 @@ TEST_P(VideoFrameStreamTest, Reset_AfterNormalRead) { |
Reset(); |
} |
-TEST_P(VideoFrameStreamTest, Reset_AfterConfigChangeRead) { |
+TEST_P(VideoFrameStreamTest, Reset_AfterDemuxerRead_ConfigChange) { |
Initialize(); |
EnterPendingState(DEMUXER_READ_CONFIG_CHANGE); |
SatisfyPendingCallback(DEMUXER_READ_CONFIG_CHANGE); |
@@ -331,7 +362,22 @@ TEST_P(VideoFrameStreamTest, Stop_AfterInitialization) { |
Stop(); |
} |
-TEST_P(VideoFrameStreamTest, Stop_DuringNormalDemuxerRead) { |
+TEST_P(VideoFrameStreamTest, Stop_DuringReinitialization) { |
+ Initialize(); |
+ EnterPendingState(DECODER_REINIT); |
+ EnterPendingState(DECODER_STOP); |
+ SatisfyPendingCallback(DECODER_REINIT); |
+ SatisfyPendingCallback(DECODER_STOP); |
+} |
+ |
+TEST_P(VideoFrameStreamTest, Stop_AfterReinitialization) { |
+ Initialize(); |
+ EnterPendingState(DECODER_REINIT); |
+ SatisfyPendingCallback(DECODER_REINIT); |
+ Stop(); |
+} |
+ |
+TEST_P(VideoFrameStreamTest, Stop_DuringDemuxerRead_Normal) { |
Initialize(); |
EnterPendingState(DEMUXER_READ_NORMAL); |
EnterPendingState(DECODER_STOP); |
@@ -339,7 +385,7 @@ TEST_P(VideoFrameStreamTest, Stop_DuringNormalDemuxerRead) { |
SatisfyPendingCallback(DECODER_STOP); |
} |
-TEST_P(VideoFrameStreamTest, Stop_DuringConfigChangeDemuxerRead) { |
+TEST_P(VideoFrameStreamTest, Stop_DuringDemuxerRead_ConfigChange) { |
Initialize(); |
EnterPendingState(DEMUXER_READ_CONFIG_CHANGE); |
EnterPendingState(DECODER_STOP); |