ffmpeg/libavdevice
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
..
tests
.gitignore
Makefile Makefile: Redo duplicating object files in shared builds 2022-01-04 05:01:04 +01:00
alldevices.c avdevice: Constify all devices 2021-04-27 11:48:05 -03:00
alsa.c avdevice/alsa_dec: make sure we have enough data in non-blocking mode 2021-03-12 23:55:30 +01:00
alsa.h avdevice/alsa_dec: make sure we have enough data in non-blocking mode 2021-03-12 23:55:30 +01:00
alsa_dec.c avdevice: Constify all devices 2021-04-27 11:48:05 -03:00
alsa_enc.c avdevice: Constify all devices 2021-04-27 11:48:05 -03:00
android_camera.c avdevice: Constify all devices 2021-04-27 11:48:05 -03:00
audiotoolbox.m avdevice: Constify all devices 2021-04-27 11:48:05 -03:00
avdevice.c avdevice: add info about media types(s) to AVDeviceInfo 2021-12-24 14:06:45 +05:30
avdevice.h avdevice: add info about media types(s) to AVDeviceInfo 2021-12-24 14:06:45 +05:30
avdeviceres.rc
avfoundation.m libavdevice/avfoundation.m: fix potential unreleased lock issue 2021-09-17 15:31:40 +02:00
bktr.c avdevice: Constify all devices 2021-04-27 11:48:05 -03:00
caca.c avdevice/caca: Don't free AVOpt-enabled string manually 2021-10-09 14:18:12 +02:00
decklink_common.cpp avdevice/decklink: support for more duplex mode for Decklink 8K Pro 2021-08-16 10:00:39 +08:00
decklink_common.h avdevice/decklink: support for more duplex mode for Decklink 8K Pro 2021-08-16 10:00:39 +08:00
decklink_common_c.h avdevice/decklink: add level_a configuration option 2021-08-16 10:00:39 +08:00
decklink_dec.cpp avutil/buffer: Switch AVBuffer API to size_t 2021-04-27 10:43:13 -03:00
decklink_dec.h
decklink_dec_c.c avdevice/decklink: support for more duplex mode for Decklink 8K Pro 2021-08-16 10:00:39 +08:00
decklink_enc.cpp avdevice/decklink: add link configuration option 2021-08-16 10:00:39 +08:00
decklink_enc.h
decklink_enc_c.c avdevice/decklink: support for more duplex mode for Decklink 8K Pro 2021-08-16 10:00:39 +08:00
dshow.c avdevice/dshow: don't mix declarations and code 2021-12-24 14:24:07 -03:00
dshow_capture.h avdevice/dshow: implement option to use device video timestamps 2021-12-24 14:06:06 +05:30
dshow_common.c
dshow_crossbar.c lavd/dshow: Add namespace prefix to global functions 2021-01-21 20:02:23 -03:00
dshow_enummediatypes.c avdevice/dshow: Add namespace prefix to the remaining global symbols 2021-01-25 19:31:11 -03:00
dshow_enumpins.c avdevice/dshow: Add namespace prefix to the remaining global symbols 2021-01-25 19:31:11 -03:00
dshow_filter.c avdevice/dshow: Add namespace prefix to the remaining global symbols 2021-01-25 19:31:11 -03:00
dshow_pin.c avdevice/dshow: handle unknown sample time 2021-12-24 14:06:21 +05:30
fbdev_common.c
fbdev_common.h
fbdev_dec.c Remove unnecessary mem.h inclusions 2021-07-22 14:47:57 +02:00
fbdev_enc.c Remove unnecessary mem.h inclusions 2021-07-22 14:47:57 +02:00
file_open.c
gdigrab.c avdevice: Constify all devices 2021-04-27 11:48:05 -03:00
iec61883.c avdevice: Constify all devices 2021-04-27 11:48:05 -03:00
internal.h avformat: Constify the API wrt AV(In|Out)putFormat 2021-04-27 10:43:08 -03:00
jack.c lavd/jack: increase buffer size for snprintf() 2021-12-07 11:16:14 +01:00
kmsgrab.c avdevice: Constify all devices 2021-04-27 11:48:05 -03:00
lavfi.c avdevice/lavfi: Don't require AV_PIX_FMT_NONE == -1 2021-12-03 17:01:24 +01:00
libavdevice.v
libcdio.c Remove unnecessary mem.h inclusions 2021-07-22 14:47:57 +02:00
libdc1394.c avdevice: Constify all devices 2021-04-27 11:48:05 -03:00
openal-dec.c avdevice: Constify all devices 2021-04-27 11:48:05 -03:00
opengl_enc.c avdevice: Constify all devices 2021-04-27 11:48:05 -03:00
opengl_enc_shaders.h
oss.c Remove/replace some unnecessary avcodec.h inclusions 2021-07-22 15:29:46 +02:00
oss.h Remove/replace some unnecessary avcodec.h inclusions 2021-07-22 15:29:46 +02:00
oss_dec.c Remove/replace some unnecessary avcodec.h inclusions 2021-07-22 15:29:46 +02:00
oss_enc.c Remove/replace some unnecessary avcodec.h inclusions 2021-07-22 15:29:46 +02:00
pulse_audio_common.c
pulse_audio_common.h
pulse_audio_dec.c avdevice: Constify all devices 2021-04-27 11:48:05 -03:00
pulse_audio_enc.c avcodec/avcodec: Stop including channel_layout.h in avcodec.h 2021-07-22 11:14:31 +02:00
reverse.c
sdl2.c avdevice: Constify all devices 2021-04-27 11:48:05 -03:00
sndio.c
sndio.h
sndio_dec.c avdevice: Constify all devices 2021-04-27 11:48:05 -03:00
sndio_enc.c avdevice: Constify all devices 2021-04-27 11:48:05 -03:00
timefilter.c
timefilter.h avdevice/timefilter: remove obsolete comments from the docs 2021-02-27 21:30:41 +01:00
utils.c avformat: Constify the API wrt AV(In|Out)putFormat 2021-04-27 10:43:08 -03:00
v4l2-common.c
v4l2-common.h Remove unnecessary avassert.h inclusions 2021-07-22 15:02:30 +02:00
v4l2.c lavd/v4l2: detect device name truncation 2021-12-07 11:16:14 +01:00
v4l2enc.c avdevice: Constify all devices 2021-04-27 11:48:05 -03:00
version.h lib*/version.h: Bump Versions after release/5.0 branch 2022-01-03 22:10:46 +01:00
vfwcap.c avdevice: Constify all devices 2021-04-27 11:48:05 -03:00
xcbgrab.c av(codec|device): Don't cast pointers to int 2021-11-21 00:35:30 +01:00
xv.c avdevice/xv: Increase array size 2021-10-09 13:24:38 +02:00