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 // Joint encoder and decoder testing. | 5 // Joint encoder and decoder testing. |
6 // These tests operate directly on the VP8 encoder and decoder, not the | 6 // These tests operate directly on the VP8 encoder and decoder, not the |
7 // transport layer, and are targeted at validating the bit stream. | 7 // transport layer, and are targeted at validating the bit stream. |
8 | 8 |
9 #include <gtest/gtest.h> | 9 #include <gtest/gtest.h> |
10 | 10 |
(...skipping 25 matching lines...) Expand all Loading... |
36 : num_called_(0) { | 36 : num_called_(0) { |
37 gfx::Size size(kWidth, kHeight); | 37 gfx::Size size(kWidth, kHeight); |
38 original_frame_ = media::VideoFrame::CreateFrame( | 38 original_frame_ = media::VideoFrame::CreateFrame( |
39 VideoFrame::I420, size, gfx::Rect(size), size, base::TimeDelta()); | 39 VideoFrame::I420, size, gfx::Rect(size), size, base::TimeDelta()); |
40 } | 40 } |
41 | 41 |
42 void SetFrameStartValue(int start_value) { | 42 void SetFrameStartValue(int start_value) { |
43 PopulateVideoFrame(original_frame_.get(), start_value); | 43 PopulateVideoFrame(original_frame_.get(), start_value); |
44 } | 44 } |
45 | 45 |
46 void DecodeComplete(scoped_ptr<I420VideoFrame> decoded_frame, | 46 void DecodeComplete(const scoped_refptr<media::VideoFrame>& decoded_frame, |
47 const base::TimeTicks& render_time) { | 47 const base::TimeTicks& render_time) { |
48 ++num_called_; | 48 ++num_called_; |
49 // Compare resolution. | 49 // Compare resolution. |
50 EXPECT_EQ(original_frame_->coded_size().width(), decoded_frame->width); | 50 EXPECT_EQ(original_frame_->coded_size().width(), |
51 EXPECT_EQ(original_frame_->coded_size().height(), decoded_frame->height); | 51 decoded_frame->coded_size().width()); |
| 52 EXPECT_EQ(original_frame_->coded_size().height(), |
| 53 decoded_frame->coded_size().height()); |
52 // Compare data. | 54 // Compare data. |
53 EXPECT_GT(I420PSNR(*(original_frame_.get()), *(decoded_frame.get())), 40.0); | 55 EXPECT_GT(I420PSNR(original_frame_, decoded_frame), 40.0); |
54 } | 56 } |
55 | 57 |
56 int num_called() const { | 58 int num_called() const { |
57 return num_called_; | 59 return num_called_; |
58 } | 60 } |
59 | 61 |
60 protected: | 62 protected: |
61 virtual ~EncodeDecodeTestFrameCallback() {} | 63 virtual ~EncodeDecodeTestFrameCallback() {} |
62 | 64 |
63 private: | 65 private: |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
121 encoder_->Encode(video_frame_, &encoded_frame); | 123 encoder_->Encode(video_frame_, &encoded_frame); |
122 EXPECT_GT(encoded_frame.data.size(), GG_UINT64_C(0)); | 124 EXPECT_GT(encoded_frame.data.size(), GG_UINT64_C(0)); |
123 // Decode frame. | 125 // Decode frame. |
124 decoder_->Decode(&encoded_frame, base::TimeTicks(), base::Bind( | 126 decoder_->Decode(&encoded_frame, base::TimeTicks(), base::Bind( |
125 &EncodeDecodeTestFrameCallback::DecodeComplete, test_callback_)); | 127 &EncodeDecodeTestFrameCallback::DecodeComplete, test_callback_)); |
126 task_runner_->RunTasks(); | 128 task_runner_->RunTasks(); |
127 } | 129 } |
128 | 130 |
129 } // namespace cast | 131 } // namespace cast |
130 } // namespace media | 132 } // namespace media |
OLD | NEW |