Commit Graph

746 Commits

Author SHA1 Message Date
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
Zhao Zhili 3c56b9c597 build: add .metal to vpath to fix build error
Signed-off-by: Aman Karmani <aman@tmm1.net>
2021-12-20 12:05:07 -08:00
Shiyou Yin 9a840ffa17 avutil: [loongarch] Add support for loongarch SIMD.
LSX and LASX is loongarch SIMD extention.
They are enabled by default if compiler support it, and can be disabled
with '--disable-lsx' '--disable-lasx'.

Change-Id: Ie2608ea61dbd9b7fffadbf0ec2348bad6c124476
Reviewed-by: Shiyou Yin <yinshiyou-hf@loongson.cn>
Reviewed-by: guxiwei <guxiwei-hf@loongson.cn>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2021-12-15 18:37:40 +01:00
Anton Khirnov 5fdb5ed613 FATE: add a test for sliced scaling 2021-08-08 19:26:05 +02:00
Andreas Rheinhardt 420cedd497 libavresample: Remove deprecated library
Deprecated in c29038f304.
The resample filter based upon this library has been removed as well.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2021-04-27 10:43:13 -03:00
James Almer f47d7a3b42 avcodec: move core AVCodecContext functions from util.c to a new file
Signed-off-by: James Almer <jamrial@gmail.com>
2021-03-19 15:35:35 -03:00
Anton Khirnov 65c4d5d72e tools/enum_options: fix build and add to Makefile 2020-11-20 15:20:24 +01:00
Michael Niedermayer d40679d89c Add support for building fuzzer tools for an individual demuxer
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2020-10-12 21:01:48 +02:00
Michael Niedermayer e3af2a0756 tools:target_dem_fuzzer: Split into a fuzzer fuzzing at the protocol level and one fuzzing a fixed demuxer input
This should improve coverage and should improve the efficiency of seed files

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2020-09-13 10:40:02 +02:00
Carl Eugen Hoyos 613de37a6c Makefile: Delete more created files when running "make distclean". 2020-03-11 11:43:01 +01:00
James Almer 964eb754b4 tools: add a fuzzer tool for bitstream filters
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
2019-12-05 20:49:15 -03:00
Michael Niedermayer 710b7ec071 tools: Add fuzzer for demuxers
This is based on target_dec_fuzzer

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-05-31 22:44:30 +02:00
James Almer 06476249cd Merge commit '7e5bde93a1e7641e1622814dafac0be3f413d79b'
* commit '7e5bde93a1e7641e1622814dafac0be3f413d79b':
  build: Rename OBJDIRS variable to OUTDIRS

Merged-by: James Almer <jamrial@gmail.com>
2019-03-10 19:31:13 -03:00
Diego Biurrun 7e5bde93a1 build: Rename OBJDIRS variable to OUTDIRS
These directories are not just for object files.
2019-02-16 13:09:35 +01:00
Carl Eugen Hoyos 8d422e7fef Makefile: Allow "make clean" to delete compat/atomics/pthread/stdatomic.o
Reported-by: Eric Thomas
2018-12-28 14:04:10 +01:00
James Almer 3735d55af3 avcodec/parser: move parsers list and related API to its own file
And add it to the CONFIGURABLE_COMPONENTS list in Makefile. This way, changes
to the new file will be tracked and the usual warning to suggest re-running
configure will be shown.

Reviewed-by: Rostislav Pehlivanov <atomnuker@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2018-07-21 16:08:29 -03:00
Josh de Kock d8ae40611b Revert "lavd: add new API for iterating input and output devices"
This reverts commit 0fd475704e.

Revert "lavd: fix iterating of input and output devices"

This reverts commit ce1d77a5e7.

Signed-off-by: Josh de Kock <josh@itanimul.li>
2018-03-31 23:26:31 +01:00
Josh de Kock 0fd475704e lavd: add new API for iterating input and output devices
This also adds an avpriv function to register devices in
libavformat
2018-02-06 18:57:42 +00:00
Josh de Kock 0694d87024 lavf: add new API for iterating muxers and demuxers 2018-02-06 18:57:42 +00:00
Josh de Kock 7e8eba2d87 lavc: add new API for iterating codecs and codec parsers
Based on an unfinished patch by atomnuker.
2018-02-06 18:50:27 +00:00
James Almer 5c2a01f064 Makefile: fix distclean target
It must imply clean. Regression since 7ebe7e8e7a.

Signed-off-by: James Almer <jamrial@gmail.com>
2017-11-14 10:09:40 -03:00
James Almer e7e7d56a85 Makefile: fix distclean target
It must imply clean. Regression since e0087a5624.

Signed-off-by: James Almer <jamrial@gmail.com>
2017-11-13 17:37:56 -03:00
James Almer e0087a5624 Merge commit '7ebe7e8e7a76c0ce302f4f583ef0d14220031214'
* commit '7ebe7e8e7a76c0ce302f4f583ef0d14220031214':
  build: Remove pkg-config files on clean instead of on distclean

Merged-by: James Almer <jamrial@gmail.com>
2017-11-12 00:59:58 -03:00
James Almer 6458137200 Merge commit 'fbf77b5ac37bf2a807d8336450801d7aecf2e359'
* commit 'fbf77b5ac37bf2a807d8336450801d7aecf2e359':
  build: Add uninstall-pkgconfig target to match install-lib*-pkgconfig

Merged-by: James Almer <jamrial@gmail.com>
2017-11-12 00:56:25 -03:00
James Almer e29e7b6305 Merge commit 'cbcdb2d8e47f62f69accee62c08f487a27848174'
* commit 'cbcdb2d8e47f62f69accee62c08f487a27848174':
  build: Delete compiler-generated compat files on 'make clean'

See
d100dc6c99
a2ca9e11ff

Merged-by: James Almer <jamrial@gmail.com>
2017-11-11 23:15:31 -03:00
Diego Biurrun 7ebe7e8e7a build: Remove pkg-config files on clean instead of on distclean
The files are no longer generated by configure, so they should not
be removed by the distclean target any longer.
2017-11-09 15:21:33 +01:00
Diego Biurrun fbf77b5ac3 build: Add uninstall-pkgconfig target to match install-lib*-pkgconfig 2017-11-09 07:06:21 +01:00
Diego Biurrun cbcdb2d8e4 build: Delete compiler-generated compat files on 'make clean' 2017-10-19 19:44:06 +02:00
James Almer 5adc1f14f9 Merge commit 'd1d6230ea3dd2c34bcd121f958706f3177f8d8c5'
* commit 'd1d6230ea3dd2c34bcd121f958706f3177f8d8c5':
  build: Add "build" shorthand target that depends on all compile targets

Merged-by: James Almer <jamrial@gmail.com>
2017-10-11 18:37:56 -03:00
James Almer 6dfcbd80ad Merge commit '7cb1d9e2dbbe5bf4652be5d78cdd68e956fa3d63'
* commit '7cb1d9e2dbbe5bf4652be5d78cdd68e956fa3d63':
  build: Fine-grained link-time dependency settings

Also included are bug fix commits 5ff3b5cafc,
d9da7151ee and
5e27ef800b.

Merged-by: James Almer <jamrial@gmail.com>
2017-10-11 17:55:25 -03:00
Marton Balint ff6de6b180 Makefile: generate stripped CLI tools directly instead of copying unstripped ones first
Now works with --disable-stripping.

Signed-off-by: Marton Balint <cus@passwd.hu>
2017-10-10 19:45:14 +02:00
James Almer cafd9d66ed build: add install targets for the examples
Split it off from install-data.

Among other things, this prevents spamming triplicate log lines during install.

Reviewed-by: Clément Bœsch <u@pkh.me>
Signed-off-by: James Almer <jamrial@gmail.com>
2017-10-05 11:35:56 -03:00
James Almer fd5f4ac081 Merge commit 'c95169f0ec68bdeeabc5fde8aa4076f406242524'
* commit 'c95169f0ec68bdeeabc5fde8aa4076f406242524':
  build: Move cli tool sources to a separate subdirectory

Merged-by: James Almer <jamrial@gmail.com>
2017-10-01 18:26:36 -03:00
James Almer eace20a862 Merge commit 'ab566cc96bc0c31b34d944214bc06cec8ae8b640'
* commit 'ab566cc96bc0c31b34d944214bc06cec8ae8b640':
  build: Separate logic for building examples from that for building avtools

Merged-by: James Almer <jamrial@gmail.com>
2017-09-29 17:09:46 -03:00
James Almer 72da8491ca build: don't call install with the -T option
It's not available on macOS.

Should fix a regression instroduced by b25d6290c6.

Signed-off-by: James Almer <jamrial@gmail.com>
2017-09-29 16:13:51 -03:00
James Almer b25d6290c6 Merge commit 'acb0dea27efff4b35796015b96570b59fd517078'
* commit 'acb0dea27efff4b35796015b96570b59fd517078':
  build: Split logic for building examples off into a separate Makefile

We already have a Makefile in doc/examples, but it's separate from the build
system and meant to be installed as part of the documentation to help users
compile the installed .c example files.
Move it to Makefile.example to make place for the new build system Makefile.

Merged-by: James Almer <jamrial@gmail.com>
2017-09-29 15:12:43 -03:00
James Almer d4b00a23c6 Merge commit '533339bdcc3b39bbd708c723b3cd0b5898350f0f'
* commit '533339bdcc3b39bbd708c723b3cd0b5898350f0f':
  build: Drop leftover reference to old EXAMPLES logic

Merged-by: James Almer <jamrial@gmail.com>
2017-09-28 19:08:37 -03:00
wm4 70143a3954 dxva: add support for new dxva2 and d3d11 hwaccel APIs
This also adds support to avconv (which is trivial due to the new
hwaccel API being generic enough).

The new decoder setup code in dxva2.c is significantly based on work by
Steve Lhomme <robux4@gmail.com>, but with heavy changes/rewrites.

Merges Libav commit f9e7a2f95a.
Also adds untested VP9 support.
The check for DXVA2 COBJs is removed. Just update your MinGW to
something newer than a 5 year old release.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2017-06-27 18:05:02 +02:00
Diego Biurrun fd502f4f5f build: Generalize yasm/nasm-related variable names
None of them are specific to the YASM assembler.

(Cherry-picked from libav commit 39e208f4d4)

Signed-off-by: James Almer <jamrial@gmail.com>
2017-06-21 17:00:29 -03:00
Mark Thompson e462ace84b ffmpeg: Enable generic hwaccel support for VDPAU
(cherry picked from commit aa6b2e081c)
2017-06-14 22:26:32 +01:00
Mark Thompson be51073352 ffmpeg: Enable generic hwaccel support for VAAPI
(cherry picked from commit 62a1ef9f26)
2017-06-14 22:26:32 +01:00
Mark Thompson 06043cc0bc ffmpeg: Generic device setup
Not yet enabled for any hwaccels.

(cherry picked from commit d2e6dd32a4)
(cherry picked from commit 9203aac228)
2017-06-14 22:26:32 +01:00
Paul B Mahol 1a30bf60be tools: add sofa2wavs
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2017-06-12 18:08:52 +02:00
James Almer 3e295e633c build: remove --enable-raise-major configure option
It's not used by anything, has dubious usefulness, the reasons for which
it was introduced are no longer valid, and only serves to add complexity
to the build system.

Signed-off-by: James Almer <jamrial@gmail.com>
2017-05-17 22:52:59 -03:00
Timo Rothenpieler f1ab71b046 build: add support for building .cu files via nvcc
Original work by Yogender Gupta <ygupta@nvidia.com>
2017-05-15 11:46:50 +02:00
Clément Bœsch b010843594 Merge commit '122de16dd8108a59a55d30543c9f28b5f61b02d1'
* commit '122de16dd8108a59a55d30543c9f28b5f61b02d1':
  Replace cmdutils_common_opts.h by a macro

Merged-by: Clément Bœsch <cboesch@gopro.com>
2017-05-05 14:04:30 +02:00
James Almer 6fdd35a312 Merge commit '92db5083077a8b0f8e1050507671b456fd155125'
* commit '92db5083077a8b0f8e1050507671b456fd155125':
  build: Generate pkg-config files from Make and not from configure
  build: Store library version numbers in .version files

Includes cherry-picked commits 8a34f36593 and
ee164727dd to fix issues.

Changes were also made to retain support for raise_major and build_suffix.

Reviewed-by: ubitux
Merged-by: James Almer <jamrial@gmail.com>
2017-05-04 19:59:30 -03:00
Clément Bœsch 3f17751eeb Merge commit '11a9320de54759340531177c9f2b1e31e6112cc2'
* commit '11a9320de54759340531177c9f2b1e31e6112cc2':
  build: Move build-system-related helper files to a separate subdirectory

"ffbuild" directory name is used instead of "avbuild".

Merged-by: Clément Bœsch <u@pkh.me>
2017-05-03 16:49:12 +02:00
Michael Niedermayer 5b499bf4a0 Make tools/target_dec_*_fuzzer buildable with configure and make
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-04-24 23:17:47 +02:00
Clément Bœsch 9bf3d84089 Merge commit 'be2d555c980220e65d0ca5c3d78e6cc1e24451a5'
* commit 'be2d555c980220e65d0ca5c3d78e6cc1e24451a5':
  build: Use _extralibs variable names instead of _libs everywhere

Merged-by: Clément Bœsch <u@pkh.me>
2017-04-17 10:22:52 +02:00