ffmpeg/libswscale
Andreas Rheinhardt 20b0d24c2f Makefile: Redo duplicating object files in shared builds
In case of shared builds, some object files containing tables
are currently duplicated into other libraries: log2_tab.c,
golomb.c, reverse.c. The check for whether this is duplicated
is simply whether CONFIG_SHARED is true. Yet this is crude:
E.g. libavdevice includes reverse.c for shared builds, but only
needs it for the decklink input device, which given that decklink
is not enabled by default will be unused in most libavdevice.so.

This commit changes this by making it more explicit about what
to duplicate from other libraries. To do this, two new Makefile
variables were added: SHLIBOBJS and STLIBOBJS. SHLIBOBJS contains
the objects that are duplicated from other libraries in case of
shared builds; STLIBOBJS contains stuff that a library has to
provide for other libraries in case of static builds. These new
variables provide a way to enable/disable with a finer granularity
than just whether shared builds are enabled or not. E.g. lavd's
Makefile now contains: SHLIBOBJS-$(CONFIG_DECKLINK_INDEV) += reverse.o

Another example is provided by the golomb tables. These are provided
by lavc for static builds, even if one uses a build configuration
that makes only lavf use them. Therefore lavc's Makefile contains
STLIBOBJS-$(CONFIG_MXF_MUXER) += golomb.o, whereas lavf's Makefile
has a corresponding SHLIBOBJS-$(CONFIG_MXF_MUXER) += golomb_tab.o.
E.g. in case the MXF muxer is the only component needing these tables
only libavformat.so will contain them for shared builds; currently
libavcodec.so does so, too.
(There is currently a CONFIG_EXTRA group for golomb. But actually
one would need two groups (golomb_avcodec and golomb_avformat) in
order to know when and where to include these tables. Therefore
this commit uses a Makefile-based approach for this and stops
using these groups for the users in libavformat.)

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2022-01-04 05:01:04 +01:00
..
aarch64 sws: rename SwsContext.swscale to convert_unscaled 2021-07-03 15:57:53 +02:00
arm sws: rename SwsContext.swscale to convert_unscaled 2021-07-03 15:57:53 +02:00
ppc sws: rename SwsContext.swscale to convert_unscaled 2021-07-03 15:57:53 +02:00
tests
x86 swscale/x86/init: use isSemiPlanarYUV 2021-12-23 01:41:03 -06:00
Makefile Makefile: Redo duplicating object files in shared builds 2022-01-04 05:01:04 +01:00
alphablend.c swscale/alphablend: Fix slice handling 2021-10-03 20:38:29 +02:00
bayer_template.c
gamma.c
hscale.c
hscale_fast_bilinear.c
input.c swscale: add P210/P410/P216/P416 input 2021-11-28 16:40:43 -06:00
libswscale.v
log2_tab.c
options.c libswscale/options: Add parent_log_context_offset to AVClass 2021-09-19 23:52:37 +02:00
output.c swscale: add P210/P410/P216/P416 output 2021-12-22 18:38:40 -06:00
rgb2rgb.c
rgb2rgb.h
rgb2rgb_template.c
slice.c Replace all occurences of av_mallocz_array() by av_calloc() 2021-09-20 01:03:52 +02:00
swscale.c swscale/swscale: check SWS_PRINT_INFO flag for printing alignment warnings 2021-11-13 19:55:32 +01:00
swscale.h swscale/swscale: Improve *ColorspaceDetails() doxy 2021-10-24 16:54:36 +02:00
swscale_internal.h libswscale: Adds ff_hscale8to15_4_avx2 and ff_hscale8to15_X4_avx2 for all filter sizes. 2021-12-15 20:04:59 -03:00
swscale_unscaled.c sws: add a new scaling API 2021-09-06 09:16:52 +02:00
swscaleres.rc
utils.c swscale: add P210/P410/P216/P416 output 2021-12-22 18:38:40 -06:00
version.h lib*/version.h: Bump Versions after release/5.0 branch 2022-01-03 22:10:46 +01:00
vscale.c Replace all occurences of av_mallocz_array() by av_calloc() 2021-09-20 01:03:52 +02:00
yuv2rgb.c swscale/yuv2rgb: Silence a set-but-unused-variable warning 2021-12-03 16:10:51 +01:00