Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / content / public / renderer / video_encode_accelerator.h
index 4231cff..426b052 100644 (file)
@@ -5,15 +5,30 @@
 #ifndef CONTENT_PUBLIC_RENDERER_VIDEO_ENCODE_ACCELERATOR_H_
 #define CONTENT_PUBLIC_RENDERER_VIDEO_ENCODE_ACCELERATOR_H_
 
+#include "base/callback.h"
 #include "base/memory/scoped_ptr.h"
+#include "base/single_thread_task_runner.h"
 #include "content/common/content_export.h"
 #include "media/video/video_encode_accelerator.h"
 
 namespace content {
 
-// Generate an instance of media::VideoEncodeAccelerator.
-CONTENT_EXPORT scoped_ptr<media::VideoEncodeAccelerator>
-CreateVideoEncodeAccelerator(media::VideoEncodeAccelerator::Client* client);
+// Called when CreateVideoEncodeAccelerator request is complete.
+// The |vea| object must be accessed on the thread associated with the
+// |encode_task_runner|.
+typedef base::Callback<
+    void (scoped_refptr<base::SingleThreadTaskRunner> encoder_task_runner,
+          scoped_ptr<media::VideoEncodeAccelerator> vea)>
+    OnCreateVideoEncodeAcceleratorCallback;
+
+// Generates an instance of media::VideoEncodeAccelerator.
+CONTENT_EXPORT void
+CreateVideoEncodeAccelerator(
+    const OnCreateVideoEncodeAcceleratorCallback& callback);
+
+// Returns list of encoding profiles supported by VideoEncodeAccelerator.
+CONTENT_EXPORT std::vector<media::VideoEncodeAccelerator::SupportedProfile>
+GetSupportedVideoEncodeAcceleratorProfiles();
 
 }  // namespace content