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

Side by Side Diff: media/renderers/video_renderer_impl_unittest.cc

Issue 1407703003: Reland: Use GpuMemoryBufferVideoFramePool for WebMediaPlayerMS and MediaStreamVideoRendererSink (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: 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 unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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.h" 8 #include "base/callback.h"
9 #include "base/callback_helpers.h" 9 #include "base/callback_helpers.h"
10 #include "base/debug/stack_trace.h" 10 #include "base/debug/stack_trace.h"
11 #include "base/message_loop/message_loop.h" 11 #include "base/message_loop/message_loop.h"
12 #include "base/stl_util.h" 12 #include "base/stl_util.h"
13 #include "base/strings/string_number_conversions.h" 13 #include "base/strings/string_number_conversions.h"
14 #include "base/strings/string_split.h" 14 #include "base/strings/string_split.h"
15 #include "base/strings/stringprintf.h" 15 #include "base/strings/stringprintf.h"
16 #include "base/synchronization/lock.h" 16 #include "base/synchronization/lock.h"
17 #include "base/test/simple_test_tick_clock.h" 17 #include "base/test/simple_test_tick_clock.h"
18 #include "media/base/data_buffer.h" 18 #include "media/base/data_buffer.h"
19 #include "media/base/gmock_callback_support.h" 19 #include "media/base/gmock_callback_support.h"
20 #include "media/base/limits.h" 20 #include "media/base/limits.h"
21 #include "media/base/mock_filters.h" 21 #include "media/base/mock_filters.h"
22 #include "media/base/null_video_sink.h" 22 #include "media/base/null_video_sink.h"
23 #include "media/base/test_helpers.h" 23 #include "media/base/test_helpers.h"
24 #include "media/base/video_frame.h" 24 #include "media/base/video_frame.h"
25 #include "media/base/wall_clock_time_source.h" 25 #include "media/base/wall_clock_time_source.h"
26 #include "media/renderers/mock_gpu_memory_buffer_video_frame_pool.h"
26 #include "media/renderers/video_renderer_impl.h" 27 #include "media/renderers/video_renderer_impl.h"
27 #include "testing/gtest/include/gtest/gtest.h" 28 #include "testing/gtest/include/gtest/gtest.h"
28 29
29 using ::testing::_; 30 using ::testing::_;
30 using ::testing::AnyNumber; 31 using ::testing::AnyNumber;
31 using ::testing::Invoke; 32 using ::testing::Invoke;
32 using ::testing::Mock; 33 using ::testing::Mock;
33 using ::testing::NiceMock; 34 using ::testing::NiceMock;
34 using ::testing::Return; 35 using ::testing::Return;
35 using ::testing::SaveArg; 36 using ::testing::SaveArg;
(...skipping 694 matching lines...) Expand 10 before | Expand all | Expand 10 after
730 Flush(); 731 Flush();
731 732
732 StartPlayingFrom(200); 733 StartPlayingFrom(200);
733 WaitForPendingRead(); 734 WaitForPendingRead();
734 SatisfyPendingReadWithEndOfStream(); 735 SatisfyPendingReadWithEndOfStream();
735 EXPECT_CALL(mock_cb_, BufferingStateChange(BUFFERING_HAVE_ENOUGH)); 736 EXPECT_CALL(mock_cb_, BufferingStateChange(BUFFERING_HAVE_ENOUGH));
736 WaitForEnded(); 737 WaitForEnded();
737 Destroy(); 738 Destroy();
738 } 739 }
739 740
740 namespace {
741 class MockGpuMemoryBufferVideoFramePool : public GpuMemoryBufferVideoFramePool {
742 public:
743 MockGpuMemoryBufferVideoFramePool(std::vector<base::Closure>* frame_ready_cbs)
744 : frame_ready_cbs_(frame_ready_cbs) {}
745 void MaybeCreateHardwareFrame(const scoped_refptr<VideoFrame>& video_frame,
746 const FrameReadyCB& frame_ready_cb) override {
747 frame_ready_cbs_->push_back(base::Bind(frame_ready_cb, video_frame));
748 }
749
750 private:
751 std::vector<base::Closure>* frame_ready_cbs_;
752 };
753 }
754
755 class VideoRendererImplAsyncAddFrameReadyTest : public VideoRendererImplTest { 741 class VideoRendererImplAsyncAddFrameReadyTest : public VideoRendererImplTest {
756 public: 742 public:
757 VideoRendererImplAsyncAddFrameReadyTest() { 743 VideoRendererImplAsyncAddFrameReadyTest() {
758 scoped_ptr<GpuMemoryBufferVideoFramePool> gpu_memory_buffer_pool( 744 scoped_ptr<GpuMemoryBufferVideoFramePool> gpu_memory_buffer_pool(
759 new MockGpuMemoryBufferVideoFramePool(&frame_ready_cbs_)); 745 new MockGpuMemoryBufferVideoFramePool(&frame_ready_cbs_));
760 renderer_->SetGpuMemoryBufferVideoForTesting(gpu_memory_buffer_pool.Pass()); 746 renderer_->SetGpuMemoryBufferVideoForTesting(gpu_memory_buffer_pool.Pass());
761 } 747 }
762 748
763 protected: 749 protected:
764 std::vector<base::Closure> frame_ready_cbs_; 750 std::vector<base::Closure> frame_ready_cbs_;
(...skipping 20 matching lines...) Expand all
785 QueueFrames("0 10 20 30"); 771 QueueFrames("0 10 20 30");
786 StartPlayingFrom(0); 772 StartPlayingFrom(0);
787 Flush(); 773 Flush();
788 ASSERT_EQ(1u, frame_ready_cbs_.size()); 774 ASSERT_EQ(1u, frame_ready_cbs_.size());
789 // This frame will be discarded. 775 // This frame will be discarded.
790 frame_ready_cbs_.front().Run(); 776 frame_ready_cbs_.front().Run();
791 Destroy(); 777 Destroy();
792 } 778 }
793 779
794 } // namespace media 780 } // namespace media
OLDNEW
« no previous file with comments | « media/renderers/mock_gpu_memory_buffer_video_frame_pool.cc ('k') | media/video/gpu_memory_buffer_video_frame_pool.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698