chromium/media/base/mock_filters.h

// Copyright 2020 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef MEDIA_BASE_MOCK_FILTERS_H_
#define MEDIA_BASE_MOCK_FILTERS_H_

#include <stdint.h>

#include <memory>
#include <string>
#include <vector>

#include "base/functional/callback.h"
#include "base/memory/raw_ptr.h"
#include "base/memory/weak_ptr.h"
#include "base/sequence_checker.h"
#include "base/task/sequenced_task_runner.h"
#include "build/build_config.h"
#include "build/chromeos_buildflags.h"
#include "media/base/audio_decoder.h"
#include "media/base/audio_decoder_config.h"
#include "media/base/audio_encoder.h"
#include "media/base/audio_parameters.h"
#include "media/base/audio_renderer.h"
#include "media/base/callback_registry.h"
#include "media/base/cdm_config.h"
#include "media/base/cdm_context.h"
#include "media/base/cdm_factory.h"
#include "media/base/cdm_key_information.h"
#include "media/base/cdm_promise.h"
#include "media/base/cdm_promise_adapter.h"
#include "media/base/content_decryption_module.h"
#include "media/base/decoder_buffer.h"
#include "media/base/decryptor.h"
#include "media/base/demuxer.h"
#include "media/base/media_client.h"
#include "media/base/media_track.h"
#include "media/base/pipeline.h"
#include "media/base/pipeline_status.h"
#include "media/base/renderer.h"
#include "media/base/renderer_client.h"
#include "media/base/renderer_factory.h"
#include "media/base/stream_parser.h"
#include "media/base/time_source.h"
#include "media/base/video_decoder.h"
#include "media/base/video_decoder_config.h"
#include "media/base/video_encoder.h"
#include "media/base/video_encoder_metrics_provider.h"
#include "media/base/video_frame.h"
#include "media/base/video_renderer.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "url/origin.h"

namespace media {

class MockPipelineClient : public Pipeline::Client {};

class MockPipeline : public Pipeline {};

class MockMediaResource : public MediaResource {};

class MockDemuxer : public Demuxer {};

class MockDemuxerStream : public DemuxerStream {};

class MockVideoDecoder : public VideoDecoder {};

class MockAudioEncoder : public AudioEncoder {};

class MockVideoEncoder : public VideoEncoder {};

class MockAudioDecoder : public AudioDecoder {};

class MockRendererClient : public RendererClient {};

class MockVideoRenderer : public VideoRenderer {};

class MockAudioRenderer : public AudioRenderer {};

class MockRenderer : public Renderer {};

class MockRendererFactory : public RendererFactory {};

class MockTimeSource : public TimeSource {};

// Mock CDM callbacks.
// TODO(xhwang): This could be a subclass of CdmClient if we plan to add one.
// See http://crbug.com/657940
class MockCdmClient {};

class MockDecryptor : public Decryptor {};

class MockCdmContext : public CdmContext {};

class MockCdmPromise : public SimpleCdmPromise {};

class MockCdmSessionPromise : public NewSessionCdmPromise {};

class MockCdmKeyStatusPromise : public KeyStatusCdmPromise {};

class MockCdm : public ContentDecryptionModule {};

class MockCdmFactory : public CdmFactory {};

class MockStreamParser : public StreamParser {};

class MockMediaClient : public media::MediaClient {};

class MockVideoEncoderMetricsProvider : public VideoEncoderMetricsProvider {};
}  // namespace media

#endif  // MEDIA_BASE_MOCK_FILTERS_H_