Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(368)

Unified Diff: content/common/gpu/media/vaapi_wrapper.h

Issue 385793002: content: Add support for Video Decode Acceleration on GBM (Closed) Base URL: 038ca4ab40c387bf3bc1541d56578bc522df9f41
Patch Set: merge changes into one single vaapi_video_decode_accelerator Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/common/gpu/media/vaapi_wrapper.h
diff --git a/content/common/gpu/media/vaapi_wrapper.h b/content/common/gpu/media/vaapi_wrapper.h
index f600cdfa1d17198d00f4fd67b4b59767ea60795e..3abd39236cf8a3000d9354fd3601e60175051343 100644
--- a/content/common/gpu/media/vaapi_wrapper.h
+++ b/content/common/gpu/media/vaapi_wrapper.h
@@ -20,7 +20,11 @@
#include "content/common/gpu/media/va_surface.h"
#include "media/base/video_decoder_config.h"
#include "media/base/video_frame.h"
+#if defined(USE_X11)
#include "third_party/libva/va/va_x11.h"
+#else
+#include "third_party/libva/va/drm/va_drm.h"
+#endif
#include "ui/gfx/size.h"
namespace content {
@@ -47,7 +51,11 @@ class CONTENT_EXPORT VaapiWrapper {
static scoped_ptr<VaapiWrapper> Create(
CodecMode mode,
media::VideoCodecProfile profile,
- Display* x_display,
+#if defined(USE_X11)
+ Display* display,
+#else
+ int display,
+#endif
const base::Closure& report_error_to_uma_cb);
~VaapiWrapper();
@@ -92,12 +100,31 @@ class CONTENT_EXPORT VaapiWrapper {
// buffers. Return false if Execute() fails.
bool ExecuteAndDestroyPendingBuffers(VASurfaceID va_surface_id);
+#if defined(USE_X11)
// Put data from |va_surface_id| into |x_pixmap| of size |size|,
// converting/scaling to it.
bool PutSurfaceIntoPixmap(VASurfaceID va_surface_id,
Pixmap x_pixmap,
gfx::Size dest_size);
+#else
+ // Create RGB image of size |size|, assigning it to |image|.
+ bool CreateRGBImage(gfx::Size size, VAImage* image);
+ // Destroy |image|. Should call DestroyImage before destroying the surface it
+ // is bound to.
+ void DestroyImage(VAImage* image);
+
+ // Map data store of the |buffer| into the |image|'s.
+ bool MapImage(VAImage* image, void** buffer);
+
+ // Unmap |image|. This must happens after making changes to a mapped data
+ // store, so the server knows that the data is ready to be consumed.
+ void UnmapImage(VAImage* image);
+
+ // Put data from |va_surface_id| into |va_image|, converting/scaling it.
+ bool PutSurfaceIntoImage(VASurfaceID va_surface_id,
+ VAImage* va_image);
+#endif
// Returns true if the VAAPI version is less than the specified version.
bool VAAPIVersionLessThan(int major, int minor);
@@ -139,7 +166,11 @@ class CONTENT_EXPORT VaapiWrapper {
bool Initialize(CodecMode mode,
media::VideoCodecProfile profile,
+#if defined(USE_X11)
Display* x_display,
+#else
+ int display,
+#endif
const base::Closure& report_error__to_uma_cb);
void Deinitialize();

Powered by Google App Engine
This is Rietveld 408576698