mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2025-12-31 11:20:05 +01:00
Add a shader-based Apple ProRes decoder. It supports all codec features for profiles up to the 4444 XQ profile, ie.: - 4:2:2 and 4:4:4 chroma subsampling - 10- and 12-bit component depth - Interlacing - Alpha The implementation consists in two shaders: the VLD kernel does entropy decoding for color/alpha, and the IDCT kernel performs the inverse transform on color components. Benchmarks for a 4k yuv422p10 sample: - AMD Radeon 6700XT: 178 fps - Intel i7 Tiger Lake: 37 fps - NVidia Orin Nano: 70 fps
30 lines
1.1 KiB
Makefile
30 lines
1.1 KiB
Makefile
GEN_CLEANSUFFIXES = *.o *.c *.d
|
|
|
|
clean::
|
|
$(RM) $(GEN_CLEANSUFFIXES:%=libavcodec/vulkan/%)
|
|
|
|
OBJS-$(CONFIG_FFV1_VULKAN_ENCODER) += vulkan/common.o \
|
|
vulkan/rangecoder.o vulkan/ffv1_vlc.o \
|
|
vulkan/ffv1_common.o vulkan/ffv1_reset.o \
|
|
vulkan/ffv1_enc_rct.o vulkan/ffv1_enc_setup.o \
|
|
vulkan/ffv1_rct_search.o vulkan/ffv1_enc.o
|
|
|
|
OBJS-$(CONFIG_FFV1_VULKAN_HWACCEL) += vulkan/common.o \
|
|
vulkan/rangecoder.o vulkan/ffv1_vlc.o \
|
|
vulkan/ffv1_common.o vulkan/ffv1_reset.o \
|
|
vulkan/ffv1_dec_setup.o vulkan/ffv1_dec.o
|
|
|
|
OBJS-$(CONFIG_PRORES_RAW_VULKAN_HWACCEL) += vulkan/common.o \
|
|
vulkan/prores_raw.o
|
|
|
|
OBJS-$(CONFIG_PRORES_VULKAN_HWACCEL) += vulkan/common.o \
|
|
vulkan/prores_reset.o \
|
|
vulkan/prores_vld.o \
|
|
vulkan/prores_idct.o
|
|
|
|
VULKAN = $(subst $(SRC_PATH)/,,$(wildcard $(SRC_PATH)/libavcodec/vulkan/*.comp))
|
|
.SECONDARY: $(VULKAN:.comp=.c)
|
|
libavcodec/vulkan/%.c: TAG = VULKAN
|
|
libavcodec/vulkan/%.c: $(SRC_PATH)/libavcodec/vulkan/%.comp
|
|
$(M)$(SRC_PATH)/tools/source2c $< $@
|