hwcontext_mediacodec.h (1988B)
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 */ 45 void *native_window; 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 */ 58 int create_window; 59 } AVMediaCodecDeviceContext; 60 61 #endif /* AVUTIL_HWCONTEXT_MEDIACODEC_H */