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