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