impement android.media.MediaCodec using libavcodec

The current implementation requires a VA-API driver and a Wayland
compositor with YUV-buffer support. GNOME supports YUV-buffers
since the recent version 45 release
This commit is contained in:
Julian Winkler
2023-10-08 16:09:27 +02:00
parent 23c0b006ef
commit b340032e9f
13 changed files with 834 additions and 13 deletions

View File

@@ -51,6 +51,8 @@
// FIXME: put the header in a common place
#include "../api-impl-jni/defines.h"
#include "native_window.h"
/**
* Transforms that can be applied to buffers as they are displayed to a window.
*
@@ -70,16 +72,6 @@ enum ANativeWindowTransform {
ANATIVEWINDOW_TRANSFORM_ROTATE_90,
};
struct ANativeWindow {
EGLNativeWindowType egl_window;
GtkWidget *surface_view_widget;
struct wl_display *wayland_display;
struct wl_surface *wayland_surface;
Display *x11_display;
gulong resize_handler;
int refcount;
};
/**
* Opaque type that provides access to a native window.
*

View File

@@ -0,0 +1,17 @@
#include <EGL/egl.h>
#include <gtk/gtk.h>
#include <jni.h>
#include <X11/Xlib.h>
struct ANativeWindow {
EGLNativeWindowType egl_window;
GtkWidget *surface_view_widget;
struct wl_display *wayland_display;
struct wl_surface *wayland_surface;
Display *x11_display;
gulong resize_handler;
int refcount;
};
struct ANativeWindow *ANativeWindow_fromSurface(JNIEnv* env, jobject surface);