mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2026-10-28 18:15:24 +08:00
Both libavfilter and libswscale currently put framepool.o in their regular
OBJS, defining the same four ff_frame_pool_* symbols. Loading both static
archives in full therefore fails with multiple definitions.
Move the implementation and internal header to libavutil. Include the
object in its STLIBOBJS when either consumer is enabled, and use SHLIBOBJS
for the private copies in libavfilter and libswscale. This preserves
independent builds and shared-library symbol visibility without adding
an inter-library dependency or exposing a new public API.
Verified whole-archive links with both consumers, and with each consumer
configured independently. Shared builds pass fate-filter-rgbtestsrc-gbrp12
and fate-filter-rgbtestsrc-gbrap12; static and shared video scaling and
audio volume smoke tests produce identical frame checksums. Also checked
static consumers linked against shared dependencies.
Fixes: 6c89a30ecd
Fixes: #25419
Assisted-by: Fairy
346 lines
23 KiB
Makefile
346 lines
23 KiB
Makefile
NAME = avutil
|
|
DESC = FFmpeg utility library
|
|
|
|
HEADERS = adler32.h \
|
|
aes.h \
|
|
aes_ctr.h \
|
|
ambient_viewing_environment.h \
|
|
attributes.h \
|
|
audio_fifo.h \
|
|
avassert.h \
|
|
avstring.h \
|
|
avutil.h \
|
|
base64.h \
|
|
blowfish.h \
|
|
bprint.h \
|
|
bswap.h \
|
|
buffer.h \
|
|
cast5.h \
|
|
camellia.h \
|
|
channel_layout.h \
|
|
common.h \
|
|
container_fifo.h \
|
|
cpu.h \
|
|
crc.h \
|
|
csp.h \
|
|
des.h \
|
|
detection_bbox.h \
|
|
dict.h \
|
|
display.h \
|
|
dovi_meta.h \
|
|
downmix_info.h \
|
|
encryption_info.h \
|
|
error.h \
|
|
eval.h \
|
|
executor.h \
|
|
fifo.h \
|
|
file.h \
|
|
film_grain_params.h \
|
|
frame.h \
|
|
gain_map.h \
|
|
hash.h \
|
|
hdr_dynamic_metadata.h \
|
|
hdr_dynamic_vivid_metadata.h \
|
|
hmac.h \
|
|
hwcontext.h \
|
|
hwcontext_cuda.h \
|
|
hwcontext_d3d11va.h \
|
|
hwcontext_d3d12va.h \
|
|
hwcontext_drm.h \
|
|
hwcontext_dxva2.h \
|
|
hwcontext_amf.h \
|
|
hwcontext_qsv.h \
|
|
hwcontext_mediacodec.h \
|
|
hwcontext_opencl.h \
|
|
hwcontext_oh.h \
|
|
hwcontext_vaapi.h \
|
|
hwcontext_videotoolbox.h \
|
|
hwcontext_vdpau.h \
|
|
hwcontext_vulkan.h \
|
|
iamf.h \
|
|
imgutils.h \
|
|
intfloat.h \
|
|
intreadwrite.h \
|
|
lfg.h \
|
|
log.h \
|
|
lzo.h \
|
|
macros.h \
|
|
mathematics.h \
|
|
mastering_display_metadata.h \
|
|
md5.h \
|
|
mem.h \
|
|
motion_vector.h \
|
|
murmur3.h \
|
|
opt.h \
|
|
parseutils.h \
|
|
pixdesc.h \
|
|
pixelutils.h \
|
|
pixfmt.h \
|
|
random_seed.h \
|
|
raw_color_params.h \
|
|
rc4.h \
|
|
rational.h \
|
|
refstruct.h \
|
|
replaygain.h \
|
|
ripemd.h \
|
|
samplefmt.h \
|
|
sha.h \
|
|
sha512.h \
|
|
spherical.h \
|
|
stereo3d.h \
|
|
tdrdi.h \
|
|
threadmessage.h \
|
|
time.h \
|
|
timecode.h \
|
|
timestamp.h \
|
|
tree.h \
|
|
twofish.h \
|
|
uuid.h \
|
|
version.h \
|
|
video_enc_params.h \
|
|
xtea.h \
|
|
tea.h \
|
|
tx.h \
|
|
video_hint.h
|
|
|
|
ARCH_HEADERS = bswap.h \
|
|
intmath.h \
|
|
intreadwrite.h \
|
|
timer.h \
|
|
|
|
BUILT_HEADERS = avconfig.h \
|
|
ffversion.h
|
|
|
|
OBJS = adler32.o \
|
|
aes.o \
|
|
aes_ctr.o \
|
|
ambient_viewing_environment.o \
|
|
audio_fifo.o \
|
|
avstring.o \
|
|
avsscanf.o \
|
|
base64.o \
|
|
blowfish.o \
|
|
bprint.o \
|
|
buffer.o \
|
|
cast5.o \
|
|
camellia.o \
|
|
channel_layout.o \
|
|
container_fifo.o \
|
|
cpu.o \
|
|
crc.o \
|
|
csp.o \
|
|
des.o \
|
|
detection_bbox.o \
|
|
dict.o \
|
|
display.o \
|
|
dovi_meta.o \
|
|
downmix_info.o \
|
|
encryption_info.o \
|
|
error.o \
|
|
eval.o \
|
|
executor.o \
|
|
fifo.o \
|
|
file.o \
|
|
file_open.o \
|
|
float_dsp.o \
|
|
float_scalarproduct.o \
|
|
film_grain_params.o \
|
|
fixed_dsp.o \
|
|
frame.o \
|
|
gain_map.o \
|
|
hash.o \
|
|
hdr_dynamic_metadata.o \
|
|
hdr_dynamic_vivid_metadata.o \
|
|
hmac.o \
|
|
hwcontext.o \
|
|
iamf.o \
|
|
imgutils.o \
|
|
integer.o \
|
|
intmath.o \
|
|
lfg.o \
|
|
lls.o \
|
|
log.o \
|
|
log2_tab.o \
|
|
lzo.o \
|
|
mathematics.o \
|
|
mastering_display_metadata.o \
|
|
md5.o \
|
|
mem.o \
|
|
murmur3.o \
|
|
opt.o \
|
|
parseutils.o \
|
|
pixdesc.o \
|
|
pixelutils.o \
|
|
random_seed.o \
|
|
raw_color_params.o \
|
|
rational.o \
|
|
refstruct.o \
|
|
reverse.o \
|
|
rc4.o \
|
|
ripemd.o \
|
|
samplefmt.o \
|
|
side_data.o \
|
|
sha.o \
|
|
sha512.o \
|
|
slicethread.o \
|
|
spherical.o \
|
|
stereo3d.o \
|
|
tdrdi.o \
|
|
threadmessage.o \
|
|
time.o \
|
|
timecode.o \
|
|
timecode_internal.o \
|
|
timestamp.o \
|
|
tree.o \
|
|
twofish.o \
|
|
utils.o \
|
|
xga_font_data.o \
|
|
xtea.o \
|
|
tea.o \
|
|
tx.o \
|
|
tx_float.o \
|
|
tx_double.o \
|
|
tx_int32.o \
|
|
uuid.o \
|
|
version.o \
|
|
video_enc_params.o \
|
|
video_hint.o \
|
|
|
|
|
|
OBJS-$(CONFIG_CUDA) += hwcontext_cuda.o
|
|
OBJS-$(CONFIG_D3D11VA) += hwcontext_d3d11va.o
|
|
OBJS-$(CONFIG_D3D12VA) += hwcontext_d3d12va.o
|
|
OBJS-$(CONFIG_DXVA2) += hwcontext_dxva2.o
|
|
OBJS-$(CONFIG_AMF) += hwcontext_amf.o
|
|
OBJS-$(CONFIG_LIBDRM) += hwcontext_drm.o
|
|
OBJS-$(CONFIG_MACOS_KPERF) += macos_kperf.o
|
|
OBJS-$(CONFIG_MEDIACODEC) += hwcontext_mediacodec.o
|
|
OBJS-$(CONFIG_OHCODEC) += hwcontext_oh.o
|
|
OBJS-$(CONFIG_OPENCL) += hwcontext_opencl.o
|
|
OBJS-$(CONFIG_QSV) += hwcontext_qsv.o
|
|
OBJS-$(CONFIG_VAAPI) += hwcontext_vaapi.o
|
|
OBJS-$(CONFIG_VIDEOTOOLBOX) += hwcontext_videotoolbox.o
|
|
OBJS-$(CONFIG_VDPAU) += hwcontext_vdpau.o
|
|
OBJS-$(CONFIG_VULKAN) += hwcontext_vulkan.o vulkan.o
|
|
|
|
OBJS-$(!CONFIG_VULKAN) += hwcontext_stub.o
|
|
|
|
OBJS += $(COMPAT_OBJS:%=../compat/%)
|
|
|
|
# Object files to satisfy dependencies of other libraries for static builds
|
|
STLIBOBJS-$(CONFIG_AVFILTER) += framepool.o
|
|
STLIBOBJS-$(CONFIG_EXR_DECODER) += half2float.o float2half.o
|
|
STLIBOBJS-$(CONFIG_EXR_ENCODER) += float2half.o
|
|
STLIBOBJS-$(CONFIG_PHM_DECODER) += half2float.o
|
|
STLIBOBJS-$(CONFIG_PHM_ENCODER) += float2half.o
|
|
STLIBOBJS-$(CONFIG_SWSCALE) += framepool.o half2float.o
|
|
|
|
# Windows resource file
|
|
SHLIBOBJS-$(HAVE_GNU_WINDRES) += avutilres.o
|
|
|
|
SKIPHEADERS += objc.h
|
|
SKIPHEADERS-$(CONFIG_ZLIB) += zlib_utils.h
|
|
SKIPHEADERS-$(HAVE_CUDA_H) += hwcontext_cuda.h
|
|
SKIPHEADERS-$(CONFIG_CUDA) += hwcontext_cuda_internal.h \
|
|
cuda_check.h
|
|
SKIPHEADERS-$(CONFIG_D3D11VA) += hwcontext_d3d11va.h
|
|
SKIPHEADERS-$(CONFIG_D3D12VA) += hwcontext_d3d12va.h
|
|
SKIPHEADERS-$(CONFIG_DXVA2) += hwcontext_dxva2.h
|
|
SKIPHEADERS-$(CONFIG_AMF) += hwcontext_amf.h \
|
|
hwcontext_amf_internal.h
|
|
SKIPHEADERS-$(CONFIG_QSV) += hwcontext_qsv.h
|
|
SKIPHEADERS-$(CONFIG_OPENCL) += hwcontext_opencl.h
|
|
SKIPHEADERS-$(CONFIG_VAAPI) += hwcontext_vaapi.h
|
|
SKIPHEADERS-$(CONFIG_VIDEOTOOLBOX) += hwcontext_videotoolbox.h
|
|
SKIPHEADERS-$(CONFIG_VDPAU) += hwcontext_vdpau.h
|
|
SKIPHEADERS-$(CONFIG_VULKAN) += hwcontext_vulkan.h vulkan.h \
|
|
vulkan_functions.h \
|
|
vulkan_loader.h
|
|
SKIPHEADERS-$(CONFIG_SHADER_COMPRESSION) += zlib_utils.h
|
|
|
|
TESTPROGS = adler32 \
|
|
aes \
|
|
aes_ctr \
|
|
ambient_viewing_environment \
|
|
atomic \
|
|
audio_fifo \
|
|
avstring \
|
|
base64 \
|
|
blowfish \
|
|
bprint \
|
|
buffer \
|
|
cast5 \
|
|
camellia \
|
|
channel_layout \
|
|
color_utils \
|
|
cpu \
|
|
crc \
|
|
csp \
|
|
des \
|
|
detection_bbox \
|
|
dict \
|
|
display \
|
|
dovi_meta \
|
|
downmix_info \
|
|
encryption_info \
|
|
error \
|
|
eval \
|
|
file \
|
|
fifo \
|
|
film_grain_params \
|
|
hash \
|
|
hdr_dynamic_metadata \
|
|
hdr_dynamic_vivid_metadata \
|
|
hmac \
|
|
hwdevice \
|
|
iamf \
|
|
integer \
|
|
imgutils \
|
|
lfg \
|
|
lls \
|
|
log \
|
|
mastering_display_metadata \
|
|
mathematics \
|
|
md5 \
|
|
murmur3 \
|
|
opt \
|
|
pca \
|
|
parseutils \
|
|
pixdesc \
|
|
pixelutils \
|
|
pixfmt_best \
|
|
random_seed \
|
|
rational \
|
|
rc4 \
|
|
ripemd \
|
|
sha \
|
|
sha512 \
|
|
samplefmt \
|
|
side_data \
|
|
side_data_array \
|
|
softfloat \
|
|
spherical \
|
|
stereo3d \
|
|
tdrdi \
|
|
timecode \
|
|
timestamp \
|
|
tree \
|
|
twofish \
|
|
utf8 \
|
|
uuid \
|
|
video_enc_params \
|
|
video_hint \
|
|
xtea \
|
|
tea \
|
|
|
|
TESTPROGS-$(CONFIG_CUDA) += hwcontext_cuda
|
|
TESTPROGS-$(HAVE_THREADS) += cpu_init
|
|
TESTPROGS-$(HAVE_LZO1X_999_COMPRESS) += lzo
|
|
|
|
TOOLS = crypto_bench ffhash ffeval ffescape
|
|
|
|
tools/crypto_bench$(EXESUF): ELIBS += $(if $(VERSUS),$(subst +, -l,+$(VERSUS)),)
|
|
tools/crypto_bench.o: CFLAGS += -DUSE_EXT_LIBS=0$(if $(VERSUS),$(subst +,+USE_,+$(VERSUS)),)
|
|
|
|
$(SUBDIR)tests/lzo$(EXESUF): ELIBS = -llzo2
|