FFmpeg
libavcodec
mediacodec_surface.c
Go to the documentation of this file.
1
/*
2
* Android MediaCodec Surface functions
3
*
4
* Copyright (c) 2016 Matthieu Bouron <matthieu.bouron stupeflix.com>
5
*
6
* This file is part of FFmpeg.
7
*
8
* FFmpeg is free software; you can redistribute it and/or
9
* modify it under the terms of the GNU Lesser General Public
10
* License as published by the Free Software Foundation; either
11
* version 2.1 of the License, or (at your option) any later version.
12
*
13
* FFmpeg is distributed in the hope that it will be useful,
14
* but WITHOUT ANY WARRANTY; without even the implied warranty of
15
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16
* Lesser General Public License for more details.
17
*
18
* You should have received a copy of the GNU Lesser General Public
19
* License along with FFmpeg; if not, write to the Free Software
20
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21
*/
22
23
#include <
jni.h
>
24
25
#include "
ffjni.h
"
26
#include "
mediacodec_surface.h
"
27
28
FFANativeWindow
*
ff_mediacodec_surface_ref
(
void
*surface,
void
*log_ctx)
29
{
30
JNIEnv *env =
NULL
;
31
32
env =
ff_jni_get_env
(log_ctx);
33
if
(!env) {
34
return
NULL
;
35
}
36
37
return
(*env)->NewGlobalRef(env, surface);
38
}
39
40
int
ff_mediacodec_surface_unref
(
FFANativeWindow
*
window
,
void
*log_ctx)
41
{
42
JNIEnv *env =
NULL
;
43
44
env =
ff_jni_get_env
(log_ctx);
45
if
(!env) {
46
return
AVERROR_EXTERNAL
;
47
}
48
49
(*env)->DeleteGlobalRef(env,
window
);
50
51
return
0;
52
}
mediacodec_surface.h
window
static SDL_Window * window
Definition:
ffplay.c:364
ff_mediacodec_surface_ref
FFANativeWindow * ff_mediacodec_surface_ref(void *surface, void *log_ctx)
Definition:
mediacodec_surface.c:28
NULL
#define NULL
Definition:
coverity.c:32
ff_jni_get_env
JNIEnv * ff_jni_get_env(void *log_ctx)
Definition:
ffjni.c:51
ff_mediacodec_surface_unref
int ff_mediacodec_surface_unref(FFANativeWindow *window, void *log_ctx)
Definition:
mediacodec_surface.c:40
AVERROR_EXTERNAL
#define AVERROR_EXTERNAL
Generic error in an external library.
Definition:
error.h:59
ffjni.h
FFANativeWindow
struct FFANativeWindow FFANativeWindow
Definition:
mediacodec_surface.h:29
jni.h
Generated on Wed Aug 24 2022 21:37:41 for FFmpeg by
1.8.17