FFmpeg
hwcontext_mediacodec.h
Go to the documentation of this file.
1 /*
2  * This file is part of FFmpeg.
3  *
4  * FFmpeg is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2.1 of the License, or (at your option) any later version.
8  *
9  * FFmpeg is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with FFmpeg; if not, write to the Free Software
16  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17  */
18 
19 #ifndef AVUTIL_HWCONTEXT_MEDIACODEC_H
20 #define AVUTIL_HWCONTEXT_MEDIACODEC_H
21 
22 /**
23  * MediaCodec details.
24  *
25  * Allocated as AVHWDeviceContext.hwctx
26  */
27 typedef struct AVMediaCodecDeviceContext {
28  /**
29  * android/view/Surface handle, to be filled by the user.
30  *
31  * This is the default surface used by decoders on this device.
32  */
33  void *surface;
34 
35  /**
36  * Pointer to ANativeWindow.
37  *
38  * It both surface and native_window is NULL, try to create it
39  * automatically if create_window is true and OS support
40  * createPersistentInputSurface.
41  *
42  * It can be used as output surface for decoder and input surface for
43  * encoder.
44  */
46 
47  /**
48  * Enable createPersistentInputSurface automatically.
49  *
50  * Disabled by default.
51  *
52  * It can be enabled by setting this flag directly, or by setting
53  * AVDictionary of av_hwdevice_ctx_create(), with "create_window" as key.
54  * The second method is useful for ffmpeg cmdline, e.g., we can enable it
55  * via:
56  * -init_hw_device mediacodec=mediacodec,create_window=1
57  */
60 
61 #endif /* AVUTIL_HWCONTEXT_MEDIACODEC_H */
AVMediaCodecDeviceContext::surface
void * surface
android/view/Surface handle, to be filled by the user.
Definition: hwcontext_mediacodec.h:33
AVMediaCodecDeviceContext::create_window
int create_window
Enable createPersistentInputSurface automatically.
Definition: hwcontext_mediacodec.h:58
AVMediaCodecDeviceContext
MediaCodec details.
Definition: hwcontext_mediacodec.h:27
AVMediaCodecDeviceContext::native_window
void * native_window
Pointer to ANativeWindow.
Definition: hwcontext_mediacodec.h:45