• Zhao Zhili's avatar
    avutil/hwcontext_mediacodec: fix backward compatibility · 1263b0a6
    Zhao Zhili authored
    AVMediaCodecDeviceContext without surface or native_window is
    useless, it shouldn't be created at all. Such dummy AVHWDeviceContext
    is allowed before, and it's used by mpv player. Creating a ANativeWindow
    automatically breaks such usecases.
    
    So disable creating a ANativeWindow by default. It can be enabled
    via the create_window flag, or by set the AVDictionary of
    av_hwdevice_ctx_create(). The downside is that
    
    ffmpeg -hwaccel mediacodec -i input.mp4 \
    	-c:a copy -c:v hevc_mediacodec output.mp4
    
    use ByteBuffer mode which isn't as efficient as before. The upside
    is libavfilter works now, which should be less surprise.
    
    To enable create_window on ffmpeg command line, use
    ffmpeg -hwaccel mediacodec \
    	-init_hw_device mediacodec=mediacodec,create_window=1 \
    	-i input.mp4 -c:a copy -c:v hevc_mediacodec output.mp4
    
    Users should know what it is to enable create_window. It should
    be OK to take sometime to figure out the option. And there are comments
    inside hwcontext_mediacodec.h to help user figure it out.
    Signed-off-by: 's avatarZhao Zhili <zhilizhao@tencent.com>
    1263b0a6
Name
Last commit
Last update
..
aarch64 Loading commit data...
arm Loading commit data...
avr32 Loading commit data...
bfin Loading commit data...
loongarch Loading commit data...
mips Loading commit data...
ppc Loading commit data...
riscv Loading commit data...
sh4 Loading commit data...
tests Loading commit data...
tomi Loading commit data...
x86 Loading commit data...
.gitignore Loading commit data...
Makefile Loading commit data...
adler32.c Loading commit data...
adler32.h Loading commit data...
aes.c Loading commit data...
aes.h Loading commit data...
aes_ctr.c Loading commit data...
aes_ctr.h Loading commit data...
aes_internal.h Loading commit data...
ambient_viewing_environment.c Loading commit data...
ambient_viewing_environment.h Loading commit data...
attributes.h Loading commit data...
attributes_internal.h Loading commit data...
audio_fifo.c Loading commit data...
audio_fifo.h Loading commit data...
avassert.h Loading commit data...
avsscanf.c Loading commit data...
avstring.c Loading commit data...
avstring.h Loading commit data...
avutil.h Loading commit data...
avutilres.rc Loading commit data...
base64.c Loading commit data...
base64.h Loading commit data...
blowfish.c Loading commit data...
blowfish.h Loading commit data...
bprint.c Loading commit data...
bprint.h Loading commit data...
bswap.h Loading commit data...
buffer.c Loading commit data...
buffer.h Loading commit data...
buffer_internal.h Loading commit data...
camellia.c Loading commit data...
camellia.h Loading commit data...
cast5.c Loading commit data...
cast5.h Loading commit data...
channel_layout.c Loading commit data...
channel_layout.h Loading commit data...
color_utils.c Loading commit data...
color_utils.h Loading commit data...
colorspace.h Loading commit data...
common.h Loading commit data...
cpu.c Loading commit data...
cpu.h Loading commit data...
cpu_internal.h Loading commit data...
crc.c Loading commit data...
crc.h Loading commit data...
csp.c Loading commit data...
csp.h Loading commit data...
cuda_check.h Loading commit data...
des.c Loading commit data...
des.h Loading commit data...
detection_bbox.c Loading commit data...
detection_bbox.h Loading commit data...
dict.c Loading commit data...
dict.h Loading commit data...
dict_internal.h Loading commit data...
display.c Loading commit data...
display.h Loading commit data...
dovi_meta.c Loading commit data...
dovi_meta.h Loading commit data...
downmix_info.c Loading commit data...
downmix_info.h Loading commit data...
dynarray.h Loading commit data...
encryption_info.c Loading commit data...
encryption_info.h Loading commit data...
error.c Loading commit data...
error.h Loading commit data...
eval.c Loading commit data...
eval.h Loading commit data...
ffmath.h Loading commit data...
fifo.c Loading commit data...
fifo.h Loading commit data...
file.c Loading commit data...
file.h Loading commit data...
file_open.c Loading commit data...
file_open.h Loading commit data...
film_grain_params.c Loading commit data...
film_grain_params.h Loading commit data...
fixed_dsp.c Loading commit data...
fixed_dsp.h Loading commit data...
float2half.c Loading commit data...
float2half.h Loading commit data...
float_dsp.c Loading commit data...
float_dsp.h Loading commit data...
frame.c Loading commit data...
frame.h Loading commit data...
getenv_utf8.h Loading commit data...
half2float.c Loading commit data...
half2float.h Loading commit data...
hash.c Loading commit data...
hash.h Loading commit data...
hdr_dynamic_metadata.c Loading commit data...
hdr_dynamic_metadata.h Loading commit data...
hdr_dynamic_vivid_metadata.c Loading commit data...
hdr_dynamic_vivid_metadata.h Loading commit data...
hmac.c Loading commit data...
hmac.h Loading commit data...
hwcontext.c Loading commit data...
hwcontext.h Loading commit data...
hwcontext_cuda.c Loading commit data...
hwcontext_cuda.h Loading commit data...
hwcontext_cuda_internal.h Loading commit data...
hwcontext_d3d11va.c Loading commit data...
hwcontext_d3d11va.h Loading commit data...
hwcontext_drm.c Loading commit data...
hwcontext_drm.h Loading commit data...
hwcontext_dxva2.c Loading commit data...
hwcontext_dxva2.h Loading commit data...
hwcontext_internal.h Loading commit data...
hwcontext_mediacodec.c Loading commit data...
hwcontext_mediacodec.h Loading commit data...
hwcontext_opencl.c Loading commit data...
hwcontext_opencl.h Loading commit data...
hwcontext_qsv.c Loading commit data...
hwcontext_qsv.h Loading commit data...
hwcontext_stub.c Loading commit data...
hwcontext_vaapi.c Loading commit data...
hwcontext_vaapi.h Loading commit data...
hwcontext_vdpau.c Loading commit data...
hwcontext_vdpau.h Loading commit data...
hwcontext_videotoolbox.c Loading commit data...
hwcontext_videotoolbox.h Loading commit data...
hwcontext_vulkan.c Loading commit data...
hwcontext_vulkan.h Loading commit data...
imgutils.c Loading commit data...
imgutils.h Loading commit data...
imgutils_internal.h Loading commit data...
integer.c Loading commit data...
integer.h Loading commit data...
internal.h Loading commit data...
intfloat.h Loading commit data...
intmath.c Loading commit data...
intmath.h Loading commit data...
intreadwrite.h Loading commit data...
lfg.c Loading commit data...
lfg.h Loading commit data...
libavutil.v Loading commit data...
libm.h Loading commit data...
lls.c Loading commit data...
lls.h Loading commit data...
log.c Loading commit data...
log.h Loading commit data...
log2_tab.c Loading commit data...
lzo.c Loading commit data...
lzo.h Loading commit data...
macos_kperf.c Loading commit data...
macos_kperf.h Loading commit data...
macros.h Loading commit data...
mastering_display_metadata.c Loading commit data...
mastering_display_metadata.h Loading commit data...
mathematics.c Loading commit data...
mathematics.h Loading commit data...
md5.c Loading commit data...
md5.h Loading commit data...
mem.c Loading commit data...
mem.h Loading commit data...
mem_internal.h Loading commit data...
motion_vector.h Loading commit data...
murmur3.c Loading commit data...
murmur3.h Loading commit data...
objc.h Loading commit data...
opt.c Loading commit data...
opt.h Loading commit data...
parseutils.c Loading commit data...
parseutils.h Loading commit data...
pca.c Loading commit data...
pca.h Loading commit data...
pixdesc.c Loading commit data...
pixdesc.h Loading commit data...
pixelutils.c Loading commit data...
pixelutils.h Loading commit data...
pixfmt.h Loading commit data...
qsort.h Loading commit data...
random_seed.c Loading commit data...
random_seed.h Loading commit data...
rational.c Loading commit data...
rational.h Loading commit data...
rc4.c Loading commit data...
rc4.h Loading commit data...
replaygain.h Loading commit data...
reverse.c Loading commit data...
reverse.h Loading commit data...
ripemd.c Loading commit data...
ripemd.h Loading commit data...
samplefmt.c Loading commit data...
samplefmt.h Loading commit data...
sha.c Loading commit data...
sha.h Loading commit data...
sha512.c Loading commit data...
sha512.h Loading commit data...
slicethread.c Loading commit data...
slicethread.h Loading commit data...
softfloat.h Loading commit data...
softfloat_ieee754.h Loading commit data...
softfloat_tables.h Loading commit data...
spherical.c Loading commit data...
spherical.h Loading commit data...
stereo3d.c Loading commit data...
stereo3d.h Loading commit data...
tablegen.h Loading commit data...
tea.c Loading commit data...
tea.h Loading commit data...
thread.h Loading commit data...
threadmessage.c Loading commit data...
threadmessage.h Loading commit data...
time.c Loading commit data...
time.h Loading commit data...
time_internal.h Loading commit data...
timecode.c Loading commit data...
timecode.h Loading commit data...
timer.h Loading commit data...
timestamp.h Loading commit data...
tree.c Loading commit data...
tree.h Loading commit data...
twofish.c Loading commit data...
twofish.h Loading commit data...
tx.c Loading commit data...
tx.h Loading commit data...
tx_double.c Loading commit data...
tx_float.c Loading commit data...
tx_int32.c Loading commit data...
tx_priv.h Loading commit data...
tx_template.c Loading commit data...
utils.c Loading commit data...
uuid.c Loading commit data...
uuid.h Loading commit data...
version.c Loading commit data...
version.h Loading commit data...
version_major.h Loading commit data...
video_enc_params.c Loading commit data...
video_enc_params.h Loading commit data...
vulkan.c Loading commit data...
vulkan.h Loading commit data...
vulkan_functions.h Loading commit data...
vulkan_glslang.c Loading commit data...
vulkan_loader.h Loading commit data...
vulkan_shaderc.c Loading commit data...
wchar_filename.h Loading commit data...
xga_font_data.c Loading commit data...
xga_font_data.h Loading commit data...
xtea.c Loading commit data...
xtea.h Loading commit data...