OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license | 4 * Use of this source code is governed by a BSD-style license |
5 * that can be found in the LICENSE file in the root of the source | 5 * that can be found in the LICENSE file in the root of the source |
6 * tree. An additional intellectual property rights grant can be found | 6 * tree. An additional intellectual property rights grant can be found |
7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
9 */ | 9 */ |
10 | 10 |
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
85 encode_complete_ = false; | 85 encode_complete_ = false; |
86 return true; | 86 return true; |
87 } | 87 } |
88 return false; | 88 return false; |
89 } | 89 } |
90 | 90 |
91 class Vp8UnitTestDecodeCompleteCallback : public webrtc::DecodedImageCallback { | 91 class Vp8UnitTestDecodeCompleteCallback : public webrtc::DecodedImageCallback { |
92 public: | 92 public: |
93 explicit Vp8UnitTestDecodeCompleteCallback(rtc::Optional<VideoFrame>* frame) | 93 explicit Vp8UnitTestDecodeCompleteCallback(rtc::Optional<VideoFrame>* frame) |
94 : decoded_frame_(frame), decode_complete(false) {} | 94 : decoded_frame_(frame), decode_complete(false) {} |
95 int32_t Decoded(VideoFrame& frame) override; | 95 int32_t Decoded(VideoFrame& frame) override { |
| 96 RTC_NOTREACHED(); |
| 97 return -1; |
| 98 } |
96 int32_t Decoded(VideoFrame& frame, int64_t decode_time_ms) override { | 99 int32_t Decoded(VideoFrame& frame, int64_t decode_time_ms) override { |
97 RTC_NOTREACHED(); | 100 RTC_NOTREACHED(); |
98 return -1; | 101 return -1; |
99 } | 102 } |
100 void Decoded(VideoFrame& frame, | 103 void Decoded(VideoFrame& frame, |
101 rtc::Optional<int32_t> decode_time_ms, | 104 rtc::Optional<int32_t> decode_time_ms, |
102 rtc::Optional<uint8_t> qp) override { | 105 rtc::Optional<uint8_t> qp) override; |
103 RTC_NOTREACHED(); | |
104 } | |
105 bool DecodeComplete(); | 106 bool DecodeComplete(); |
106 | 107 |
107 private: | 108 private: |
108 rtc::Optional<VideoFrame>* decoded_frame_; | 109 rtc::Optional<VideoFrame>* decoded_frame_; |
109 bool decode_complete; | 110 bool decode_complete; |
110 }; | 111 }; |
111 | 112 |
112 bool Vp8UnitTestDecodeCompleteCallback::DecodeComplete() { | 113 bool Vp8UnitTestDecodeCompleteCallback::DecodeComplete() { |
113 if (decode_complete) { | 114 if (decode_complete) { |
114 decode_complete = false; | 115 decode_complete = false; |
115 return true; | 116 return true; |
116 } | 117 } |
117 return false; | 118 return false; |
118 } | 119 } |
119 | 120 |
120 int Vp8UnitTestDecodeCompleteCallback::Decoded(VideoFrame& image) { | 121 void Vp8UnitTestDecodeCompleteCallback::Decoded( |
121 *decoded_frame_ = rtc::Optional<VideoFrame>(image); | 122 VideoFrame& frame, |
| 123 rtc::Optional<int32_t> decode_time_ms, |
| 124 rtc::Optional<uint8_t> qp) { |
| 125 *decoded_frame_ = rtc::Optional<VideoFrame>(frame); |
122 decode_complete = true; | 126 decode_complete = true; |
123 return 0; | |
124 } | 127 } |
125 | 128 |
126 class TestVp8Impl : public ::testing::Test { | 129 class TestVp8Impl : public ::testing::Test { |
127 protected: | 130 protected: |
128 virtual void SetUp() { | 131 virtual void SetUp() { |
129 encoder_.reset(VP8Encoder::Create()); | 132 encoder_.reset(VP8Encoder::Create()); |
130 decoder_.reset(VP8Decoder::Create()); | 133 decoder_.reset(VP8Decoder::Create()); |
131 memset(&codec_inst_, 0, sizeof(codec_inst_)); | 134 memset(&codec_inst_, 0, sizeof(codec_inst_)); |
132 encode_complete_callback_.reset( | 135 encode_complete_callback_.reset( |
133 new Vp8UnitTestEncodeCompleteCallback(&encoded_frame_, 0, NULL)); | 136 new Vp8UnitTestEncodeCompleteCallback(&encoded_frame_, 0, NULL)); |
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
286 decoder_->Decode(encoded_frame_, false, NULL)); | 289 decoder_->Decode(encoded_frame_, false, NULL)); |
287 // Now setting a key frame. | 290 // Now setting a key frame. |
288 encoded_frame_._frameType = kVideoFrameKey; | 291 encoded_frame_._frameType = kVideoFrameKey; |
289 EXPECT_EQ(WEBRTC_VIDEO_CODEC_OK, | 292 EXPECT_EQ(WEBRTC_VIDEO_CODEC_OK, |
290 decoder_->Decode(encoded_frame_, false, NULL)); | 293 decoder_->Decode(encoded_frame_, false, NULL)); |
291 ASSERT_TRUE(decoded_frame_); | 294 ASSERT_TRUE(decoded_frame_); |
292 EXPECT_GT(I420PSNR(input_frame_.get(), &*decoded_frame_), 36); | 295 EXPECT_GT(I420PSNR(input_frame_.get(), &*decoded_frame_), 36); |
293 } | 296 } |
294 | 297 |
295 } // namespace webrtc | 298 } // namespace webrtc |
OLD | NEW |