| Index: content/common/gpu/media/gpu_video_decode_accelerator_factory_impl.h
|
| diff --git a/content/common/gpu/media/gpu_video_decode_accelerator_factory_impl.h b/content/common/gpu/media/gpu_video_decode_accelerator_factory_impl.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..84c2c8024464d9ad228704342f1551244938bf0f
|
| --- /dev/null
|
| +++ b/content/common/gpu/media/gpu_video_decode_accelerator_factory_impl.h
|
| @@ -0,0 +1,83 @@
|
| +// Copyright 2016 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#ifndef CONTENT_COMMON_GPU_MEDIA_GPU_VIDEO_DECODE_ACCELERATOR_FACTORY_IMPL_H_
|
| +#define CONTENT_COMMON_GPU_MEDIA_GPU_VIDEO_DECODE_ACCELERATOR_FACTORY_IMPL_H_
|
| +
|
| +#include "content/public/gpu/gpu_video_decode_accelerator_factory.h"
|
| +
|
| +namespace content {
|
| +
|
| +class GpuVideoDecodeAcceleratorFactoryImpl
|
| + : public GpuVideoDecodeAcceleratorFactory {
|
| + public:
|
| + ~GpuVideoDecodeAcceleratorFactoryImpl() override;
|
| +
|
| + // content::GpuVideoDecodeAcceleratorFactory implementation.
|
| + static scoped_ptr<GpuVideoDecodeAcceleratorFactory> Create(
|
| + const GetGLContextCallback& get_gl_context_cb,
|
| + const MakeGLContextCurrentCallback& make_context_current_cb,
|
| + const BindGLImageCallback& bind_image_cb);
|
| +
|
| + static scoped_ptr<GpuVideoDecodeAcceleratorFactory> CreateWithGLES2Decoder(
|
| + const GetGLContextCallback& get_gl_context_cb,
|
| + const MakeGLContextCurrentCallback& make_context_current_cb,
|
| + const BindGLImageCallback& bind_image_cb,
|
| + const GetGLES2DecoderCallback& get_gles2_decoder_cb);
|
| +
|
| + static gpu::VideoDecodeAcceleratorCapabilities GetDecoderCapabilities(
|
| + const gpu::GpuPreferences& gpu_preferences);
|
| +
|
| + scoped_ptr<media::VideoDecodeAccelerator> CreateVDA(
|
| + media::VideoDecodeAccelerator::Client* client,
|
| + const media::VideoDecodeAccelerator::Config& config,
|
| + const gpu::GpuPreferences& gpu_preferences) override;
|
| +
|
| + private:
|
| + GpuVideoDecodeAcceleratorFactoryImpl(
|
| + const GetGLContextCallback& get_gl_context_cb,
|
| + const MakeGLContextCurrentCallback& make_context_current_cb,
|
| + const BindGLImageCallback& bind_image_cb,
|
| + const GetGLES2DecoderCallback& get_gles2_decoder_cb);
|
| +
|
| +#if defined(OS_WIN)
|
| + scoped_ptr<media::VideoDecodeAccelerator> CreateDXVAVDA(
|
| + const gpu::GpuPreferences& gpu_preferences) const;
|
| +#endif
|
| +#if defined(OS_CHROMEOS) && defined(USE_V4L2_CODEC)
|
| + scoped_ptr<media::VideoDecodeAccelerator> CreateV4L2VDA(
|
| + const gpu::GpuPreferences& gpu_preferences) const;
|
| + scoped_ptr<media::VideoDecodeAccelerator> CreateV4L2SVDA(
|
| + const gpu::GpuPreferences& gpu_preferences) const;
|
| +#endif
|
| +#if defined(OS_CHROMEOS) && defined(ARCH_CPU_X86_FAMILY)
|
| + scoped_ptr<media::VideoDecodeAccelerator> CreateVaapiVDA(
|
| + const gpu::GpuPreferences& gpu_preferences) const;
|
| +#endif
|
| +#if defined(OS_MACOSX)
|
| + scoped_ptr<media::VideoDecodeAccelerator> CreateVTVDA(
|
| + const gpu::GpuPreferences& gpu_preferences) const;
|
| +#endif
|
| +#if !defined(OS_CHROMEOS) && defined(USE_OZONE)
|
| + scoped_ptr<media::VideoDecodeAccelerator> CreateOzoneVDA(
|
| + const gpu::GpuPreferences& gpu_preferences) const;
|
| +#endif
|
| +#if defined(OS_ANDROID)
|
| + scoped_ptr<media::VideoDecodeAccelerator> CreateAndroidVDA(
|
| + const gpu::GpuPreferences& gpu_preferences) const;
|
| +#endif
|
| +
|
| + const GetGLContextCallback get_gl_context_cb_;
|
| + const MakeGLContextCurrentCallback make_context_current_cb_;
|
| + const BindGLImageCallback bind_image_cb_;
|
| + const GetGLES2DecoderCallback get_gles2_decoder_cb_;
|
| +
|
| + base::ThreadChecker thread_checker_;
|
| +
|
| + DISALLOW_IMPLICIT_CONSTRUCTORS(GpuVideoDecodeAcceleratorFactoryImpl);
|
| +};
|
| +
|
| +} // namespace content
|
| +
|
| +#endif // CONTENT_COMMON_GPU_MEDIA_GPU_VIDEO_DECODE_ACCELERATOR_FACTORY_IMPL_H_
|
|
|