| Index: media/filters/fake_demuxer_stream_unittest.cc
|
| diff --git a/media/filters/fake_demuxer_stream_unittest.cc b/media/filters/fake_demuxer_stream_unittest.cc
|
| deleted file mode 100644
|
| index 14bd86c0e2b1933b76339cba4166d03314bcb37d..0000000000000000000000000000000000000000
|
| --- a/media/filters/fake_demuxer_stream_unittest.cc
|
| +++ /dev/null
|
| @@ -1,286 +0,0 @@
|
| -// Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#include "base/basictypes.h"
|
| -#include "base/bind.h"
|
| -#include "base/memory/scoped_ptr.h"
|
| -#include "base/message_loop/message_loop.h"
|
| -#include "media/base/decoder_buffer.h"
|
| -#include "media/base/demuxer_stream.h"
|
| -#include "media/filters/fake_demuxer_stream.h"
|
| -#include "testing/gtest/include/gtest/gtest.h"
|
| -
|
| -namespace media {
|
| -
|
| -const int kNumBuffersInOneConfig = 9;
|
| -const int kNumBuffersToReadFirst = 5;
|
| -const int kNumConfigs = 3;
|
| -static_assert(kNumBuffersToReadFirst < kNumBuffersInOneConfig,
|
| - "do not read too many buffers");
|
| -static_assert(kNumConfigs > 0,
|
| - "need multiple configs to trigger config change");
|
| -
|
| -class FakeDemuxerStreamTest : public testing::Test {
|
| - public:
|
| - FakeDemuxerStreamTest()
|
| - : status_(DemuxerStream::kAborted),
|
| - read_pending_(false),
|
| - num_buffers_received_(0) {}
|
| - ~FakeDemuxerStreamTest() override {}
|
| -
|
| - void BufferReady(DemuxerStream::Status status,
|
| - const scoped_refptr<DecoderBuffer>& buffer) {
|
| - DCHECK(read_pending_);
|
| - read_pending_ = false;
|
| - status_ = status;
|
| - buffer_ = buffer;
|
| - if (status == DemuxerStream::kOk && !buffer->end_of_stream())
|
| - num_buffers_received_++;
|
| - }
|
| -
|
| - enum ReadResult {
|
| - OK,
|
| - ABORTED,
|
| - CONFIG_CHANGED,
|
| - EOS,
|
| - PENDING
|
| - };
|
| -
|
| - void EnterNormalReadState() {
|
| - stream_.reset(
|
| - new FakeDemuxerStream(kNumConfigs, kNumBuffersInOneConfig, false));
|
| - for (int i = 0; i < kNumBuffersToReadFirst; ++i)
|
| - ReadAndExpect(OK);
|
| - DCHECK_EQ(kNumBuffersToReadFirst, num_buffers_received_);
|
| - }
|
| -
|
| - void EnterBeforeEOSState() {
|
| - stream_.reset(new FakeDemuxerStream(1, kNumBuffersInOneConfig, false));
|
| - for (int i = 0; i < kNumBuffersInOneConfig; ++i)
|
| - ReadAndExpect(OK);
|
| - DCHECK_EQ(kNumBuffersInOneConfig, num_buffers_received_);
|
| - }
|
| -
|
| - void ExpectReadResult(ReadResult result) {
|
| - switch (result) {
|
| - case OK:
|
| - EXPECT_FALSE(read_pending_);
|
| - EXPECT_EQ(DemuxerStream::kOk, status_);
|
| - ASSERT_TRUE(buffer_.get());
|
| - EXPECT_FALSE(buffer_->end_of_stream());
|
| - break;
|
| -
|
| - case ABORTED:
|
| - EXPECT_FALSE(read_pending_);
|
| - EXPECT_EQ(DemuxerStream::kAborted, status_);
|
| - EXPECT_FALSE(buffer_.get());
|
| - break;
|
| -
|
| - case CONFIG_CHANGED:
|
| - EXPECT_TRUE(stream_->SupportsConfigChanges());
|
| - EXPECT_FALSE(read_pending_);
|
| - EXPECT_EQ(DemuxerStream::kConfigChanged, status_);
|
| - EXPECT_FALSE(buffer_.get());
|
| - break;
|
| -
|
| - case EOS:
|
| - EXPECT_FALSE(read_pending_);
|
| - EXPECT_EQ(DemuxerStream::kOk, status_);
|
| - ASSERT_TRUE(buffer_.get());
|
| - EXPECT_TRUE(buffer_->end_of_stream());
|
| - break;
|
| -
|
| - case PENDING:
|
| - EXPECT_TRUE(read_pending_);
|
| - break;
|
| - }
|
| - }
|
| -
|
| - void ReadAndExpect(ReadResult result) {
|
| - EXPECT_FALSE(read_pending_);
|
| - read_pending_ = true;
|
| - stream_->Read(base::Bind(&FakeDemuxerStreamTest::BufferReady,
|
| - base::Unretained(this)));
|
| - message_loop_.RunUntilIdle();
|
| - ExpectReadResult(result);
|
| - }
|
| -
|
| - void ReadUntilPending() {
|
| - while (1) {
|
| - read_pending_ = true;
|
| - stream_->Read(base::Bind(&FakeDemuxerStreamTest::BufferReady,
|
| - base::Unretained(this)));
|
| - message_loop_.RunUntilIdle();
|
| - if (read_pending_)
|
| - break;
|
| - }
|
| - }
|
| -
|
| - void SatisfyReadAndExpect(ReadResult result) {
|
| - EXPECT_TRUE(read_pending_);
|
| - stream_->SatisfyRead();
|
| - message_loop_.RunUntilIdle();
|
| - ExpectReadResult(result);
|
| - }
|
| -
|
| - void Reset() {
|
| - bool had_read_pending = read_pending_;
|
| - stream_->Reset();
|
| - message_loop_.RunUntilIdle();
|
| -
|
| - EXPECT_FALSE(read_pending_);
|
| - if (had_read_pending)
|
| - ExpectReadResult(ABORTED);
|
| - }
|
| -
|
| - void ReadAllBuffers(int num_configs, int num_buffers_in_one_config) {
|
| - DCHECK_EQ(0, num_buffers_received_);
|
| - for (int i = 0; i < num_configs; ++i) {
|
| - for (int j = 0; j < num_buffers_in_one_config; ++j) {
|
| - ReadAndExpect(OK);
|
| - EXPECT_EQ(num_buffers_received_, stream_->num_buffers_returned());
|
| - }
|
| -
|
| - if (i == num_configs - 1)
|
| - ReadAndExpect(EOS);
|
| - else
|
| - ReadAndExpect(CONFIG_CHANGED);
|
| - }
|
| -
|
| - // Will always get EOS after we hit EOS.
|
| - ReadAndExpect(EOS);
|
| -
|
| - EXPECT_EQ(num_configs * num_buffers_in_one_config, num_buffers_received_);
|
| - }
|
| -
|
| - void TestRead(int num_configs,
|
| - int num_buffers_in_one_config,
|
| - bool is_encrypted) {
|
| - stream_.reset(new FakeDemuxerStream(
|
| - num_configs, num_buffers_in_one_config, is_encrypted));
|
| -
|
| - const VideoDecoderConfig& config = stream_->video_decoder_config();
|
| - EXPECT_TRUE(config.IsValidConfig());
|
| - EXPECT_EQ(is_encrypted, config.is_encrypted());
|
| -
|
| - ReadAllBuffers(num_configs, num_buffers_in_one_config);
|
| - }
|
| -
|
| - base::MessageLoop message_loop_;
|
| - scoped_ptr<FakeDemuxerStream> stream_;
|
| -
|
| - DemuxerStream::Status status_;
|
| - scoped_refptr<DecoderBuffer> buffer_;
|
| - bool read_pending_;
|
| - int num_buffers_received_;
|
| -
|
| - private:
|
| - DISALLOW_COPY_AND_ASSIGN(FakeDemuxerStreamTest);
|
| -};
|
| -
|
| -TEST_F(FakeDemuxerStreamTest, Read_OneConfig) {
|
| - TestRead(1, 5, false);
|
| -}
|
| -
|
| -TEST_F(FakeDemuxerStreamTest, Read_MultipleConfigs) {
|
| - TestRead(3, 5, false);
|
| -}
|
| -
|
| -TEST_F(FakeDemuxerStreamTest, Read_OneBufferPerConfig) {
|
| - TestRead(3, 1, false);
|
| -}
|
| -
|
| -TEST_F(FakeDemuxerStreamTest, Read_Encrypted) {
|
| - TestRead(6, 3, true);
|
| -}
|
| -
|
| -TEST_F(FakeDemuxerStreamTest, HoldRead_Normal) {
|
| - EnterNormalReadState();
|
| - stream_->HoldNextRead();
|
| - ReadAndExpect(PENDING);
|
| - SatisfyReadAndExpect(OK);
|
| -}
|
| -
|
| -TEST_F(FakeDemuxerStreamTest, HoldRead_BeforeConfigChanged) {
|
| - EnterNormalReadState();
|
| - stream_->HoldNextConfigChangeRead();
|
| - ReadUntilPending();
|
| - SatisfyReadAndExpect(CONFIG_CHANGED);
|
| -}
|
| -
|
| -TEST_F(FakeDemuxerStreamTest, HoldRead_BeforeEOS) {
|
| - EnterBeforeEOSState();
|
| - stream_->HoldNextRead();
|
| - ReadAndExpect(PENDING);
|
| - SatisfyReadAndExpect(EOS);
|
| -}
|
| -
|
| -TEST_F(FakeDemuxerStreamTest, Reset_Normal) {
|
| - EnterNormalReadState();
|
| - Reset();
|
| - ReadAndExpect(OK);
|
| -}
|
| -
|
| -TEST_F(FakeDemuxerStreamTest, Reset_AfterHoldRead) {
|
| - EnterNormalReadState();
|
| - stream_->HoldNextRead();
|
| - Reset();
|
| - ReadAndExpect(OK);
|
| -}
|
| -
|
| -TEST_F(FakeDemuxerStreamTest, Reset_DuringPendingRead) {
|
| - EnterNormalReadState();
|
| - stream_->HoldNextRead();
|
| - ReadAndExpect(PENDING);
|
| - Reset();
|
| - ReadAndExpect(OK);
|
| -}
|
| -
|
| -TEST_F(FakeDemuxerStreamTest, Reset_BeforeConfigChanged) {
|
| - EnterNormalReadState();
|
| - stream_->HoldNextConfigChangeRead();
|
| - ReadUntilPending();
|
| - Reset();
|
| - ReadAndExpect(CONFIG_CHANGED);
|
| -}
|
| -
|
| -TEST_F(FakeDemuxerStreamTest, Reset_BeforeEOS) {
|
| - EnterBeforeEOSState();
|
| - stream_->HoldNextRead();
|
| - ReadAndExpect(PENDING);
|
| - Reset();
|
| - ReadAndExpect(EOS);
|
| -}
|
| -
|
| -TEST_F(FakeDemuxerStreamTest, NoConfigChanges) {
|
| - stream_.reset(
|
| - new FakeDemuxerStream(1, kNumBuffersInOneConfig, false));
|
| - EXPECT_FALSE(stream_->SupportsConfigChanges());
|
| - for (int i = 0; i < kNumBuffersInOneConfig; ++i)
|
| - ReadAndExpect(OK);
|
| - ReadAndExpect(EOS);
|
| -}
|
| -
|
| -TEST_F(FakeDemuxerStreamTest, SeekToStart_Normal) {
|
| - EnterNormalReadState();
|
| - stream_->SeekToStart();
|
| - num_buffers_received_ = 0;
|
| - ReadAllBuffers(kNumConfigs, kNumBuffersInOneConfig);
|
| -}
|
| -
|
| -TEST_F(FakeDemuxerStreamTest, SeekToStart_BeforeEOS) {
|
| - EnterBeforeEOSState();
|
| - stream_->SeekToStart();
|
| - num_buffers_received_ = 0;
|
| - ReadAllBuffers(1, kNumBuffersInOneConfig);
|
| -}
|
| -
|
| -TEST_F(FakeDemuxerStreamTest, SeekToStart_AfterEOS) {
|
| - TestRead(3, 5, false);
|
| - stream_->SeekToStart();
|
| - num_buffers_received_ = 0;
|
| - ReadAllBuffers(3, 5);
|
| -}
|
| -
|
| -} // namespace media
|
|
|