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
11cce46fc108a70336f0477fd58d41f38e547eeb25philipel#ifndef WEBRTC_MODULES_VIDEO_CODING_CODECS_INTERFACE_MOCK_MOCK_VIDEO_CODEC_INTERFACE_H_
12cce46fc108a70336f0477fd58d41f38e547eeb25philipel#define WEBRTC_MODULES_VIDEO_CODING_CODECS_INTERFACE_MOCK_MOCK_VIDEO_CODEC_INTERFACE_H_
1335a1756502707ffd88069b9ccdc97a80c68c9812kjellander@webrtc.org
14cce46fc108a70336f0477fd58d41f38e547eeb25philipel#pragma message("WARNING: video_coding/codecs/interface is DEPRECATED; "
15cce46fc108a70336f0477fd58d41f38e547eeb25philipel    "use video_coding/include")
1635a1756502707ffd88069b9ccdc97a80c68c9812kjellander@webrtc.org#include <string>
17cce46fc108a70336f0477fd58d41f38e547eeb25philipel#include <vector>
1835a1756502707ffd88069b9ccdc97a80c68c9812kjellander@webrtc.org
19a4407329d4e16eab3d2e87cde0824188c06acb5apbos@webrtc.org#include "testing/gmock/include/gmock/gmock.h"
202557b86e7648ffebc5781df9f093ca5a84efc219Henrik Kjellander#include "webrtc/modules/video_coding/include/video_codec_interface.h"
21a4407329d4e16eab3d2e87cde0824188c06acb5apbos@webrtc.org#include "webrtc/typedefs.h"
2235a1756502707ffd88069b9ccdc97a80c68c9812kjellander@webrtc.org
2335a1756502707ffd88069b9ccdc97a80c68c9812kjellander@webrtc.orgnamespace webrtc {
2435a1756502707ffd88069b9ccdc97a80c68c9812kjellander@webrtc.org
255b97b1216fbb8061216d4075d46596fc38d9cff4kjellander@webrtc.orgclass MockEncodedImageCallback : public EncodedImageCallback {
265b97b1216fbb8061216d4075d46596fc38d9cff4kjellander@webrtc.org public:
27cce46fc108a70336f0477fd58d41f38e547eeb25philipel  MOCK_METHOD3(Encoded,
28cce46fc108a70336f0477fd58d41f38e547eeb25philipel               int32_t(const EncodedImage& encodedImage,
29cce46fc108a70336f0477fd58d41f38e547eeb25philipel                       const CodecSpecificInfo* codecSpecificInfo,
30cce46fc108a70336f0477fd58d41f38e547eeb25philipel                       const RTPFragmentationHeader* fragmentation));
315b97b1216fbb8061216d4075d46596fc38d9cff4kjellander@webrtc.org};
325b97b1216fbb8061216d4075d46596fc38d9cff4kjellander@webrtc.org
3335a1756502707ffd88069b9ccdc97a80c68c9812kjellander@webrtc.orgclass MockVideoEncoder : public VideoEncoder {
3435a1756502707ffd88069b9ccdc97a80c68c9812kjellander@webrtc.org public:
35cce46fc108a70336f0477fd58d41f38e547eeb25philipel  MOCK_CONST_METHOD2(Version, int32_t(int8_t* version, int32_t length));
36cce46fc108a70336f0477fd58d41f38e547eeb25philipel  MOCK_METHOD3(InitEncode,
37cce46fc108a70336f0477fd58d41f38e547eeb25philipel               int32_t(const VideoCodec* codecSettings,
38cce46fc108a70336f0477fd58d41f38e547eeb25philipel                       int32_t numberOfCores,
39cce46fc108a70336f0477fd58d41f38e547eeb25philipel                       size_t maxPayloadSize));
404765070b8d6f024509c717c04d9b708750666927Miguel Casas-Sanchez  MOCK_METHOD3(Encode,
414765070b8d6f024509c717c04d9b708750666927Miguel Casas-Sanchez               int32_t(const VideoFrame& inputImage,
424765070b8d6f024509c717c04d9b708750666927Miguel Casas-Sanchez                       const CodecSpecificInfo* codecSpecificInfo,
4322993e1a0c114122fc1b9de0fc74d4096ec868bdpbos                       const std::vector<FrameType>* frame_types));
4435a1756502707ffd88069b9ccdc97a80c68c9812kjellander@webrtc.org  MOCK_METHOD1(RegisterEncodeCompleteCallback,
45034f004a4fd07b04fc23cd8579b53616f98133a4pbos@webrtc.org               int32_t(EncodedImageCallback* callback));
46034f004a4fd07b04fc23cd8579b53616f98133a4pbos@webrtc.org  MOCK_METHOD0(Release, int32_t());
47034f004a4fd07b04fc23cd8579b53616f98133a4pbos@webrtc.org  MOCK_METHOD0(Reset, int32_t());
4816825b1a828bb4ff40f7682040e43a239b7b8ca3pkasting@chromium.org  MOCK_METHOD2(SetChannelParameters, int32_t(uint32_t packetLoss, int64_t rtt));
49034f004a4fd07b04fc23cd8579b53616f98133a4pbos@webrtc.org  MOCK_METHOD2(SetRates, int32_t(uint32_t newBitRate, uint32_t frameRate));
50034f004a4fd07b04fc23cd8579b53616f98133a4pbos@webrtc.org  MOCK_METHOD1(SetPeriodicKeyFrames, int32_t(bool enable));
5135a1756502707ffd88069b9ccdc97a80c68c9812kjellander@webrtc.org};
5235a1756502707ffd88069b9ccdc97a80c68c9812kjellander@webrtc.org
535b97b1216fbb8061216d4075d46596fc38d9cff4kjellander@webrtc.orgclass MockDecodedImageCallback : public DecodedImageCallback {
545b97b1216fbb8061216d4075d46596fc38d9cff4kjellander@webrtc.org public:
55cce46fc108a70336f0477fd58d41f38e547eeb25philipel  MOCK_METHOD1(Decoded, int32_t(const VideoFrame& decodedImage));
56cce46fc108a70336f0477fd58d41f38e547eeb25philipel  MOCK_METHOD2(Decoded,
57cce46fc108a70336f0477fd58d41f38e547eeb25philipel               int32_t(const VideoFrame& decodedImage, int64_t decode_time_ms));
585b97b1216fbb8061216d4075d46596fc38d9cff4kjellander@webrtc.org  MOCK_METHOD1(ReceivedDecodedReferenceFrame,
59034f004a4fd07b04fc23cd8579b53616f98133a4pbos@webrtc.org               int32_t(const uint64_t pictureId));
60cce46fc108a70336f0477fd58d41f38e547eeb25philipel  MOCK_METHOD1(ReceivedDecodedFrame, int32_t(const uint64_t pictureId));
615b97b1216fbb8061216d4075d46596fc38d9cff4kjellander@webrtc.org};
625b97b1216fbb8061216d4075d46596fc38d9cff4kjellander@webrtc.org
6335a1756502707ffd88069b9ccdc97a80c68c9812kjellander@webrtc.orgclass MockVideoDecoder : public VideoDecoder {
6435a1756502707ffd88069b9ccdc97a80c68c9812kjellander@webrtc.org public:
65cce46fc108a70336f0477fd58d41f38e547eeb25philipel  MOCK_METHOD2(InitDecode,
66cce46fc108a70336f0477fd58d41f38e547eeb25philipel               int32_t(const VideoCodec* codecSettings, int32_t numberOfCores));
67cce46fc108a70336f0477fd58d41f38e547eeb25philipel  MOCK_METHOD5(Decode,
68cce46fc108a70336f0477fd58d41f38e547eeb25philipel               int32_t(const EncodedImage& inputImage,
69cce46fc108a70336f0477fd58d41f38e547eeb25philipel                       bool missingFrames,
70cce46fc108a70336f0477fd58d41f38e547eeb25philipel                       const RTPFragmentationHeader* fragmentation,
71cce46fc108a70336f0477fd58d41f38e547eeb25philipel                       const CodecSpecificInfo* codecSpecificInfo,
72cce46fc108a70336f0477fd58d41f38e547eeb25philipel                       int64_t renderTimeMs));
7335a1756502707ffd88069b9ccdc97a80c68c9812kjellander@webrtc.org  MOCK_METHOD1(RegisterDecodeCompleteCallback,
74034f004a4fd07b04fc23cd8579b53616f98133a4pbos@webrtc.org               int32_t(DecodedImageCallback* callback));
75034f004a4fd07b04fc23cd8579b53616f98133a4pbos@webrtc.org  MOCK_METHOD0(Release, int32_t());
76034f004a4fd07b04fc23cd8579b53616f98133a4pbos@webrtc.org  MOCK_METHOD0(Reset, int32_t());
77d292b9c9da179eca5f12f2b052dd56843add6768kjellander@webrtc.org  MOCK_METHOD0(Copy, VideoDecoder*());
7835a1756502707ffd88069b9ccdc97a80c68c9812kjellander@webrtc.org};
7935a1756502707ffd88069b9ccdc97a80c68c9812kjellander@webrtc.org
8035a1756502707ffd88069b9ccdc97a80c68c9812kjellander@webrtc.org}  // namespace webrtc
8135a1756502707ffd88069b9ccdc97a80c68c9812kjellander@webrtc.org
82cce46fc108a70336f0477fd58d41f38e547eeb25philipel#endif  // WEBRTC_MODULES_VIDEO_CODING_CODECS_INTERFACE_MOCK_MOCK_VIDEO_CODEC_INTERFACE_H_
83