Commit Graph

105 Commits

Author SHA1 Message Date
Álvaro Fernández Rojas 4aba11a49b ffmpeg: add V4L2 support
Enable V4L2 support on ffmpeg-full package.
Tested using V4L2 Raspberry Pi 4 encoder/decoder.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2024-01-29 16:06:55 -08:00
Jan Kratochvil e429c11b04 ffmpeg: fix compilation error of ffmpeg-custom
Fixes: #12320

After plain enable of libffmpeg-custom and ffmpeg-custom which adds:
- CONFIG_PACKAGE_libbz2=m
- CONFIG_PACKAGE_libffmpeg-custom=m
- CONFIG_FFMPEG_CUSTOM_GPL=y
- CONFIG_PACKAGE_zlib=m
- CONFIG_PACKAGE_ffmpeg-custom=m

I get on v22.03.5 compilation error:
```
cp -fpR /.../openwrt-git/build_dir/target-mips_24kc_musl/ffmpeg-custom/ffmpeg-5.1/ipkg-install/usr/bin/ffmpeg /.../openwrt-git/build_dir/target-mips_24kc_musl/ffmpeg-custom/ffmpeg-5.1/ipkg-mips_24kc/ffmpeg-custom/usr/bin/
cp: cannot stat '/.../openwrt-git/build_dir/target-mips_24kc_musl/ffmpeg-custom/ffmpeg-5.1/ipkg-install/usr/bin/ffmpeg': No such file or directory
make[2]: *** [Makefile:756: /.../openwrt-git/bin/packages/mips_24kc/packages/ffmpeg-custom_5.1-1_mips_24kc.ipk] Error 1
```

It is because configure is missing `ffmpeg` in its `Programs:` section:
```
( cd /.../openwrt-git/build_dir/target-mips_24kc_musl/ffmpeg-custom/ffmpeg-5.1; CFLAGS="-Os -pipe -mno-branch-likely -mips32r2 -mtune=24kc -fno-caller-saves -fno-plt -fhonour-copts -Wno-error=unused-but-set-variable -Wno-error=unused-result -msoft-float -mips16 -minterlink-mips16 -fmacro-prefix-map=/.../openwrt-git/build_dir/target-mips_24kc_musl/ffmpeg-custom/ffmpeg-5.1=ffmpeg-5.1 -Wformat -Werror=format-security -fstack-protector -D_FORTIFY_SOURCE=1 -Wl,-z,now -Wl,-z,relro -I/.../openwrt-git/staging_dir/toolchain-mips_24kc_gcc-11.2.0_musl/usr/include -I/.../openwrt-git/staging_dir/toolchain-mips_24kc_gcc-11.2.0_musl/include/fortify -I/.../openwrt-git/staging_dir/toolchain-mips_24kc_gcc-11.2.0_musl/include -DPIC -fpic" LDFLAGS="-L/.../openwrt-git/staging_dir/toolchain-mips_24kc_gcc-11.2.0_musl/usr/lib -L/.../openwrt-git/staging_dir/toolchain-mips_24kc_gcc-11.2.0_musl/lib -znow -zrelro" ./configure --enable-cross-compile --cross-prefix="mips-openwrt-linux-musl-" --arch="mips" --cpu=24kc --target-os=linux --prefix="/usr" --pkg-config="pkg-config" --enable-shared --enable-static --enable-pthreads --enable-zlib --disable-doc --disable-debug --disable-lzma --disable-vaapi --disable-vdpau --disable-outdevs --disable-altivec --disable-vsx --disable-power8 --disable-armv5te --disable-armv6 --disable-armv6t2 --disable-fast-unaligned --disable-runtime-cpudetect --disable-x86asm --enable-small --enable-gpl --disable-programs --disable-avfilter --disable-swresample --disable-swscale --disable-everything                                                                                                                                                                                                                                                                                      --disable-postproc )
install prefix            /usr
source path               .
C compiler                mips-openwrt-linux-musl-gcc
C library
host C compiler           gcc
host C library            glibc
ARCH                      mips (24kc)
big-endian                yes
runtime cpu detection     no
MIPS FPU enabled          no
MIPS DSP R1 enabled       no
MIPS DSP R2 enabled       no
MIPS MSA enabled          no
LOONGSON MMI enabled      no
debug symbols             no
strip symbols             yes
optimize for size         yes
optimizations             yes
static                    yes
shared                    yes
postprocessing support    no
network support           yes
threading support         pthreads
safe bitstream reader     yes
texi2html enabled         no
perl enabled              yes
pod2man enabled           yes
makeinfo enabled          yes
makeinfo supports HTML    no
xmllint enabled           yes

External libraries:
alsa                    iconv
bzlib                   zlib

External libraries providing hardware acceleration:
cuda_llvm               v4l2_m2m

Libraries:
avcodec                 avformat
avdevice                avutil

Programs:

Enabled decoders:

Enabled encoders:

Enabled hwaccels:

Enabled parsers:

Enabled demuxers:

Enabled muxers:

Enabled protocols:

Enabled filters:

Enabled bsfs:

Enabled indevs:

Enabled outdevs:

License: GPL version 2 or later
```

Signed-off-by: Jan Kratochvil <jan@jankratochvil.net>
2023-10-05 14:37:03 -07:00
Jan Kratochvil 2227198d74 ffmpeg: bump PKG_RELEASE
Suggested by @neheb.

Signed-off-by: Jan Kratochvil <jan@jankratochvil.net>
2023-10-03 21:29:00 -07:00
Jan Kratochvil 62f01d7b36 ffmpeg: Add avi muxer
Otherwise one cannot produce *.avi containers needed for some H.264
camera codecs.

Signed-off-by: Jan Kratochvil <jan@jankratochvil.net>
2023-10-03 21:29:00 -07:00
Oskari Rauta 5a68954b0a ffmpeg: fix assembling with binutils v2.41
fix addresses issue when building ffmpeg with binutils v2.41
that is documented here: https://trac.ffmpeg.org/ticket/10405

Issue about build failure is available here:
https://github.com/openwrt/packages/issues/22170

Remarks:
Patch is merged to ffmpeg upstream and will be included in
next release of ffmpeg, so patch applies only to current
version and is removed when package is updated to next
version of ffmpeg.

Signed-off-by: Oskari Rauta <oskari.rauta@gmail.com>
Co-authored-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
2023-09-23 18:05:08 +03:00
Josef Schlehofer 87b2a2bb57 ffmpeg: update to version 5.1.3
Fixes CVEs:
CVE-2022-3964 [1]
CVE-2022-3965 [2]

[1] https://nvd.nist.gov/vuln/detail/CVE-2022-3964
[2] https://nvd.nist.gov/vuln/detail/CVE-2022-3965

Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
2023-09-17 09:46:19 +02:00
Josef Schlehofer c333c0e522
ffmpeg: libffmpeg-full package should provide libffmpeg package, too
The previous solution overwrote the provide from ``define
Package/libffmpeg/Default``, but that's not what was wanted.
Thus libffmpeg-full should provide three packages libffmpeg,
libffmpeg-mini and libffmpeg-audio-dec

Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
2022-11-09 15:11:00 +01:00
Josef Schlehofer 9693bd47c5
ffmpeg: add conflicts and provides
Motivation of this change is that full variants provides the mini
variant and as well audio-dec package, thus you can not install both as
it fails with the following output:

Collected errors:
 * check_data_file_clashes: Package libffmpeg-audio-dec wants to install file /usr/lib/libavcodec.so.58
	But that file is already provided by package  * libffmpeg-full
 * check_data_file_clashes: Package libffmpeg-audio-dec wants to install file /usr/lib/libavcodec.so.58.91.100
	But that file is already provided by package  * libffmpeg-full
 * check_data_file_clashes: Package libffmpeg-audio-dec wants to install file /usr/lib/libavdevice.so.58
	But that file is already provided by package  * libffmpeg-full
 * check_data_file_clashes: Package libffmpeg-audio-dec wants to install file /usr/lib/libavdevice.so.58.10.100
	But that file is already provided by package  * libffmpeg-full
 * check_data_file_clashes: Package libffmpeg-audio-dec wants to install file /usr/lib/libavformat.so.58
	But that file is already provided by package  * libffmpeg-full
 * check_data_file_clashes: Package libffmpeg-audio-dec wants to install file /usr/lib/libavformat.so.58.45.100
	But that file is already provided by package  * libffmpeg-full
 * check_data_file_clashes: Package libffmpeg-audio-dec wants to install file /usr/lib/libavutil.so.56
	But that file is already provided by package  * libffmpeg-full
 * check_data_file_clashes: Package libffmpeg-audio-dec wants to install file /usr/lib/libavutil.so.56.51.100
	But that file is already provided by package  * libffmpeg-full
 * opkg_install_cmd: Cannot install package libffmpeg-audio-dec.

Let's change it to:
Installing libffmpeg-audio-dec (4.3.4-1) to root...
Collected errors:
 * check_conflicts_for: The following packages conflict with libffmpeg-audio-dec:
 * check_conflicts_for:         libffmpeg-full *
 * opkg_install_cmd: Cannot install package libffmpeg-audio-dec.

Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
2022-10-24 14:44:25 +02:00
John Audia 6b71d2fbde ffmpeg: update to 5.1.2
Bump to latest upstream version

Signed-off-by: John Audia <therealgraysky@proton.me>
2022-09-25 11:41:03 -07:00
John Audia 73e02994fb ffmpeg: update to 5.1.1
Bump to latest upstream version

Signed-off-by: John Audia <therealgraysky@proton.me>
2022-09-08 14:09:54 -07:00
John Audia 5436f78d31 ffmpeg: update to 5.1
Bump to latest upstream version, manually rebased: 050-glibc.patch

Tested using:
ffmpeg -f lavfi -i testsrc=duration=10:size=1280x720:rate=30 testsrc.mpg

Resulting mpg was good.

Build system: x86_64
Build-tested: bcm2711/RPi4B
Run-tested: bcm2711/RPi4B

Signed-off-by: John Audia <therealgraysky@proton.me>
2022-07-28 14:18:16 -07:00
John Audia 5b85e7466c ffmpeg: update to 5.0.1
Bump to latest upstream version, patches automatically rebased.

Removed upstreamed:
    060-configure-link-to-libatomic-when-its-present.patch

Tested using:
ffmpeg -f lavfi -i testsrc=duration=10:size=1280x720:rate=30 testsrc.mpg

Resulting mpg was good.

Build system: x86_64
Build-tested: bcm2711/RPi4B
Run-tested: bcm2711/RPi4B

Signed-off-by: John Audia <graysky@archlinux.us>
2022-05-02 12:47:55 -07:00
John Audia 0c74a1f76c ffmpeg: update to 5.0
Bump to latest upstream version.

Manually rebased:
  030-h264-mips.patch
Backported:
  FFmpeg/FFmpeg/commit/2f0a214a6202516b4dda2bb22b6b3ac20e465d6d

Tested using:
ffmpeg -f lavfi -i testsrc=duration=10:size=1280x720:rate=30 testsrc.mpg

Resulting mpg was good.

Build system: x86_64
Build-tested: bcm2711/RPi4B
Run-tested: bcm2711/RPi4B

Signed-off-by: John Audia <graysky@archlinux.us>
2022-03-02 16:32:40 -08:00
Josef Schlehofer a68e9db8d4
ffmpeg: update to version 4.3.3
Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
2022-01-29 11:34:56 +01:00
Bernd Kuhls 2e948f9025 ffmpeg: enable parallel build
Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
2021-03-14 12:45:29 +01:00
Bernd Kuhls 6eb775149a ffmpeg: enable parallel build
Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
2021-02-28 10:36:17 +01:00
Bernd Kuhls 900a146de3 ffmpeg: update to 4.3.2
Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
2021-02-28 10:36:17 +01:00
Ilya Lipnitskiy 5d8d4fbbcb
treewide: Run refresh on all packages
The crude loop I wrote to come up with this changeset:

  find -L package/feeds/packages/ -name patches | \
  sed 's/patches$/refresh/' | sort | xargs make

Signed-off-by: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>
2021-02-20 16:02:15 -08:00
Ian Leonard b7622c0ea4 ffmpeg: update to 4.3.1
Signed-off-by: Ian Leonard <antonlacon@gmail.com>
2020-08-14 11:46:43 -07:00
Rosen Penev 3c450f44d9
ffmpeg: update to 4.3
Remove upstreamed patches. Refreshed other ones.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2020-06-25 17:38:04 -07:00
Rosen Penev 9f512dc14b
ffmpeg: update to 4.2.3
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2020-06-06 21:10:22 -07:00
Rosen Penev 32d3dac6f0
ffmpeg: fix compilation with glibc
No idea why.

Patch submitted upstream:
https://patchwork.ffmpeg.org/project/ffmpeg/patch/20200503090023.29418-1-rosenp@gmail.com/

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2020-05-19 14:24:00 -07:00
Jeffery To dec17eb36c treewide: Enable VFP/NEON optimizations for aarch64
For speexdsp, support for NEON on aarch64 was added in 1.2.0[1].

[1]: https://github.com/xiph/speexdsp/pull/8

Signed-off-by: Jeffery To <jeffery.to@gmail.com>
2020-05-12 16:03:07 +08:00
Jeffery To 2d99ee3004 treewide: Update ARM NEON/VFP detection
With openwrt/openwrt@8dcc108760, the ARM
FPU compiler options are no longer part of CONFIG_TARGET_OPTIMIZATION.

This updates various packages that look for NEON/VFP support to search
CONFIG_CPU_TYPE instead.

Signed-off-by: Jeffery To <jeffery.to@gmail.com>
2020-05-11 03:10:20 +08:00
Ian Leonard 366b8c706f ffmpeg: drop call to disable PATENTED_ENCODERS
Presently, this attempts to disable atrac3, h264, hevc and vc1. These
encoders don't exist or are done through other programs (eg libx264).
Handling of those other programs is done elsewhere.

Signed-off-by: Ian Leonard <antonlacon@gmail.com>
2020-04-28 17:32:50 -07:00
Rosen Penev 79afc370f9 ffmpeg: add upstream patches fixing MIPS compilation
Removed the Makefile references.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2020-04-28 13:36:38 -07:00
Ian Leonard 4adfaa279e ffmpeg: don't provide libavresample
libavresample has bene deprecated for a number of years. Its
replacement is libswresample.

Signed-off-by: Ian Leonard <antonlacon@gmail.com>
2020-03-31 19:18:06 -07:00
Ian Leonard 74b076521b ffmpeg: enable gnutls support in libffmpeg-full
Provides access to services requiring a secure connection.

Chosen over openssl for license reason (can't redistribute). To my
knowledge, libressl will have the same issue.

mbed-tls is the only other ssl/tls provider, and this package is
complicated enough.

Signed-off-by: Ian Leonard <antonlacon@gmail.com>
2020-03-31 19:18:06 -07:00
Ian Leonard 5328a2f393 ffmpeg: update to 4.2.2
Drop upstreamed libfdk-aac patches.

ffserver was removed in 4.0. ffmpeg does not have a replacement.

Signed-off-by: Ian Leonard <antonlacon@gmail.com>
2020-03-31 19:18:06 -07:00
Rosen Penev 78b7bbbfa6
ffmpeg: add dependency to fdk-aac for ffmpeg-full
Since getting rid of the patented line, it seems fdk-aac is now getting
enabled for -full, causing a missing dependency. OTOH, fdk-aac can only be
enabled if x264 is not. So add a ! dependency for it.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2020-03-22 18:07:04 -07:00
Rosen Penev 178206410c
ffmpeg: do not list AAC as patented
Both libraries in the tree (fdk-aac and faad) have patented functionality
disabled when CONFIG_BUILD_PATENTED is off.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2020-03-21 15:55:57 -07:00
Rosen Penev 013162d079
ffmpeg: disable x86 asm for old CPU types
This is a workaround for NASM being totally broken.

I have two patches, one for master and another for 19.07 that upstream is
not merging.

https://patchwork.ozlabs.org/patch/1221696/
https://patchwork.ozlabs.org/patch/1221697/

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2020-02-16 19:33:08 -08:00
Ian Leonard 948c4da0af ffmpeg: update to 3.4.7
Signed-off-by: Ian Leonard <antonlacon@gmail.com>
2019-12-12 14:20:42 -08:00
Rosen Penev 9af78c5498 ffmpeg: Fix fdkaac patches
The patch created patch files in the ffmpeg build directory, which did
absolutely nothing. Properly backported them.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2019-10-14 11:53:12 -07:00
Jeffery To 53e1692ae9 treewide: Use default PKG_BUILD_DIR when possible
This removes lines that set PKG_BUILD_DIR when the set value is no
different from the default value.

Specifically, the line is removed if the assigned value is:

* $(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)

  The default PKG_BUILD_DIR was updated[1] to incorporate BUILD_VARIANT
  if it is set, so now this is identical to the default value.

* $(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_SOURCE_SUBDIR)

  if PKG_SOURCE_SUBDIR is set to $(PKG_NAME)-$(PKG_VERSION), making it
  the same as the previous case

* $(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)

  This is the same as the default PKG_BUILD_DIR when there is no
  BUILD_VARIANT.

* $(BUILD_DIR)/[name]-$(PKG_VERSION)

  where [name] is a string that is identical to PKG_NAME

[1]: https://git.openwrt.org/?p=openwrt/openwrt.git;a=commit;h=e545fac8d968864a965edb9e50c6f90940b0a6c9

Signed-off-by: Jeffery To <jeffery.to@gmail.com>
2019-10-13 02:01:34 +08:00
Rosen Penev 7477663489
ffmpeg: Fix pkgconfig files to be more cross compile friendly
Before:

prefix=/usr
exec_prefix=${prefix}
libdir=/usr/lib
includedir=/usr/include

After:

prefix=/usr
exec_prefix=/usr
libdir=${exec_prefix}/lib
includedir=${prefix}/include

Numbered the other patch file.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2019-09-28 17:14:44 -07:00
Sven Eckelmann bbb1ea7345 treewide: Change .*GPL.*+ licenses to SPDX compatible identifier
The CONTRIBUTING.md requests an (or multiple) SPDX identifier for GPL
licenses. But a lot of packages did use a different, non-SPDX style with a
"+" at the end instead of "-or-later".

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2019-09-10 07:45:15 +02:00
Ian Leonard f2896e3db5 ffmpeg: install ffserver and ffprobe when using custom versions
Signed-off-by: Ian Leonard <antonlacon@gmail.com>
2019-06-07 13:37:22 -07:00
Ian Leonard 2b7ce89192 ffmpeg: update to 3.4.6
Signed-off-by: Ian Leonard <antonlacon@gmail.com>
2019-04-08 03:36:37 -07:00
Ian Leonard 66b69137c1 ffmpeg: build fix for fdk-aac 2.0
Signed-off-by: Ian Leonard <antonlacon@gmail.com>
2019-02-07 17:40:45 -08:00
Ian Leonard 7d8d79064c ffmpeg: disable assembly on MIPS
Disable use of assembly on MIPS to allow it to build. MIPS is not
expected to be high performance in OpenWrt, and this allows it to still
be used for media identification as updated versions of ffmpeg are
brought in.

The error is in

libavcodec/mips/aacdec_mips.c: In function 'imdct_and_windowing_mips'

regarding: 'asm' has impossible constraints in multiple locations.

Signed-off-by: Ian Leonard <antonlacon@gmail.com>
2019-02-07 17:08:23 -08:00
Ian Leonard 295f6b3b41 ffmpeg: update to 3.4.5
Signed-off-by: Ian Leonard <antonlacon@gmail.com>
2019-02-07 16:46:53 -08:00
Ted Hess 7b49f60567 ffmpeg: Add choices to libffmpeg-custom to select and build CLI programs
Add postproc to libffmpeg-custom if x264 selected

Signed-off-by: Ted Hess <thess@kitschensync.net>
2018-11-11 17:32:41 -05:00
Ted Hess c44e1d43a3 ffmpeg: Resolve libx264, BUILD_PATENTED anomalies
libx264 will be included in both hard & soft float libffmpeg-full builds if selected
and BUILD_PATENTED=y. Otherwise, it is not included in libffmpeg-full

Signed-off-by: Ted Hess <thess@kitschensync.net>
2018-11-11 14:06:13 -05:00
Ted Hess b4d191995c ffmpeg: Resolve hard/float builds with work-around dependencies
Hard float includes: libx264, mp3lame
Soft float includes: shine (mp3 encoder)

fdk-aac will not be available in libffmpeg-full due to incompatible license with libx264.
Custom builds can override licensing restrictions but results may not be re-distributable.

Signed-off-by: Ted Hess <thess@kitschensync.net>
2018-11-09 13:32:28 -05:00
Ted Hess c2cc90a3dd ffmpeg: Configuration fixes for optional codec libraries
Signed-off-by: Ted Hess <thess@kitschensync.net>
2018-10-04 15:39:42 -04:00
Alexander Ryzhov eff80c5fa3 ffmpeg: pack libpostproc for hard float archs only
Signed-off-by: Alexander Ryzhov <github@ryzhov-al.ru>
2018-09-10 15:31:51 +03:00
Rosen Penev 683d833150
ffmpeg: Add CPE ID for proper CVE tracking
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2018-08-19 15:19:32 -07:00
Ted Hess 8b37cf3b06 ffmpeg: Add build overrides for some specific CPUs: Octeon, X86 and 24kf.
Octeon: Rename octeonplus to oction+
MIPS 24kf: Inline ASM fails to build (unknown reason)
X86: Configure finds NASM and assumes YASM if name explictly set (wrong switches)

Signed-off-by: Ted Hess <thess@kitschensync.net>
2018-08-15 09:01:39 -04:00
Ted Hess 8067051bfc ffmpeg: Add cpu_type to configure opts. Upgrade to 3.2.12
Signed-off-by: Ted Hess <thess@kitschensync.net>
2018-08-12 17:36:28 -04:00