| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 <stdint.h> | 5 #include <stdint.h> |
| 6 | 6 |
| 7 #include <cstdlib> | 7 #include <cstdlib> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "base/bind.h" | 10 #include "base/bind.h" |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 79 // Prepare a simulated VideoFrame to feed into the VideoEncoder. | 79 // Prepare a simulated VideoFrame to feed into the VideoEncoder. |
| 80 const scoped_refptr<VideoFrame> video_frame = VideoFrame::CreateFrame( | 80 const scoped_refptr<VideoFrame> video_frame = VideoFrame::CreateFrame( |
| 81 PIXEL_FORMAT_YV12, next_frame_size_, gfx::Rect(next_frame_size_), | 81 PIXEL_FORMAT_YV12, next_frame_size_, gfx::Rect(next_frame_size_), |
| 82 next_frame_size_, next_frame_timestamp_); | 82 next_frame_size_, next_frame_timestamp_); |
| 83 const base::TimeTicks reference_time = | 83 const base::TimeTicks reference_time = |
| 84 base::TimeTicks::UnixEpoch() + next_frame_timestamp_; | 84 base::TimeTicks::UnixEpoch() + next_frame_timestamp_; |
| 85 next_frame_timestamp_ += base::TimeDelta::FromSeconds(1) / kFrameRate; | 85 next_frame_timestamp_ += base::TimeDelta::FromSeconds(1) / kFrameRate; |
| 86 PopulateVideoFrame(video_frame.get(), 0); | 86 PopulateVideoFrame(video_frame.get(), 0); |
| 87 | 87 |
| 88 // Encode |frame| into |encoded_frame->data|. | 88 // Encode |frame| into |encoded_frame->data|. |
| 89 scoped_ptr<SenderEncodedFrame> encoded_frame(new SenderEncodedFrame()); | 89 std::unique_ptr<SenderEncodedFrame> encoded_frame(new SenderEncodedFrame()); |
| 90 // Test only supports VP8, currently. | 90 // Test only supports VP8, currently. |
| 91 CHECK_EQ(CODEC_VIDEO_VP8, GetParam()); | 91 CHECK_EQ(CODEC_VIDEO_VP8, GetParam()); |
| 92 vp8_encoder_.Encode(video_frame, reference_time, encoded_frame.get()); | 92 vp8_encoder_.Encode(video_frame, reference_time, encoded_frame.get()); |
| 93 // Rewrite frame IDs for testing purposes. | 93 // Rewrite frame IDs for testing purposes. |
| 94 encoded_frame->frame_id = last_frame_id_ + 1 + num_dropped_frames; | 94 encoded_frame->frame_id = last_frame_id_ + 1 + num_dropped_frames; |
| 95 if (encoded_frame->dependency == EncodedFrame::KEY) | 95 if (encoded_frame->dependency == EncodedFrame::KEY) |
| 96 encoded_frame->referenced_frame_id = encoded_frame->frame_id; | 96 encoded_frame->referenced_frame_id = encoded_frame->frame_id; |
| 97 else | 97 else |
| 98 encoded_frame->referenced_frame_id = encoded_frame->frame_id - 1; | 98 encoded_frame->referenced_frame_id = encoded_frame->frame_id - 1; |
| 99 last_frame_id_ = encoded_frame->frame_id; | 99 last_frame_id_ = encoded_frame->frame_id; |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 145 EXPECT_LT(40.0, I420PSNR(expected_video_frame, video_frame)); | 145 EXPECT_LT(40.0, I420PSNR(expected_video_frame, video_frame)); |
| 146 // TODO(miu): Once we start using VideoFrame::timestamp_, check that here. | 146 // TODO(miu): Once we start using VideoFrame::timestamp_, check that here. |
| 147 | 147 |
| 148 // Signal the main test thread that more video was decoded. | 148 // Signal the main test thread that more video was decoded. |
| 149 base::AutoLock auto_lock(lock_); | 149 base::AutoLock auto_lock(lock_); |
| 150 ++total_video_frames_decoded_; | 150 ++total_video_frames_decoded_; |
| 151 cond_.Signal(); | 151 cond_.Signal(); |
| 152 } | 152 } |
| 153 | 153 |
| 154 const scoped_refptr<StandaloneCastEnvironment> cast_environment_; | 154 const scoped_refptr<StandaloneCastEnvironment> cast_environment_; |
| 155 scoped_ptr<VideoDecoder> video_decoder_; | 155 std::unique_ptr<VideoDecoder> video_decoder_; |
| 156 gfx::Size next_frame_size_; | 156 gfx::Size next_frame_size_; |
| 157 base::TimeDelta next_frame_timestamp_; | 157 base::TimeDelta next_frame_timestamp_; |
| 158 uint32_t last_frame_id_; | 158 uint32_t last_frame_id_; |
| 159 bool seen_a_decoded_frame_; | 159 bool seen_a_decoded_frame_; |
| 160 | 160 |
| 161 Vp8Encoder vp8_encoder_; | 161 Vp8Encoder vp8_encoder_; |
| 162 | 162 |
| 163 // Unlike |total_video_frames_decoded_|, this is only read/written on a single | 163 // Unlike |total_video_frames_decoded_|, this is only read/written on a single |
| 164 // thread. | 164 // thread. |
| 165 int total_video_frames_feed_in_; | 165 int total_video_frames_feed_in_; |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 234 | 234 |
| 235 WaitForAllVideoToBeDecoded(); | 235 WaitForAllVideoToBeDecoded(); |
| 236 } | 236 } |
| 237 | 237 |
| 238 INSTANTIATE_TEST_CASE_P(, | 238 INSTANTIATE_TEST_CASE_P(, |
| 239 VideoDecoderTest, | 239 VideoDecoderTest, |
| 240 ::testing::Values(CODEC_VIDEO_VP8)); | 240 ::testing::Values(CODEC_VIDEO_VP8)); |
| 241 | 241 |
| 242 } // namespace cast | 242 } // namespace cast |
| 243 } // namespace media | 243 } // namespace media |
| OLD | NEW |