1// Copyright 2014 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef CONTENT_PUBLIC_RENDERER_VIDEO_ENCODE_ACCELERATOR_H_
6#define CONTENT_PUBLIC_RENDERER_VIDEO_ENCODE_ACCELERATOR_H_
7
8#include "base/callback.h"
9#include "base/memory/scoped_ptr.h"
10#include "base/single_thread_task_runner.h"
11#include "content/common/content_export.h"
12#include "media/video/video_encode_accelerator.h"
13
14namespace content {
15
16// Called when CreateVideoEncodeAccelerator request is complete.
17// The |vea| object must be accessed on the thread associated with the
18// |encode_task_runner|.
19typedef base::Callback<
20    void (scoped_refptr<base::SingleThreadTaskRunner> encoder_task_runner,
21          scoped_ptr<media::VideoEncodeAccelerator> vea)>
22    OnCreateVideoEncodeAcceleratorCallback;
23
24// Generates an instance of media::VideoEncodeAccelerator.
25CONTENT_EXPORT void
26CreateVideoEncodeAccelerator(
27    const OnCreateVideoEncodeAcceleratorCallback& callback);
28
29// Returns list of encoding profiles supported by VideoEncodeAccelerator.
30CONTENT_EXPORT std::vector<media::VideoEncodeAccelerator::SupportedProfile>
31GetSupportedVideoEncodeAcceleratorProfiles();
32
33}  // namespace content
34
35#endif  // CONTENT_PUBLIC_RENDERER_VIDEO_ENCODE_ACCELERATOR_H_
36