| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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> |
| 6 |
| 5 #include "base/bind.h" | 7 #include "base/bind.h" |
| 6 #include "base/logging.h" | 8 #include "base/logging.h" |
| 7 #include "base/macros.h" | 9 #include "base/macros.h" |
| 8 #include "base/thread_task_runner_handle.h" | 10 #include "base/thread_task_runner_handle.h" |
| 9 #include "base/timer/timer.h" | 11 #include "base/timer/timer.h" |
| 10 #include "media/base/android/media_codec_audio_decoder.h" | 12 #include "media/base/android/media_codec_audio_decoder.h" |
| 11 #include "media/base/android/media_codec_util.h" | 13 #include "media/base/android/media_codec_util.h" |
| 12 #include "media/base/android/media_codec_video_decoder.h" | 14 #include "media/base/android/media_codec_video_decoder.h" |
| 13 #include "media/base/android/media_statistics.h" | 15 #include "media/base/android/media_statistics.h" |
| 14 #include "media/base/android/sdk_media_codec_bridge.h" | 16 #include "media/base/android/sdk_media_codec_bridge.h" |
| (...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 149 typedef base::Callback<bool()> Predicate; | 151 typedef base::Callback<bool()> Predicate; |
| 150 | 152 |
| 151 typedef base::Callback<void(const DemuxerData&)> DataAvailableCallback; | 153 typedef base::Callback<void(const DemuxerData&)> DataAvailableCallback; |
| 152 | 154 |
| 153 // Waits for condition to become true or for timeout to expire. | 155 // Waits for condition to become true or for timeout to expire. |
| 154 // Returns true if the condition becomes true. | 156 // Returns true if the condition becomes true. |
| 155 bool WaitForCondition(const Predicate& condition, | 157 bool WaitForCondition(const Predicate& condition, |
| 156 const base::TimeDelta& timeout = kDefaultTimeout); | 158 const base::TimeDelta& timeout = kDefaultTimeout); |
| 157 | 159 |
| 158 void SetDataFactory(scoped_ptr<TestDataFactory> factory) { | 160 void SetDataFactory(scoped_ptr<TestDataFactory> factory) { |
| 159 data_factory_ = factory.Pass(); | 161 data_factory_ = std::move(factory); |
| 160 } | 162 } |
| 161 | 163 |
| 162 DemuxerConfigs GetConfigs() const { | 164 DemuxerConfigs GetConfigs() const { |
| 163 // ASSERT_NE does not compile here because it expects void return value. | 165 // ASSERT_NE does not compile here because it expects void return value. |
| 164 EXPECT_NE(nullptr, data_factory_.get()); | 166 EXPECT_NE(nullptr, data_factory_.get()); |
| 165 return data_factory_->GetConfigs(); | 167 return data_factory_->GetConfigs(); |
| 166 } | 168 } |
| 167 | 169 |
| 168 void CreateAudioDecoder(); | 170 void CreateAudioDecoder(); |
| 169 void CreateVideoDecoder(); | 171 void CreateVideoDecoder(); |
| (...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 313 task_runner_->PostDelayedTask(FROM_HERE, base::Bind(data_available_cb_, data), | 315 task_runner_->PostDelayedTask(FROM_HERE, base::Bind(data_available_cb_, data), |
| 314 delay); | 316 delay); |
| 315 } | 317 } |
| 316 | 318 |
| 317 void MediaCodecDecoderTest::SetVideoSurface() { | 319 void MediaCodecDecoderTest::SetVideoSurface() { |
| 318 surface_texture_ = gfx::SurfaceTexture::Create(0); | 320 surface_texture_ = gfx::SurfaceTexture::Create(0); |
| 319 gfx::ScopedJavaSurface surface(surface_texture_.get()); | 321 gfx::ScopedJavaSurface surface(surface_texture_.get()); |
| 320 ASSERT_NE(nullptr, decoder_.get()); | 322 ASSERT_NE(nullptr, decoder_.get()); |
| 321 MediaCodecVideoDecoder* video_decoder = | 323 MediaCodecVideoDecoder* video_decoder = |
| 322 static_cast<MediaCodecVideoDecoder*>(decoder_.get()); | 324 static_cast<MediaCodecVideoDecoder*>(decoder_.get()); |
| 323 video_decoder->SetVideoSurface(surface.Pass()); | 325 video_decoder->SetVideoSurface(std::move(surface)); |
| 324 } | 326 } |
| 325 | 327 |
| 326 TEST_F(MediaCodecDecoderTest, AudioPrefetch) { | 328 TEST_F(MediaCodecDecoderTest, AudioPrefetch) { |
| 327 CreateAudioDecoder(); | 329 CreateAudioDecoder(); |
| 328 | 330 |
| 329 base::TimeDelta duration = base::TimeDelta::FromMilliseconds(500); | 331 base::TimeDelta duration = base::TimeDelta::FromMilliseconds(500); |
| 330 SetDataFactory(scoped_ptr<TestDataFactory>(new AudioFactory(duration))); | 332 SetDataFactory(scoped_ptr<TestDataFactory>(new AudioFactory(duration))); |
| 331 | 333 |
| 332 decoder_->Prefetch(base::Bind(&MediaCodecDecoderTest::SetPrefetched, | 334 decoder_->Prefetch(base::Bind(&MediaCodecDecoderTest::SetPrefetched, |
| 333 base::Unretained(this), true)); | 335 base::Unretained(this), true)); |
| (...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 439 // Prepare the surface. | 441 // Prepare the surface. |
| 440 scoped_refptr<gfx::SurfaceTexture> surface_texture( | 442 scoped_refptr<gfx::SurfaceTexture> surface_texture( |
| 441 gfx::SurfaceTexture::Create(0)); | 443 gfx::SurfaceTexture::Create(0)); |
| 442 gfx::ScopedJavaSurface surface(surface_texture.get()); | 444 gfx::ScopedJavaSurface surface(surface_texture.get()); |
| 443 | 445 |
| 444 // Release the surface texture. | 446 // Release the surface texture. |
| 445 surface_texture = NULL; | 447 surface_texture = NULL; |
| 446 | 448 |
| 447 MediaCodecVideoDecoder* video_decoder = | 449 MediaCodecVideoDecoder* video_decoder = |
| 448 static_cast<MediaCodecVideoDecoder*>(decoder_.get()); | 450 static_cast<MediaCodecVideoDecoder*>(decoder_.get()); |
| 449 video_decoder->SetVideoSurface(surface.Pass()); | 451 video_decoder->SetVideoSurface(std::move(surface)); |
| 450 | 452 |
| 451 EXPECT_EQ(MediaCodecDecoder::kConfigFailure, decoder_->Configure(nullptr)); | 453 EXPECT_EQ(MediaCodecDecoder::kConfigFailure, decoder_->Configure(nullptr)); |
| 452 } | 454 } |
| 453 | 455 |
| 454 TEST_F(MediaCodecDecoderTest, VideoConfigureValidParams) { | 456 TEST_F(MediaCodecDecoderTest, VideoConfigureValidParams) { |
| 455 SKIP_TEST_IF_MEDIA_CODEC_BRIDGE_IS_NOT_AVAILABLE(); | 457 SKIP_TEST_IF_MEDIA_CODEC_BRIDGE_IS_NOT_AVAILABLE(); |
| 456 | 458 |
| 457 CreateVideoDecoder(); | 459 CreateVideoDecoder(); |
| 458 | 460 |
| 459 // decoder_->Configure() searches back for the key frame. | 461 // decoder_->Configure() searches back for the key frame. |
| (...skipping 290 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 750 | 752 |
| 751 EXPECT_TRUE(decoder_->IsStopped()); | 753 EXPECT_TRUE(decoder_->IsStopped()); |
| 752 EXPECT_TRUE(decoder_->IsCompleted()); | 754 EXPECT_TRUE(decoder_->IsCompleted()); |
| 753 EXPECT_EQ(data_factory_->last_pts(), pts_stat_.max()); | 755 EXPECT_EQ(data_factory_->last_pts(), pts_stat_.max()); |
| 754 | 756 |
| 755 // Check that the reported video size is the one from the in-stream configs. | 757 // Check that the reported video size is the one from the in-stream configs. |
| 756 EXPECT_EQ(data_factory_->GetConfigs().video_size, video_size_); | 758 EXPECT_EQ(data_factory_->GetConfigs().video_size, video_size_); |
| 757 } | 759 } |
| 758 | 760 |
| 759 } // namespace media | 761 } // namespace media |
| OLD | NEW |