| /* |
| * Copyright (c) 2011 The WebRTC project authors. All Rights Reserved. |
| * |
| * Use of this source code is governed by a BSD-style license |
| * that can be found in the LICENSE file in the root of the source |
| * tree. An additional intellectual property rights grant can be found |
| * in the file PATENTS. All contributing project authors may |
| * be found in the AUTHORS file in the root of the source tree. |
| */ |
| |
| #ifndef WEBRTC_MODULES_VIDEO_CODING_CODECS_VP8_RPS_TEST_H_ |
| #define WEBRTC_MODULES_VIDEO_CODING_CODECS_VP8_RPS_TEST_H_ |
| |
| #include "vp8.h" |
| #include "normal_async_test.h" |
| |
| class RpsDecodeCompleteCallback; |
| |
| class VP8RpsTest : public VP8NormalAsyncTest { |
| public: |
| VP8RpsTest(float bitRate); |
| VP8RpsTest(); |
| virtual ~VP8RpsTest(); |
| virtual void Perform(); |
| private: |
| VP8RpsTest(std::string name, std::string description, unsigned int testNo) |
| : VP8NormalAsyncTest(name, description, testNo) {} |
| virtual bool EncodeRps(RpsDecodeCompleteCallback* decodeCallback); |
| virtual int Decode(int lossValue = 0); |
| |
| static bool CheckIfBitExact(const void *ptrA, unsigned int aLengthBytes, |
| const void *ptrB, unsigned int bLengthBytes); |
| |
| webrtc::VP8Decoder* decoder2_; |
| TestVideoBuffer decoded_frame2_; |
| bool sli_; |
| }; |
| |
| class RpsDecodeCompleteCallback : public webrtc::DecodedImageCallback { |
| public: |
| RpsDecodeCompleteCallback(TestVideoBuffer* buffer); |
| WebRtc_Word32 Decoded(webrtc::RawImage& decodedImage); |
| bool DecodeComplete(); |
| WebRtc_Word32 ReceivedDecodedReferenceFrame(const WebRtc_UWord64 picture_id); |
| WebRtc_Word32 ReceivedDecodedFrame(const WebRtc_UWord64 picture_id); |
| WebRtc_UWord64 LastDecodedPictureId() const; |
| WebRtc_UWord64 LastDecodedRefPictureId(bool *updated); |
| |
| private: |
| TestVideoBuffer* decoded_frame_; |
| bool decode_complete_; |
| WebRtc_UWord64 last_decoded_picture_id_; |
| WebRtc_UWord64 last_decoded_ref_picture_id_; |
| bool updated_ref_picture_id_; |
| }; |
| |
| #endif // WEBRTC_MODULES_VIDEO_CODING_CODECS_VP8_RPS_TEST_H_ |