15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef MEDIA_BASE_MOCK_FILTERS_H_ 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define MEDIA_BASE_MOCK_FILTERS_H_ 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <string> 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/callback.h" 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "media/base/audio_decoder.h" 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "media/base/audio_decoder_config.h" 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "media/base/audio_renderer.h" 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "media/base/decoder_buffer.h" 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "media/base/decryptor.h" 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "media/base/demuxer.h" 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "media/base/filter_collection.h" 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "media/base/pipeline_status.h" 19f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "media/base/text_track.h" 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "media/base/video_decoder.h" 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "media/base/video_decoder_config.h" 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "media/base/video_frame.h" 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "media/base/video_renderer.h" 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "testing/gmock/include/gmock/gmock.h" 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace media { 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class MockDemuxer : public Demuxer { 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MockDemuxer(); 31c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) virtual ~MockDemuxer(); 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Demuxer implementation. 34f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) MOCK_METHOD3(Initialize, 35f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) void(DemuxerHost* host, const PipelineStatusCB& cb, bool)); 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD1(SetPlaybackRate, void(float playback_rate)); 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD2(Seek, void(base::TimeDelta time, const PipelineStatusCB& cb)); 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD1(Stop, void(const base::Closure& callback)); 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD0(OnAudioRendererDisabled, void()); 40c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) MOCK_METHOD1(GetStream, DemuxerStream*(DemuxerStream::Type)); 412f22f038970e0d1927c41b04bbf5589bd12c5316Torne (Richard Coles) MOCK_CONST_METHOD0(GetStartTime, base::TimeDelta()); 420529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch MOCK_CONST_METHOD0(GetTimelineOffset, base::Time()); 435c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu MOCK_CONST_METHOD0(GetLiveness, Liveness()); 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private: 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(MockDemuxer); 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class MockDemuxerStream : public DemuxerStream { 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 517dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch explicit MockDemuxerStream(DemuxerStream::Type type); 52c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) virtual ~MockDemuxerStream(); 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // DemuxerStream implementation. 55c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) virtual Type type() OVERRIDE; 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD1(Read, void(const ReadCB& read_cb)); 57868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) virtual AudioDecoderConfig audio_decoder_config() OVERRIDE; 58868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) virtual VideoDecoderConfig video_decoder_config() OVERRIDE; 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD0(EnableBitstreamConverter, void()); 60effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch MOCK_METHOD0(SupportsConfigChanges, bool()); 615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 62c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void set_audio_decoder_config(const AudioDecoderConfig& config); 63c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void set_video_decoder_config(const VideoDecoderConfig& config); 645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private: 66c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) DemuxerStream::Type type_; 67c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) AudioDecoderConfig audio_decoder_config_; 68c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) VideoDecoderConfig video_decoder_config_; 69c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(MockDemuxerStream); 715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class MockVideoDecoder : public VideoDecoder { 745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MockVideoDecoder(); 76c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) virtual ~MockVideoDecoder(); 775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // VideoDecoder implementation. 79f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) MOCK_METHOD4(Initialize, void(const VideoDecoderConfig& config, 805c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu bool low_delay, 81f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) const PipelineStatusCB& status_cb, 82f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) const OutputCB& output_cb)); 837dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch MOCK_METHOD2(Decode, void(const scoped_refptr<DecoderBuffer>& buffer, 84558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch const DecodeCB&)); 855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD1(Reset, void(const base::Closure&)); 86e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch MOCK_METHOD0(Stop, void()); 875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_CONST_METHOD0(HasAlpha, bool()); 885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private: 905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(MockVideoDecoder); 915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class MockAudioDecoder : public AudioDecoder { 945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MockAudioDecoder(); 96c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) virtual ~MockAudioDecoder(); 975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // AudioDecoder implementation. 99f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) MOCK_METHOD3(Initialize, 100f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) void(const AudioDecoderConfig& config, 101f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) const PipelineStatusCB& status_cb, 102f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) const OutputCB& output_cb)); 103a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) MOCK_METHOD2(Decode, 104a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) void(const scoped_refptr<DecoderBuffer>& buffer, 105a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) const DecodeCB&)); 1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD1(Reset, void(const base::Closure&)); 107e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch MOCK_METHOD0(Stop, void()); 1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private: 1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(MockAudioDecoder); 1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class MockVideoRenderer : public VideoRenderer { 1145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MockVideoRenderer(); 1162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual ~MockVideoRenderer(); 1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // VideoRenderer implementation. 1195c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu MOCK_METHOD9(Initialize, void(DemuxerStream* stream, 1205c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu bool low_delay, 121c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const PipelineStatusCB& init_cb, 122c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const StatisticsCB& statistics_cb, 123c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const TimeCB& time_cb, 124c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const base::Closure& ended_cb, 125c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const PipelineStatusCB& error_cb, 126c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const TimeDeltaCB& get_time_cb, 127c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const TimeDeltaCB& get_duration_cb)); 1285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD1(Play, void(const base::Closure& callback)); 1295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD1(Flush, void(const base::Closure& callback)); 1305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD2(Preroll, void(base::TimeDelta time, const PipelineStatusCB& cb)); 1315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD1(Stop, void(const base::Closure& callback)); 1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD1(SetPlaybackRate, void(float playback_rate)); 1335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private: 1355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(MockVideoRenderer); 1365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class MockAudioRenderer : public AudioRenderer { 1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 1405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MockAudioRenderer(); 1412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual ~MockAudioRenderer(); 1425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // AudioRenderer implementation. 1440de6073388f4e2780db8536178b129cd8f6ab386Torne (Richard Coles) MOCK_METHOD7(Initialize, void(DemuxerStream* stream, 1455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const PipelineStatusCB& init_cb, 1465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const StatisticsCB& statistics_cb, 1475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const base::Closure& underflow_cb, 1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const TimeCB& time_cb, 1495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const base::Closure& ended_cb, 1505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const PipelineStatusCB& error_cb)); 151cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) MOCK_METHOD0(StartRendering, void()); 152cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) MOCK_METHOD0(StopRendering, void()); 1535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD1(Flush, void(const base::Closure& callback)); 1545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD1(Stop, void(const base::Closure& callback)); 1555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD1(SetPlaybackRate, void(float playback_rate)); 1565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD2(Preroll, void(base::TimeDelta time, const PipelineStatusCB& cb)); 1575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD1(SetVolume, void(float volume)); 158868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) MOCK_METHOD0(ResumeAfterUnderflow, void()); 1595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private: 1615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(MockAudioRenderer); 1625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 1635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 164f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)class MockTextTrack : public TextTrack { 165f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) public: 166f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) MockTextTrack(); 167f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual ~MockTextTrack(); 168f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 169f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) MOCK_METHOD5(addWebVTTCue, void(const base::TimeDelta& start, 170f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) const base::TimeDelta& end, 171f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) const std::string& id, 172f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) const std::string& content, 173f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) const std::string& settings)); 174f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 175f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) private: 176f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(MockTextTrack); 177f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)}; 178f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 1795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class MockDecryptor : public Decryptor { 1805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 1815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MockDecryptor(); 1825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual ~MockDecryptor(); 1835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) MOCK_METHOD2(RegisterNewKeyCB, void(StreamType stream_type, 1852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const NewKeyCB& new_key_cb)); 1865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD3(Decrypt, void(StreamType stream_type, 1875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const scoped_refptr<DecoderBuffer>& encrypted, 1885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const DecryptCB& decrypt_cb)); 1895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD1(CancelDecrypt, void(StreamType stream_type)); 1902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) MOCK_METHOD2(InitializeAudioDecoder, 1915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void(const AudioDecoderConfig& config, 1925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const DecoderInitCB& init_cb)); 1932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) MOCK_METHOD2(InitializeVideoDecoder, 1945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void(const VideoDecoderConfig& config, 1955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const DecoderInitCB& init_cb)); 1965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD2(DecryptAndDecodeAudio, 1975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void(const scoped_refptr<media::DecoderBuffer>& encrypted, 1985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const AudioDecodeCB& audio_decode_cb)); 1995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD2(DecryptAndDecodeVideo, 2005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void(const scoped_refptr<media::DecoderBuffer>& encrypted, 2015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const VideoDecodeCB& video_decode_cb)); 2025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD1(ResetDecoder, void(StreamType stream_type)); 2035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD1(DeinitializeDecoder, void(StreamType stream_type)); 2045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private: 2065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(MockDecryptor); 2075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 2085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Helper mock statistics callback. 2105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class MockStatisticsCB { 2115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 2125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MockStatisticsCB(); 2135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ~MockStatisticsCB(); 2145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MOCK_METHOD1(OnStatistics, void(const media::PipelineStatistics& statistics)); 2165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 2175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace media 2195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif // MEDIA_BASE_MOCK_FILTERS_H_ 221