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

Unified Diff: chromecast/media/cma/filters/demuxer_stream_adapter_unittest.cc

Issue 1372393007: [Chromecast] Upgrade to new CMA backend API (Closed) Base URL: https://chromium.googlesource.com/chromium/src@master
Patch Set: Address alokp@ comments Created 5 years, 2 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: chromecast/media/cma/filters/demuxer_stream_adapter_unittest.cc
diff --git a/chromecast/media/cma/filters/demuxer_stream_adapter_unittest.cc b/chromecast/media/cma/filters/demuxer_stream_adapter_unittest.cc
deleted file mode 100644
index 46572449664149af208bd683c0a26ef3f42db877..0000000000000000000000000000000000000000
--- a/chromecast/media/cma/filters/demuxer_stream_adapter_unittest.cc
+++ /dev/null
@@ -1,215 +0,0 @@
-// Copyright 2014 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 <list>
-
-#include "base/basictypes.h"
-#include "base/bind.h"
-#include "base/memory/ref_counted.h"
-#include "base/memory/scoped_ptr.h"
-#include "base/thread_task_runner_handle.h"
-#include "base/threading/thread.h"
-#include "base/time/time.h"
-#include "chromecast/media/cma/base/balanced_media_task_runner_factory.h"
-#include "chromecast/media/cma/base/decoder_buffer_base.h"
-#include "chromecast/media/cma/filters/demuxer_stream_adapter.h"
-#include "chromecast/media/cma/test/demuxer_stream_for_test.h"
-#include "chromecast/public/media/cast_decoder_buffer.h"
-#include "media/base/audio_decoder_config.h"
-#include "media/base/decoder_buffer.h"
-#include "media/base/demuxer_stream.h"
-#include "media/base/video_decoder_config.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-namespace chromecast {
-namespace media {
-
-class DemuxerStreamAdapterTest : public testing::Test {
- public:
- DemuxerStreamAdapterTest();
- ~DemuxerStreamAdapterTest() override;
-
- void Initialize(::media::DemuxerStream* demuxer_stream);
- void Start();
-
- protected:
- void OnTestTimeout();
- void OnNewFrame(const scoped_refptr<DecoderBufferBase>& buffer,
- const ::media::AudioDecoderConfig& audio_config,
- const ::media::VideoDecoderConfig& video_config);
- void OnFlushCompleted();
-
- // Total number of frames to request.
- int total_frames_;
-
- // Number of demuxer read before issuing an early flush.
- int early_flush_idx_;
- bool use_post_task_for_flush_;
-
- // Number of expected read frames.
- int total_expected_frames_;
-
- // Number of frames actually read so far.
- int frame_received_count_;
-
- // List of expected frame indices with decoder config changes.
- std::list<int> config_idx_;
-
- scoped_ptr<DemuxerStreamForTest> demuxer_stream_;
-
- scoped_ptr<CodedFrameProvider> coded_frame_provider_;
-
- DISALLOW_COPY_AND_ASSIGN(DemuxerStreamAdapterTest);
-};
-
-DemuxerStreamAdapterTest::DemuxerStreamAdapterTest()
- : use_post_task_for_flush_(false) {
-}
-
-DemuxerStreamAdapterTest::~DemuxerStreamAdapterTest() {
-}
-
-void DemuxerStreamAdapterTest::Initialize(
- ::media::DemuxerStream* demuxer_stream) {
- coded_frame_provider_.reset(new DemuxerStreamAdapter(
- base::ThreadTaskRunnerHandle::Get(),
- scoped_refptr<BalancedMediaTaskRunnerFactory>(), demuxer_stream));
-}
-
-void DemuxerStreamAdapterTest::Start() {
- frame_received_count_ = 0;
-
- // TODO(damienv): currently, test assertions which fail do not trigger the
- // exit of the unit test, the message loop is still running. Find a different
- // way to exit the unit test.
- base::MessageLoop::current()->PostDelayedTask(
- FROM_HERE,
- base::Bind(&DemuxerStreamAdapterTest::OnTestTimeout,
- base::Unretained(this)),
- base::TimeDelta::FromSeconds(5));
-
- coded_frame_provider_->Read(
- base::Bind(&DemuxerStreamAdapterTest::OnNewFrame,
- base::Unretained(this)));
-}
-
-void DemuxerStreamAdapterTest::OnTestTimeout() {
- ADD_FAILURE() << "Test timed out";
- if (base::MessageLoop::current())
- base::MessageLoop::current()->QuitWhenIdle();
-}
-
-void DemuxerStreamAdapterTest::OnNewFrame(
- const scoped_refptr<DecoderBufferBase>& buffer,
- const ::media::AudioDecoderConfig& audio_config,
- const ::media::VideoDecoderConfig& video_config) {
- if (video_config.IsValidConfig()) {
- ASSERT_GT(config_idx_.size(), 0u);
- ASSERT_EQ(frame_received_count_, config_idx_.front());
- config_idx_.pop_front();
- }
-
- ASSERT_TRUE(buffer.get() != NULL);
- ASSERT_EQ(buffer->timestamp(),
- base::TimeDelta::FromMilliseconds(40 * frame_received_count_));
- frame_received_count_++;
-
- if (frame_received_count_ >= total_frames_) {
- coded_frame_provider_->Flush(
- base::Bind(&DemuxerStreamAdapterTest::OnFlushCompleted,
- base::Unretained(this)));
- return;
- }
-
- coded_frame_provider_->Read(
- base::Bind(&DemuxerStreamAdapterTest::OnNewFrame,
- base::Unretained(this)));
-
- ASSERT_LE(frame_received_count_, early_flush_idx_);
- if (frame_received_count_ == early_flush_idx_) {
- base::Closure flush_cb =
- base::Bind(&DemuxerStreamAdapterTest::OnFlushCompleted,
- base::Unretained(this));
- if (use_post_task_for_flush_) {
- base::MessageLoop::current()->PostTask(
- FROM_HERE,
- base::Bind(&CodedFrameProvider::Flush,
- base::Unretained(coded_frame_provider_.get()),
- flush_cb));
- } else {
- coded_frame_provider_->Flush(flush_cb);
- }
- return;
- }
-}
-
-void DemuxerStreamAdapterTest::OnFlushCompleted() {
- ASSERT_EQ(frame_received_count_, total_expected_frames_);
- ASSERT_FALSE(demuxer_stream_->has_pending_read());
- base::MessageLoop::current()->QuitWhenIdle();
-}
-
-TEST_F(DemuxerStreamAdapterTest, NoDelay) {
- total_frames_ = 10;
- early_flush_idx_ = total_frames_; // No early flush.
- total_expected_frames_ = 10;
- config_idx_.push_back(0);
- config_idx_.push_back(5);
-
- int cycle_count = 1;
- int delayed_frame_count = 0;
- demuxer_stream_.reset(new DemuxerStreamForTest(
- -1, cycle_count, delayed_frame_count, config_idx_));
-
- scoped_ptr<base::MessageLoop> message_loop(new base::MessageLoop());
- Initialize(demuxer_stream_.get());
- message_loop->PostTask(
- FROM_HERE,
- base::Bind(&DemuxerStreamAdapterTest::Start, base::Unretained(this)));
- message_loop->Run();
-}
-
-TEST_F(DemuxerStreamAdapterTest, AllDelayed) {
- total_frames_ = 10;
- early_flush_idx_ = total_frames_; // No early flush.
- total_expected_frames_ = 10;
- config_idx_.push_back(0);
- config_idx_.push_back(5);
-
- int cycle_count = 1;
- int delayed_frame_count = 1;
- demuxer_stream_.reset(new DemuxerStreamForTest(
- -1, cycle_count, delayed_frame_count, config_idx_));
-
- scoped_ptr<base::MessageLoop> message_loop(new base::MessageLoop());
- Initialize(demuxer_stream_.get());
- message_loop->PostTask(
- FROM_HERE,
- base::Bind(&DemuxerStreamAdapterTest::Start, base::Unretained(this)));
- message_loop->Run();
-}
-
-TEST_F(DemuxerStreamAdapterTest, AllDelayedEarlyFlush) {
- total_frames_ = 10;
- early_flush_idx_ = 5;
- use_post_task_for_flush_ = true;
- total_expected_frames_ = 5;
- config_idx_.push_back(0);
- config_idx_.push_back(3);
-
- int cycle_count = 1;
- int delayed_frame_count = 1;
- demuxer_stream_.reset(new DemuxerStreamForTest(
- -1, cycle_count, delayed_frame_count, config_idx_));
-
- scoped_ptr<base::MessageLoop> message_loop(new base::MessageLoop());
- Initialize(demuxer_stream_.get());
- message_loop->PostTask(
- FROM_HERE,
- base::Bind(&DemuxerStreamAdapterTest::Start, base::Unretained(this)));
- message_loop->Run();
-}
-
-} // namespace media
-} // namespace chromecast
« no previous file with comments | « chromecast/media/cma/filters/demuxer_stream_adapter.cc ('k') | chromecast/media/cma/filters/hole_frame_factory.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698