| OLD | NEW |
| 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 #include <utility> | 5 #include <utility> |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/callback_helpers.h" | 8 #include "base/callback_helpers.h" |
| 9 #include "base/macros.h" | 9 #include "base/macros.h" |
| 10 #include "base/message_loop/message_loop.h" | 10 #include "base/message_loop/message_loop.h" |
| (...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 85 decoder2_->EnableEncryptedConfigSupport(); | 85 decoder2_->EnableEncryptedConfigSupport(); |
| 86 decoder3_->EnableEncryptedConfigSupport(); | 86 decoder3_->EnableEncryptedConfigSupport(); |
| 87 } | 87 } |
| 88 | 88 |
| 89 ScopedVector<VideoDecoder> decoders; | 89 ScopedVector<VideoDecoder> decoders; |
| 90 decoders.push_back(decoder1_); | 90 decoders.push_back(decoder1_); |
| 91 decoders.push_back(decoder2_); | 91 decoders.push_back(decoder2_); |
| 92 decoders.push_back(decoder3_); | 92 decoders.push_back(decoder3_); |
| 93 | 93 |
| 94 video_frame_stream_.reset(new VideoFrameStream( | 94 video_frame_stream_.reset(new VideoFrameStream( |
| 95 message_loop_.task_runner(), std::move(decoders), new MediaLog())); | 95 message_loop_.task_runner(), std::move(decoders), &media_log_)); |
| 96 | 96 |
| 97 if (GetParam().is_encrypted && GetParam().has_decryptor) { | 97 if (GetParam().is_encrypted && GetParam().has_decryptor) { |
| 98 decryptor_.reset(new NiceMock<MockDecryptor>()); | 98 decryptor_.reset(new NiceMock<MockDecryptor>()); |
| 99 | 99 |
| 100 // Decryptor can only decrypt (not decrypt-and-decode) so that | 100 // Decryptor can only decrypt (not decrypt-and-decode) so that |
| 101 // DecryptingDemuxerStream will be used. | 101 // DecryptingDemuxerStream will be used. |
| 102 EXPECT_CALL(*decryptor_, InitializeVideoDecoder(_, _)) | 102 EXPECT_CALL(*decryptor_, InitializeVideoDecoder(_, _)) |
| 103 .WillRepeatedly(RunCallback<1>(false)); | 103 .WillRepeatedly(RunCallback<1>(false)); |
| 104 EXPECT_CALL(*decryptor_, Decrypt(_, _, _)) | 104 EXPECT_CALL(*decryptor_, Decrypt(_, _, _)) |
| 105 .WillRepeatedly(Invoke(this, &VideoFrameStreamTest::Decrypt)); | 105 .WillRepeatedly(Invoke(this, &VideoFrameStreamTest::Decrypt)); |
| (...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 357 SatisfyPendingCallback(DECODER_RESET); | 357 SatisfyPendingCallback(DECODER_RESET); |
| 358 } | 358 } |
| 359 | 359 |
| 360 void ReadUntilDecoderReinitialized(FakeVideoDecoder* decoder) { | 360 void ReadUntilDecoderReinitialized(FakeVideoDecoder* decoder) { |
| 361 EnterPendingState(DECODER_REINIT, decoder); | 361 EnterPendingState(DECODER_REINIT, decoder); |
| 362 SatisfyPendingCallback(DECODER_REINIT, decoder); | 362 SatisfyPendingCallback(DECODER_REINIT, decoder); |
| 363 } | 363 } |
| 364 | 364 |
| 365 base::MessageLoop message_loop_; | 365 base::MessageLoop message_loop_; |
| 366 | 366 |
| 367 MediaLog media_log_; |
| 367 std::unique_ptr<VideoFrameStream> video_frame_stream_; | 368 std::unique_ptr<VideoFrameStream> video_frame_stream_; |
| 368 std::unique_ptr<FakeDemuxerStream> demuxer_stream_; | 369 std::unique_ptr<FakeDemuxerStream> demuxer_stream_; |
| 369 std::unique_ptr<StrictMock<MockCdmContext>> cdm_context_; | 370 std::unique_ptr<StrictMock<MockCdmContext>> cdm_context_; |
| 370 | 371 |
| 371 // Use NiceMock since we don't care about most of calls on the decryptor, | 372 // Use NiceMock since we don't care about most of calls on the decryptor, |
| 372 // e.g. RegisterNewKeyCB(). | 373 // e.g. RegisterNewKeyCB(). |
| 373 std::unique_ptr<NiceMock<MockDecryptor>> decryptor_; | 374 std::unique_ptr<NiceMock<MockDecryptor>> decryptor_; |
| 374 | 375 |
| 375 // Three decoders are needed to test that decoder fallback can occur more than | 376 // Three decoders are needed to test that decoder fallback can occur more than |
| 376 // once on a config change. They are owned by |video_frame_stream_|. | 377 // once on a config change. They are owned by |video_frame_stream_|. |
| (...skipping 744 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1121 | 1122 |
| 1122 TEST_P(VideoFrameStreamTest, Destroy_DuringFallbackDecoderSelection) { | 1123 TEST_P(VideoFrameStreamTest, Destroy_DuringFallbackDecoderSelection) { |
| 1123 Initialize(); | 1124 Initialize(); |
| 1124 decoder1_->SimulateFailureToInit(); | 1125 decoder1_->SimulateFailureToInit(); |
| 1125 EnterPendingState(DECODER_REINIT); | 1126 EnterPendingState(DECODER_REINIT); |
| 1126 decoder2_->HoldNextInit(); | 1127 decoder2_->HoldNextInit(); |
| 1127 SatisfyPendingCallback(DECODER_REINIT); | 1128 SatisfyPendingCallback(DECODER_REINIT); |
| 1128 } | 1129 } |
| 1129 | 1130 |
| 1130 } // namespace media | 1131 } // namespace media |
| OLD | NEW |