chromium/media/gpu/test/video_player/decoder_wrapper.h

// Copyright 2018 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_GPU_TEST_VIDEO_PLAYER_DECODER_WRAPPER_H_
#define MEDIA_GPU_TEST_VIDEO_PLAYER_DECODER_WRAPPER_H_

#include <stdint.h>
#include <map>
#include <memory>
#include <vector>

#include "base/memory/raw_ptr.h"
#include "base/memory/weak_ptr.h"
#include "base/sequence_checker.h"
#include "base/synchronization/waitable_event.h"
#include "base/task/single_thread_task_runner.h"
#include "media/base/decoder_status.h"
#include "media/base/video_decoder.h"
#include "media/base/video_decoder_config.h"
#include "media/gpu/test/video_player/decoder_listener.h"

namespace media {

class VideoFrame;

namespace test {

class VideoBitstream;
class EncodedDataHelper;
class FrameRendererDummy;
class VideoFrameProcessor;

// The supported video decoding implementation.
enum class DecoderImplementation {};

// Video decoder wrapper configuration.
struct DecoderWrapperConfig {};

// This class wraps the VideoDecoder implementation and associated
// FrameRendererDummy and, maybe, VideoFrameProcessors. It maintains the
// communication between them, notifies |event_cb| of events and does all the
// necessary thread jumping between the parent thread and the dedicated worker
// thread.
class DecoderWrapper {};

}  // namespace test
}  // namespace media

#endif  // MEDIA_GPU_TEST_VIDEO_PLAYER_DECODER_WRAPPER_H_