OLD | NEW |
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 "base/bind.h" | 5 #include "base/bind.h" |
6 #include "base/message_loop/message_loop.h" | 6 #include "base/message_loop/message_loop.h" |
7 #include "base/synchronization/waitable_event.h" | 7 #include "base/synchronization/waitable_event.h" |
8 #include "base/threading/thread.h" | 8 #include "base/threading/thread.h" |
9 #include "content/renderer/media/rtc_video_decoder.h" | 9 #include "content/renderer/media/rtc_video_decoder.h" |
10 #include "media/base/gmock_callback_support.h" | 10 #include "media/base/gmock_callback_support.h" |
(...skipping 17 matching lines...) Expand all Loading... |
28 : mock_gpu_factories_(new media::MockGpuVideoAcceleratorFactories), | 28 : mock_gpu_factories_(new media::MockGpuVideoAcceleratorFactories), |
29 vda_thread_("vda_thread"), | 29 vda_thread_("vda_thread"), |
30 idle_waiter_(false, false) { | 30 idle_waiter_(false, false) { |
31 memset(&codec_, 0, sizeof(codec_)); | 31 memset(&codec_, 0, sizeof(codec_)); |
32 } | 32 } |
33 | 33 |
34 void SetUp() override { | 34 void SetUp() override { |
35 ASSERT_TRUE(vda_thread_.Start()); | 35 ASSERT_TRUE(vda_thread_.Start()); |
36 vda_task_runner_ = vda_thread_.message_loop_proxy(); | 36 vda_task_runner_ = vda_thread_.message_loop_proxy(); |
37 mock_vda_ = new media::MockVideoDecodeAccelerator; | 37 mock_vda_ = new media::MockVideoDecodeAccelerator; |
| 38 |
| 39 media::VideoDecodeAccelerator::SupportedProfile supported_profile; |
| 40 supported_profile.min_resolution.SetSize(16, 16); |
| 41 supported_profile.max_resolution.SetSize(1920, 1088); |
| 42 supported_profile.profile = media::H264PROFILE_MAIN; |
| 43 supported_profiles_.push_back(supported_profile); |
| 44 supported_profile.profile = media::VP8PROFILE_ANY; |
| 45 supported_profiles_.push_back(supported_profile); |
| 46 |
38 EXPECT_CALL(*mock_gpu_factories_.get(), GetTaskRunner()) | 47 EXPECT_CALL(*mock_gpu_factories_.get(), GetTaskRunner()) |
39 .WillRepeatedly(Return(vda_task_runner_)); | 48 .WillRepeatedly(Return(vda_task_runner_)); |
| 49 EXPECT_CALL(*mock_gpu_factories_.get(), |
| 50 GetVideoDecodeAcceleratorSupportedProfiles()) |
| 51 .WillRepeatedly(Return(supported_profiles_)); |
40 EXPECT_CALL(*mock_gpu_factories_.get(), DoCreateVideoDecodeAccelerator()) | 52 EXPECT_CALL(*mock_gpu_factories_.get(), DoCreateVideoDecodeAccelerator()) |
41 .WillRepeatedly(Return(mock_vda_)); | 53 .WillRepeatedly(Return(mock_vda_)); |
42 EXPECT_CALL(*mock_vda_, Initialize(_, _)) | 54 EXPECT_CALL(*mock_vda_, Initialize(_, _)) |
43 .Times(1) | 55 .Times(1) |
44 .WillRepeatedly(Return(true)); | 56 .WillRepeatedly(Return(true)); |
45 EXPECT_CALL(*mock_vda_, Destroy()).Times(1); | 57 EXPECT_CALL(*mock_vda_, Destroy()).Times(1); |
46 } | 58 } |
47 | 59 |
48 void TearDown() override { | 60 void TearDown() override { |
49 DVLOG(2) << "TearDown"; | 61 DVLOG(2) << "TearDown"; |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
90 base::Unretained(&idle_waiter_))); | 102 base::Unretained(&idle_waiter_))); |
91 idle_waiter_.Wait(); | 103 idle_waiter_.Wait(); |
92 } | 104 } |
93 | 105 |
94 protected: | 106 protected: |
95 scoped_refptr<media::MockGpuVideoAcceleratorFactories> mock_gpu_factories_; | 107 scoped_refptr<media::MockGpuVideoAcceleratorFactories> mock_gpu_factories_; |
96 media::MockVideoDecodeAccelerator* mock_vda_; | 108 media::MockVideoDecodeAccelerator* mock_vda_; |
97 scoped_ptr<RTCVideoDecoder> rtc_decoder_; | 109 scoped_ptr<RTCVideoDecoder> rtc_decoder_; |
98 webrtc::VideoCodec codec_; | 110 webrtc::VideoCodec codec_; |
99 base::Thread vda_thread_; | 111 base::Thread vda_thread_; |
| 112 media::VideoDecodeAccelerator::SupportedProfiles supported_profiles_; |
100 | 113 |
101 private: | 114 private: |
102 scoped_refptr<base::SingleThreadTaskRunner> vda_task_runner_; | 115 scoped_refptr<base::SingleThreadTaskRunner> vda_task_runner_; |
103 | 116 |
104 base::Lock lock_; | 117 base::Lock lock_; |
105 base::WaitableEvent idle_waiter_; | 118 base::WaitableEvent idle_waiter_; |
106 }; | 119 }; |
107 | 120 |
108 TEST_F(RTCVideoDecoderTest, CreateReturnsNullOnUnsupportedCodec) { | 121 TEST_F(RTCVideoDecoderTest, CreateReturnsNullOnUnsupportedCodec) { |
109 CreateDecoder(webrtc::kVideoCodecVP8); | 122 CreateDecoder(webrtc::kVideoCodecVP8); |
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
220 | 233 |
221 EXPECT_FALSE(rtc_decoder_->IsFirstBufferAfterReset(RTCVideoDecoder::ID_LAST, | 234 EXPECT_FALSE(rtc_decoder_->IsFirstBufferAfterReset(RTCVideoDecoder::ID_LAST, |
222 RTCVideoDecoder::ID_LAST)); | 235 RTCVideoDecoder::ID_LAST)); |
223 EXPECT_TRUE( | 236 EXPECT_TRUE( |
224 rtc_decoder_->IsFirstBufferAfterReset(0, RTCVideoDecoder::ID_LAST)); | 237 rtc_decoder_->IsFirstBufferAfterReset(0, RTCVideoDecoder::ID_LAST)); |
225 EXPECT_FALSE( | 238 EXPECT_FALSE( |
226 rtc_decoder_->IsFirstBufferAfterReset(1, RTCVideoDecoder::ID_LAST)); | 239 rtc_decoder_->IsFirstBufferAfterReset(1, RTCVideoDecoder::ID_LAST)); |
227 } | 240 } |
228 | 241 |
229 } // content | 242 } // content |
OLD | NEW |