mock_video_codec_interface.h revision ce33035deee98c6cfdd121fc2dbb0b9e0767d1ba
135a1756502707ffd88069b9ccdc97a80c68c9812kjellander@webrtc.org/*
2ce33035deee98c6cfdd121fc2dbb0b9e0767d1bapwestin@webrtc.org *  Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
335a1756502707ffd88069b9ccdc97a80c68c9812kjellander@webrtc.org *
435a1756502707ffd88069b9ccdc97a80c68c9812kjellander@webrtc.org *  Use of this source code is governed by a BSD-style license
535a1756502707ffd88069b9ccdc97a80c68c9812kjellander@webrtc.org *  that can be found in the LICENSE file in the root of the source
635a1756502707ffd88069b9ccdc97a80c68c9812kjellander@webrtc.org *  tree. An additional intellectual property rights grant can be found
735a1756502707ffd88069b9ccdc97a80c68c9812kjellander@webrtc.org *  in the file PATENTS.  All contributing project authors may
835a1756502707ffd88069b9ccdc97a80c68c9812kjellander@webrtc.org *  be found in the AUTHORS file in the root of the source tree.
935a1756502707ffd88069b9ccdc97a80c68c9812kjellander@webrtc.org */
105b97b1216fbb8061216d4075d46596fc38d9cff4kjellander@webrtc.org
115b97b1216fbb8061216d4075d46596fc38d9cff4kjellander@webrtc.org#ifndef WEBRTC_MODULES_VIDEO_CODING_CODECS_INTERFACE_MOCK_MOCK_VIDEO_CODEC_INTERFACE_H_
125b97b1216fbb8061216d4075d46596fc38d9cff4kjellander@webrtc.org#define WEBRTC_MODULES_VIDEO_CODING_CODECS_INTERFACE_MOCK_MOCK_VIDEO_CODEC_INTERFACE_H_
1335a1756502707ffd88069b9ccdc97a80c68c9812kjellander@webrtc.org
1435a1756502707ffd88069b9ccdc97a80c68c9812kjellander@webrtc.org#include <string>
1535a1756502707ffd88069b9ccdc97a80c68c9812kjellander@webrtc.org
1635a1756502707ffd88069b9ccdc97a80c68c9812kjellander@webrtc.org#include "gmock/gmock.h"
174a190301313882772cb440b8c3c0a0bff4084a5bhenrik.lundin@webrtc.org#include "modules/video_coding/codecs/interface/video_codec_interface.h"
1835a1756502707ffd88069b9ccdc97a80c68c9812kjellander@webrtc.org#include "typedefs.h"
1935a1756502707ffd88069b9ccdc97a80c68c9812kjellander@webrtc.org
2035a1756502707ffd88069b9ccdc97a80c68c9812kjellander@webrtc.orgnamespace webrtc {
2135a1756502707ffd88069b9ccdc97a80c68c9812kjellander@webrtc.org
225b97b1216fbb8061216d4075d46596fc38d9cff4kjellander@webrtc.orgclass MockEncodedImageCallback : public EncodedImageCallback {
235b97b1216fbb8061216d4075d46596fc38d9cff4kjellander@webrtc.org public:
245b97b1216fbb8061216d4075d46596fc38d9cff4kjellander@webrtc.org  MOCK_METHOD3(Encoded,
255b97b1216fbb8061216d4075d46596fc38d9cff4kjellander@webrtc.org               WebRtc_Word32(EncodedImage& encodedImage,
265b97b1216fbb8061216d4075d46596fc38d9cff4kjellander@webrtc.org                             const CodecSpecificInfo* codecSpecificInfo,
275b97b1216fbb8061216d4075d46596fc38d9cff4kjellander@webrtc.org                             const RTPFragmentationHeader* fragmentation));
285b97b1216fbb8061216d4075d46596fc38d9cff4kjellander@webrtc.org};
295b97b1216fbb8061216d4075d46596fc38d9cff4kjellander@webrtc.org
3035a1756502707ffd88069b9ccdc97a80c68c9812kjellander@webrtc.orgclass MockVideoEncoder : public VideoEncoder {
3135a1756502707ffd88069b9ccdc97a80c68c9812kjellander@webrtc.org public:
3235a1756502707ffd88069b9ccdc97a80c68c9812kjellander@webrtc.org  MOCK_CONST_METHOD2(Version,
33d292b9c9da179eca5f12f2b052dd56843add6768kjellander@webrtc.org                     WebRtc_Word32(WebRtc_Word8 *version,
34d292b9c9da179eca5f12f2b052dd56843add6768kjellander@webrtc.org                                   WebRtc_Word32 length));
3535a1756502707ffd88069b9ccdc97a80c68c9812kjellander@webrtc.org  MOCK_METHOD3(InitEncode,
36d292b9c9da179eca5f12f2b052dd56843add6768kjellander@webrtc.org               WebRtc_Word32(const VideoCodec* codecSettings,
37d292b9c9da179eca5f12f2b052dd56843add6768kjellander@webrtc.org                             WebRtc_Word32 numberOfCores,
38d292b9c9da179eca5f12f2b052dd56843add6768kjellander@webrtc.org                             WebRtc_UWord32 maxPayloadSize));
3935a1756502707ffd88069b9ccdc97a80c68c9812kjellander@webrtc.org  MOCK_METHOD3(Encode,
40d292b9c9da179eca5f12f2b052dd56843add6768kjellander@webrtc.org               WebRtc_Word32(const RawImage& inputImage,
41d292b9c9da179eca5f12f2b052dd56843add6768kjellander@webrtc.org                             const CodecSpecificInfo* codecSpecificInfo,
42ce33035deee98c6cfdd121fc2dbb0b9e0767d1bapwestin@webrtc.org                             const VideoFrameType frameType));
4335a1756502707ffd88069b9ccdc97a80c68c9812kjellander@webrtc.org  MOCK_METHOD1(RegisterEncodeCompleteCallback,
44d292b9c9da179eca5f12f2b052dd56843add6768kjellander@webrtc.org               WebRtc_Word32(EncodedImageCallback* callback));
45d292b9c9da179eca5f12f2b052dd56843add6768kjellander@webrtc.org  MOCK_METHOD0(Release, WebRtc_Word32());
46d292b9c9da179eca5f12f2b052dd56843add6768kjellander@webrtc.org  MOCK_METHOD0(Reset, WebRtc_Word32());
47a4a88f90c44c6ee287baccae10c7f7ff556dcb20stefan@webrtc.org  MOCK_METHOD2(SetChannelParameters, WebRtc_Word32(WebRtc_UWord32 packetLoss,
48a4a88f90c44c6ee287baccae10c7f7ff556dcb20stefan@webrtc.org                                                   int rtt));
4935a1756502707ffd88069b9ccdc97a80c68c9812kjellander@webrtc.org  MOCK_METHOD2(SetRates,
50d292b9c9da179eca5f12f2b052dd56843add6768kjellander@webrtc.org               WebRtc_Word32(WebRtc_UWord32 newBitRate,
51d292b9c9da179eca5f12f2b052dd56843add6768kjellander@webrtc.org                             WebRtc_UWord32 frameRate));
52d292b9c9da179eca5f12f2b052dd56843add6768kjellander@webrtc.org  MOCK_METHOD1(SetPeriodicKeyFrames, WebRtc_Word32(bool enable));
5335a1756502707ffd88069b9ccdc97a80c68c9812kjellander@webrtc.org  MOCK_METHOD2(CodecConfigParameters,
54d292b9c9da179eca5f12f2b052dd56843add6768kjellander@webrtc.org               WebRtc_Word32(WebRtc_UWord8* /*buffer*/, WebRtc_Word32));
5535a1756502707ffd88069b9ccdc97a80c68c9812kjellander@webrtc.org};
5635a1756502707ffd88069b9ccdc97a80c68c9812kjellander@webrtc.org
575b97b1216fbb8061216d4075d46596fc38d9cff4kjellander@webrtc.orgclass MockDecodedImageCallback : public DecodedImageCallback {
585b97b1216fbb8061216d4075d46596fc38d9cff4kjellander@webrtc.org public:
595b97b1216fbb8061216d4075d46596fc38d9cff4kjellander@webrtc.org  MOCK_METHOD1(Decoded,
605b97b1216fbb8061216d4075d46596fc38d9cff4kjellander@webrtc.org               WebRtc_Word32(RawImage& decodedImage));
615b97b1216fbb8061216d4075d46596fc38d9cff4kjellander@webrtc.org  MOCK_METHOD1(ReceivedDecodedReferenceFrame,
625b97b1216fbb8061216d4075d46596fc38d9cff4kjellander@webrtc.org               WebRtc_Word32(const WebRtc_UWord64 pictureId));
635b97b1216fbb8061216d4075d46596fc38d9cff4kjellander@webrtc.org  MOCK_METHOD1(ReceivedDecodedFrame,
645b97b1216fbb8061216d4075d46596fc38d9cff4kjellander@webrtc.org               WebRtc_Word32(const WebRtc_UWord64 pictureId));
655b97b1216fbb8061216d4075d46596fc38d9cff4kjellander@webrtc.org};
665b97b1216fbb8061216d4075d46596fc38d9cff4kjellander@webrtc.org
6735a1756502707ffd88069b9ccdc97a80c68c9812kjellander@webrtc.orgclass MockVideoDecoder : public VideoDecoder {
6835a1756502707ffd88069b9ccdc97a80c68c9812kjellander@webrtc.org public:
6935a1756502707ffd88069b9ccdc97a80c68c9812kjellander@webrtc.org  MOCK_METHOD2(InitDecode,
7035a1756502707ffd88069b9ccdc97a80c68c9812kjellander@webrtc.org      WebRtc_Word32(const VideoCodec* codecSettings,
7135a1756502707ffd88069b9ccdc97a80c68c9812kjellander@webrtc.org                    WebRtc_Word32 numberOfCores));
7235a1756502707ffd88069b9ccdc97a80c68c9812kjellander@webrtc.org  MOCK_METHOD5(Decode,
73d292b9c9da179eca5f12f2b052dd56843add6768kjellander@webrtc.org               WebRtc_Word32(const EncodedImage& inputImage,
74d292b9c9da179eca5f12f2b052dd56843add6768kjellander@webrtc.org                             bool missingFrames,
75d292b9c9da179eca5f12f2b052dd56843add6768kjellander@webrtc.org                             const RTPFragmentationHeader* fragmentation,
76d292b9c9da179eca5f12f2b052dd56843add6768kjellander@webrtc.org                             const CodecSpecificInfo* codecSpecificInfo,
77d292b9c9da179eca5f12f2b052dd56843add6768kjellander@webrtc.org                             WebRtc_Word64 renderTimeMs));
7835a1756502707ffd88069b9ccdc97a80c68c9812kjellander@webrtc.org  MOCK_METHOD1(RegisterDecodeCompleteCallback,
79d292b9c9da179eca5f12f2b052dd56843add6768kjellander@webrtc.org               WebRtc_Word32(DecodedImageCallback* callback));
80d292b9c9da179eca5f12f2b052dd56843add6768kjellander@webrtc.org  MOCK_METHOD0(Release, WebRtc_Word32());
81d292b9c9da179eca5f12f2b052dd56843add6768kjellander@webrtc.org  MOCK_METHOD0(Reset, WebRtc_Word32());
8235a1756502707ffd88069b9ccdc97a80c68c9812kjellander@webrtc.org  MOCK_METHOD2(SetCodecConfigParameters,
83d292b9c9da179eca5f12f2b052dd56843add6768kjellander@webrtc.org               WebRtc_Word32(const WebRtc_UWord8* /*buffer*/, WebRtc_Word32));
84d292b9c9da179eca5f12f2b052dd56843add6768kjellander@webrtc.org  MOCK_METHOD0(Copy, VideoDecoder*());
8535a1756502707ffd88069b9ccdc97a80c68c9812kjellander@webrtc.org};
8635a1756502707ffd88069b9ccdc97a80c68c9812kjellander@webrtc.org
8735a1756502707ffd88069b9ccdc97a80c68c9812kjellander@webrtc.org}  // namespace webrtc
8835a1756502707ffd88069b9ccdc97a80c68c9812kjellander@webrtc.org
895b97b1216fbb8061216d4075d46596fc38d9cff4kjellander@webrtc.org#endif  // WEBRTC_MODULES_VIDEO_CODING_CODECS_INTERFACE_MOCK_MOCK_VIDEO_CODEC_INTERFACE_H_
90