avcodec/mediacodec_surface: define and use FFANativeWindow to mimic NDK interface

This will make it easy to switch to ANativeWindow_fromSurface
and ANativeWindow_release in the future.

Signed-off-by: Aman Gupta <aman@tmm1.net>
pull/322/head
Aman Gupta 5 years ago
parent 8a3623e2fb
commit 7fddf4b266
  1. 6
      libavcodec/mediacodec_surface.c
  2. 7
      libavcodec/mediacodec_surface.h

@ -25,7 +25,7 @@
#include "ffjni.h"
#include "mediacodec_surface.h"
void *ff_mediacodec_surface_ref(void *surface, void *log_ctx)
FFANativeWindow *ff_mediacodec_surface_ref(void *surface, void *log_ctx)
{
JNIEnv *env = NULL;
@ -37,7 +37,7 @@ void *ff_mediacodec_surface_ref(void *surface, void *log_ctx)
return (*env)->NewGlobalRef(env, surface);
}
int ff_mediacodec_surface_unref(void *surface, void *log_ctx)
int ff_mediacodec_surface_unref(FFANativeWindow *window, void *log_ctx)
{
JNIEnv *env = NULL;
@ -46,7 +46,7 @@ int ff_mediacodec_surface_unref(void *surface, void *log_ctx)
return AVERROR_EXTERNAL;
}
(*env)->DeleteGlobalRef(env, surface);
(*env)->DeleteGlobalRef(env, window);
return 0;
}

@ -25,7 +25,10 @@
#include "libavcodec/avcodec.h"
void *ff_mediacodec_surface_ref(void *surface, void *log_ctx);
int ff_mediacodec_surface_unref(void *surface, void *log_ctx);
struct FFANativeWindow;
typedef struct FFANativeWindow FFANativeWindow;
FFANativeWindow *ff_mediacodec_surface_ref(void *surface, void *log_ctx);
int ff_mediacodec_surface_unref(FFANativeWindow *window, void *log_ctx);
#endif /* AVCODEC_MEDIACODEC_SURFACE_H */

Loading…
Cancel
Save