mirror of
https://gitee.com/openharmony/third_party_ffmpeg
synced 2024-11-26 20:50:34 +00:00
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>
This commit is contained in:
parent
8a3623e2fb
commit
7fddf4b266
@ -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…
Reference in New Issue
Block a user