Github messages for voidlinux
 help / color / mirror / Atom feed
* [PR PATCH] [RFC][NOMERGE] Update libaom and enable it for ffmpeg
@ 2020-07-13  2:17 ericonr
  2020-07-13  5:42 ` [PR PATCH] [Updated] " ahesford
                   ` (22 more replies)
  0 siblings, 23 replies; 24+ messages in thread
From: ericonr @ 2020-07-13  2:17 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 2401 bytes --]

There is a new pull request by ericonr against master on the void-packages repository

https://github.com/ericonr/void-packages ffmpeg
https://github.com/void-linux/void-packages/pull/23542

[RFC][NOMERGE] Update libaom and enable it for ffmpeg
Fixes #23538 

I currently get segfaults when trying to use this with ffmpeg.

```
$ ffmpeg -i example.mp4 -c:v libaom-av1 -crf 30 -b:v 0 -strict experimental av1_test.mkv
```

gets me this backtrace:

```
#0  0x00007f98d9dde6c0 in lowbd_inv_txfm2d_add_no_identity_avx2 () from /lib/libaom.so.2
#1  0x00007f98d9b6b449 in av1_inverse_transform_block () from /lib/libaom.so.2
#2  0x00007f98d9d04eb1 in search_tx_type.constprop () from /lib/libaom.so.2
#3  0x00007f98d9d08cf6 in block_rd_txfm () from /lib/libaom.so.2
#4  0x00007f98d9c53f1f in av1_foreach_transformed_block_in_plane () from /lib/libaom.so.2
#5  0x00007f98d9d0de79 in av1_txfm_rd_in_plane () from /lib/libaom.so.2
#6  0x00007f98d9d0e006 in av1_uniform_txfm_yrd () from /lib/libaom.so.2
#7  0x00007f98d9d0e5ee in choose_tx_size_type_from_rd () from /lib/libaom.so.2
#8  0x00007f98d9d0e996 in av1_pick_uniform_tx_size_type_yrd () from /lib/libaom.so.2
#9  0x00007f98d9d1aaaa in av1_rd_pick_intra_sby_mode () from /lib/libaom.so.2
#10 0x00007f98d9ce402a in av1_rd_pick_intra_mode_sb () from /lib/libaom.so.2
#11 0x00007f98d9c361f1 in pick_sb_modes () from /lib/libaom.so.2
#12 0x00007f98d9c3b64e in rd_use_partition () from /lib/libaom.so.2
#13 0x00007f98d9c3af86 in rd_use_partition () from /lib/libaom.so.2
#14 0x00007f98d9c3b174 in rd_use_partition () from /lib/libaom.so.2
#15 0x00007f98d9c49eba in encode_rd_sb () from /lib/libaom.so.2
#16 0x00007f98d9c4e4a9 in av1_encode_sb_row () from /lib/libaom.so.2
#17 0x00007f98d9c7e002 in enc_row_mt_worker_hook () from /lib/libaom.so.2
#18 0x00007f98d9b2986b in thread_loop () from /lib/libaom.so.2
#19 0x00007f98dd1fa305 in start (p=0x7f98aec3a7a8) at src/thread/pthread_create.c:192
#20 0x00007f98dd207a6b in __clone () at src/thread/x86_64/clone.s:22
Backtrace stopped: frame did not save the PC
quit
```

I'm not sure we can enable it when it's like this. I can try using FFMPEG 4.3 to see if it works better then. I am on musl, so that might be an issue.

I also don't know how to test for gstreamer AV1 support. 

A patch file from https://github.com/void-linux/void-packages/pull/23542.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-ffmpeg-23542.patch --]
[-- Type: text/x-diff, Size: 6569 bytes --]

From f1cc51e465d0cf28165703592acfffd2471b507b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Sun, 12 Jul 2020 22:36:53 -0300
Subject: [PATCH 1/3] libaom: update to 2.0.0.

---
 common/shlibs                        |  2 +-
 srcpkgs/libaom/patches/version.patch | 14 --------------
 srcpkgs/libaom/template              | 24 ++++++++++++++++++++----
 srcpkgs/libaom/update                |  2 +-
 4 files changed, 22 insertions(+), 20 deletions(-)
 delete mode 100644 srcpkgs/libaom/patches/version.patch

diff --git a/common/shlibs b/common/shlibs
index 00a0af53fcb..7b7b182bf11 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -3508,7 +3508,7 @@ libticalcs2.so.12 libticalcs2-1.1.9_1
 libhtmlcxx.so.3 htmlcxx-0.86_1
 libcss_parser_pp.so.0 htmlcxx-0.86_1
 libcss_parser.so.0 htmlcxx-0.86_1
-libaom.so.0 libaom-1.0.0_1
+libaom.so.2 libaom-2.0.0_1
 libre.so re-0.5.8_1
 libspandsp.so.2 spandsp-0.0.6_1
 libspa-alsa.so libspa-alsa-0.3.6_1
diff --git a/srcpkgs/libaom/patches/version.patch b/srcpkgs/libaom/patches/version.patch
deleted file mode 100644
index 97372192897..00000000000
--- a/srcpkgs/libaom/patches/version.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-add entry for 1.0.0 release to fix version in pkg-config file
-
---- CHANGELOG
-+++ CHANGELOG
-@@ -3,6 +3,9 @@
-     The AV1 encoder's default keyframe interval changed to 128 from 9999.
-     Support for armv6 was removed.
-
-+2019-03-16 v1.0.0 "AOMedia Codec 1"
-+  Current release
-+
- 2016-04-07 v0.1.0 "AOMedia Codec 1"
-   This release is the first Alliance for Open Media codec.
- 2015-11-09 v1.5.0 "Javan Whistling Duck"
diff --git a/srcpkgs/libaom/template b/srcpkgs/libaom/template
index 7cb2fcf07db..6737599010a 100644
--- a/srcpkgs/libaom/template
+++ b/srcpkgs/libaom/template
@@ -1,18 +1,34 @@
 # Template file for 'libaom'
 pkgname=libaom
-version=1.0.0.1
+version=2.0.0
 revision=2
 create_wrksrc=yes
 build_style=cmake
-configure_args="-DENABLE_DOCS=OFF -DBUILD_SHARED_LIBS=ON -DENABLE_TESTS=OFF"
+make_check_target=runtests
+make_check_args="-j${makejobs}"
+configure_args="-DENABLE_DOCS=OFF -DBUILD_SHARED_LIBS=ON"
 hostmakedepends="yasm doxygen perl python"
 short_desc="AV1 Codec library implementation"
 maintainer="Orphaned <orphan@voidlinux.org>"
 license="BSD-2-Clause"
 homepage="https://aomedia.org/"
 changelog="https://aomedia.googlesource.com/aom/+/master/CHANGELOG"
-distfiles="https://aomedia.googlesource.com/aom/+archive/v${version%.*}-errata${version##*.}.tar.gz"
-checksum=@0f1e812ca6d3b3809bf3f7a12a85b549c96d20bfa72fa606a682541bbc3eaeab
+distfiles="https://aomedia.googlesource.com/aom/+archive/v${version}.tar.gz"
+checksum=@4e8a74ed7e05d5534ab0b72735fa670ce1a1e757bc4a777f07fdabf8629fced1
+
+if [ -z "$XBPS_CHECK_PKGS" ]; then
+	configure_args+=" -DENABLE_TESTS=OFF"
+fi
+
+pre_check() {
+	mkdir -p /host/libaom-test-data
+	export LIBAOM_TEST_DATA_PATH=/host/libaom-test-data
+}
+
+post_check() {
+	make testdata {$makejobs}
+	./test/examples.sh --bin-path examples
+}
 
 post_install() {
 	vlicense LICENSE
diff --git a/srcpkgs/libaom/update b/srcpkgs/libaom/update
index fd5a23fd8eb..866cfaf6c8c 100644
--- a/srcpkgs/libaom/update
+++ b/srcpkgs/libaom/update
@@ -1,3 +1,3 @@
 site=https://aomedia.googlesource.com/aom/
 pkgname=
-pattern="aom/\+/v\K[\d\.]+"
+pattern="v\K[\d\.][\d.]+"

From c10e8522fb15a1e7cafd184d33a1ec8f43258f0f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Sun, 12 Jul 2020 22:38:21 -0300
Subject: [PATCH 2/3] gst-plugins-bad1: revbump for libaom.

---
 srcpkgs/gst-plugins-bad1/template | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/srcpkgs/gst-plugins-bad1/template b/srcpkgs/gst-plugins-bad1/template
index df1d5053c5f..a1012b0a492 100644
--- a/srcpkgs/gst-plugins-bad1/template
+++ b/srcpkgs/gst-plugins-bad1/template
@@ -1,7 +1,7 @@
 # Template file for 'gst-plugins-bad1'
 pkgname=gst-plugins-bad1
 version=1.16.2
-revision=9
+revision=10
 wrksrc="${pkgname/1/}-${version}"
 build_helper="gir"
 build_style=meson

From b4870ce3fd8f1be3a3624b6a247e4e751d210913 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Sun, 12 Jul 2020 20:25:32 -0300
Subject: [PATCH 3/3] ffmpeg: enable aom build option.

Reorganize the lines to get closer to the 80 column limit. Put all
dependencies related to build options after the normal dependencies.
---
 srcpkgs/ffmpeg/template | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)

diff --git a/srcpkgs/ffmpeg/template b/srcpkgs/ffmpeg/template
index ad986a72790..ee7bd6ee48a 100644
--- a/srcpkgs/ffmpeg/template
+++ b/srcpkgs/ffmpeg/template
@@ -2,7 +2,7 @@
 # audacity also needs to be bumped when a new ffmpeg version bumps libavformat's soname!
 pkgname=ffmpeg
 version=4.2.3
-revision=5
+revision=6
 short_desc="Decoding, encoding and streaming software"
 maintainer="Johannes <johannes.brechtmann@gmail.com>"
 license="GPL-3.0-or-later"
@@ -16,16 +16,17 @@ makedepends="zlib-devel bzip2-devel freetype-devel alsa-lib-devel libXfixes-deve
  libXext-devel libXvMC-devel libxcb-devel faad2-devel lame-devel libtheora-devel
  gnutls-devel libvorbis-devel x264-devel xvidcore-devel jack-devel SDL2-devel
  libcdio-paranoia-devel librtmp-devel libmodplug-devel gnutls-devel
- speex-devel celt-devel harfbuzz-devel libass-devel opus-devel $(vopt_if pulseaudio pulseaudio-devel)
- ocl-icd-devel $(vopt_if x265 x265-devel) $(vopt_if vaapi libva-devel)
- $(vopt_if vdpau libvdpau-devel) $(vopt_if v4l2 v4l-utils-devel) libbs2b-devel
- libvidstab-devel $(vopt_if faac faac-devel) $(vopt_if fdk_aac fdk-aac-devel)
+ speex-devel celt-devel harfbuzz-devel libass-devel opus-devel ocl-icd-devel
+ libbs2b-devel libvidstab-devel $(vopt_if pulseaudio pulseaudio-devel)
+ $(vopt_if x265 x265-devel) $(vopt_if vaapi libva-devel) $(vopt_if vdpau libvdpau-devel)
+ $(vopt_if v4l2 v4l-utils-devel) $(vopt_if faac faac-devel) $(vopt_if fdk_aac fdk-aac-devel)
  $(vopt_if vpx libvpx-devel) $(vopt_if aom libaom-devel)
  $(vopt_if nvenc nv-codec-headers) $(vopt_if sndio sndio-devel)
  $(vopt_if dav1d libdav1d-devel) $(vopt_if zimg zimg-devel)"
 
-build_options="x265 v4l2 vaapi vdpau vpx faac fdk_aac aom nvenc sndio pulseaudio dav1d zimg"
-build_options_default="x265 v4l2 vpx sndio pulseaudio dav1d"
+build_options="x265 v4l2 vaapi vdpau vpx faac fdk_aac aom nvenc sndio pulseaudio
+ dav1d zimg"
+build_options_default="x265 v4l2 vpx aom sndio pulseaudio dav1d"
 
 case "$XBPS_TARGET_MACHINE" in
 	i686*|x86_64*) build_options_default+=" vaapi vdpau nvenc";;

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PR PATCH] [Updated] [RFC][NOMERGE] Update libaom and enable it for ffmpeg
  2020-07-13  2:17 [PR PATCH] [RFC][NOMERGE] Update libaom and enable it for ffmpeg ericonr
@ 2020-07-13  5:42 ` ahesford
  2020-07-13  5:48 ` ericonr
                   ` (21 subsequent siblings)
  22 siblings, 0 replies; 24+ messages in thread
From: ahesford @ 2020-07-13  5:42 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 2407 bytes --]

There is an updated pull request by ahesford against master on the void-packages repository

https://github.com/ericonr/void-packages ffmpeg
https://github.com/void-linux/void-packages/pull/23542

[RFC][NOMERGE] Update libaom and enable it for ffmpeg
Fixes #23538 

I currently get segfaults when trying to use this with ffmpeg.

```
$ ffmpeg -i example.mp4 -c:v libaom-av1 -crf 30 -b:v 0 -strict experimental av1_test.mkv
```

gets me this backtrace:

```
#0  0x00007f98d9dde6c0 in lowbd_inv_txfm2d_add_no_identity_avx2 () from /lib/libaom.so.2
#1  0x00007f98d9b6b449 in av1_inverse_transform_block () from /lib/libaom.so.2
#2  0x00007f98d9d04eb1 in search_tx_type.constprop () from /lib/libaom.so.2
#3  0x00007f98d9d08cf6 in block_rd_txfm () from /lib/libaom.so.2
#4  0x00007f98d9c53f1f in av1_foreach_transformed_block_in_plane () from /lib/libaom.so.2
#5  0x00007f98d9d0de79 in av1_txfm_rd_in_plane () from /lib/libaom.so.2
#6  0x00007f98d9d0e006 in av1_uniform_txfm_yrd () from /lib/libaom.so.2
#7  0x00007f98d9d0e5ee in choose_tx_size_type_from_rd () from /lib/libaom.so.2
#8  0x00007f98d9d0e996 in av1_pick_uniform_tx_size_type_yrd () from /lib/libaom.so.2
#9  0x00007f98d9d1aaaa in av1_rd_pick_intra_sby_mode () from /lib/libaom.so.2
#10 0x00007f98d9ce402a in av1_rd_pick_intra_mode_sb () from /lib/libaom.so.2
#11 0x00007f98d9c361f1 in pick_sb_modes () from /lib/libaom.so.2
#12 0x00007f98d9c3b64e in rd_use_partition () from /lib/libaom.so.2
#13 0x00007f98d9c3af86 in rd_use_partition () from /lib/libaom.so.2
#14 0x00007f98d9c3b174 in rd_use_partition () from /lib/libaom.so.2
#15 0x00007f98d9c49eba in encode_rd_sb () from /lib/libaom.so.2
#16 0x00007f98d9c4e4a9 in av1_encode_sb_row () from /lib/libaom.so.2
#17 0x00007f98d9c7e002 in enc_row_mt_worker_hook () from /lib/libaom.so.2
#18 0x00007f98d9b2986b in thread_loop () from /lib/libaom.so.2
#19 0x00007f98dd1fa305 in start (p=0x7f98aec3a7a8) at src/thread/pthread_create.c:192
#20 0x00007f98dd207a6b in __clone () at src/thread/x86_64/clone.s:22
Backtrace stopped: frame did not save the PC
quit
```

I'm not sure we can enable it when it's like this. I can try using FFMPEG 4.3 to see if it works better then. I am on musl, so that might be an issue.

I also don't know how to test for gstreamer AV1 support. 

A patch file from https://github.com/void-linux/void-packages/pull/23542.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-ffmpeg-23542.patch --]
[-- Type: text/x-diff, Size: 6681 bytes --]

From b088527c91ed55fe7f70126f68c75da3145a8975 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Sun, 12 Jul 2020 22:36:53 -0300
Subject: [PATCH 1/3] libaom: update to 2.0.0.

---
 common/shlibs                        |  2 +-
 srcpkgs/libaom/patches/version.patch | 14 -------------
 srcpkgs/libaom/template              | 31 +++++++++++++++++++++++-----
 srcpkgs/libaom/update                |  2 +-
 4 files changed, 28 insertions(+), 21 deletions(-)
 delete mode 100644 srcpkgs/libaom/patches/version.patch

diff --git a/common/shlibs b/common/shlibs
index 00a0af53fcb..7b7b182bf11 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -3508,7 +3508,7 @@ libticalcs2.so.12 libticalcs2-1.1.9_1
 libhtmlcxx.so.3 htmlcxx-0.86_1
 libcss_parser_pp.so.0 htmlcxx-0.86_1
 libcss_parser.so.0 htmlcxx-0.86_1
-libaom.so.0 libaom-1.0.0_1
+libaom.so.2 libaom-2.0.0_1
 libre.so re-0.5.8_1
 libspandsp.so.2 spandsp-0.0.6_1
 libspa-alsa.so libspa-alsa-0.3.6_1
diff --git a/srcpkgs/libaom/patches/version.patch b/srcpkgs/libaom/patches/version.patch
deleted file mode 100644
index 97372192897..00000000000
--- a/srcpkgs/libaom/patches/version.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-add entry for 1.0.0 release to fix version in pkg-config file
-
---- CHANGELOG
-+++ CHANGELOG
-@@ -3,6 +3,9 @@
-     The AV1 encoder's default keyframe interval changed to 128 from 9999.
-     Support for armv6 was removed.
-
-+2019-03-16 v1.0.0 "AOMedia Codec 1"
-+  Current release
-+
- 2016-04-07 v0.1.0 "AOMedia Codec 1"
-   This release is the first Alliance for Open Media codec.
- 2015-11-09 v1.5.0 "Javan Whistling Duck"
diff --git a/srcpkgs/libaom/template b/srcpkgs/libaom/template
index 7cb2fcf07db..e344720b355 100644
--- a/srcpkgs/libaom/template
+++ b/srcpkgs/libaom/template
@@ -1,18 +1,39 @@
 # Template file for 'libaom'
 pkgname=libaom
-version=1.0.0.1
-revision=2
+version=2.0.0
+revision=1
 create_wrksrc=yes
 build_style=cmake
-configure_args="-DENABLE_DOCS=OFF -DBUILD_SHARED_LIBS=ON -DENABLE_TESTS=OFF"
+make_check_target=runtests
+make_check_args="-j${makejobs}"
+configure_args="-DENABLE_DOCS=OFF -DBUILD_SHARED_LIBS=ON"
 hostmakedepends="yasm doxygen perl python"
 short_desc="AV1 Codec library implementation"
 maintainer="Orphaned <orphan@voidlinux.org>"
 license="BSD-2-Clause"
 homepage="https://aomedia.org/"
 changelog="https://aomedia.googlesource.com/aom/+/master/CHANGELOG"
-distfiles="https://aomedia.googlesource.com/aom/+archive/v${version%.*}-errata${version##*.}.tar.gz"
-checksum=@0f1e812ca6d3b3809bf3f7a12a85b549c96d20bfa72fa606a682541bbc3eaeab
+distfiles="https://aomedia.googlesource.com/aom/+archive/v${version}.tar.gz"
+checksum=@4e8a74ed7e05d5534ab0b72735fa670ce1a1e757bc4a777f07fdabf8629fced1
+
+case "$XBPS_TARGET_MACHINE" in
+	armv[67]l*) configure_args+=" -DENABLE_NEON=0"
+				;;
+esac
+
+if [ -z "$XBPS_CHECK_PKGS" ]; then
+	configure_args+=" -DENABLE_TESTS=OFF"
+fi
+
+pre_check() {
+	mkdir -p /host/libaom-test-data
+	export LIBAOM_TEST_DATA_PATH=/host/libaom-test-data
+}
+
+post_check() {
+	make testdata {$makejobs}
+	./test/examples.sh --bin-path examples
+}
 
 post_install() {
 	vlicense LICENSE
diff --git a/srcpkgs/libaom/update b/srcpkgs/libaom/update
index fd5a23fd8eb..866cfaf6c8c 100644
--- a/srcpkgs/libaom/update
+++ b/srcpkgs/libaom/update
@@ -1,3 +1,3 @@
 site=https://aomedia.googlesource.com/aom/
 pkgname=
-pattern="aom/\+/v\K[\d\.]+"
+pattern="v\K[\d\.][\d.]+"

From 0cae6cd06bd5661154c902fc404bba45b9904a5a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Sun, 12 Jul 2020 22:38:21 -0300
Subject: [PATCH 2/3] gst-plugins-bad1: revbump for libaom.

---
 srcpkgs/gst-plugins-bad1/template | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/srcpkgs/gst-plugins-bad1/template b/srcpkgs/gst-plugins-bad1/template
index df1d5053c5f..a1012b0a492 100644
--- a/srcpkgs/gst-plugins-bad1/template
+++ b/srcpkgs/gst-plugins-bad1/template
@@ -1,7 +1,7 @@
 # Template file for 'gst-plugins-bad1'
 pkgname=gst-plugins-bad1
 version=1.16.2
-revision=9
+revision=10
 wrksrc="${pkgname/1/}-${version}"
 build_helper="gir"
 build_style=meson

From d96cc0eb606b8a51ac0a09f66908dd7da9a61ec2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Sun, 12 Jul 2020 20:25:32 -0300
Subject: [PATCH 3/3] ffmpeg: enable aom build option.

Reorganize the lines to get closer to the 80 column limit. Put all
dependencies related to build options after the normal dependencies.
---
 srcpkgs/ffmpeg/template | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)

diff --git a/srcpkgs/ffmpeg/template b/srcpkgs/ffmpeg/template
index ad986a72790..ee7bd6ee48a 100644
--- a/srcpkgs/ffmpeg/template
+++ b/srcpkgs/ffmpeg/template
@@ -2,7 +2,7 @@
 # audacity also needs to be bumped when a new ffmpeg version bumps libavformat's soname!
 pkgname=ffmpeg
 version=4.2.3
-revision=5
+revision=6
 short_desc="Decoding, encoding and streaming software"
 maintainer="Johannes <johannes.brechtmann@gmail.com>"
 license="GPL-3.0-or-later"
@@ -16,16 +16,17 @@ makedepends="zlib-devel bzip2-devel freetype-devel alsa-lib-devel libXfixes-deve
  libXext-devel libXvMC-devel libxcb-devel faad2-devel lame-devel libtheora-devel
  gnutls-devel libvorbis-devel x264-devel xvidcore-devel jack-devel SDL2-devel
  libcdio-paranoia-devel librtmp-devel libmodplug-devel gnutls-devel
- speex-devel celt-devel harfbuzz-devel libass-devel opus-devel $(vopt_if pulseaudio pulseaudio-devel)
- ocl-icd-devel $(vopt_if x265 x265-devel) $(vopt_if vaapi libva-devel)
- $(vopt_if vdpau libvdpau-devel) $(vopt_if v4l2 v4l-utils-devel) libbs2b-devel
- libvidstab-devel $(vopt_if faac faac-devel) $(vopt_if fdk_aac fdk-aac-devel)
+ speex-devel celt-devel harfbuzz-devel libass-devel opus-devel ocl-icd-devel
+ libbs2b-devel libvidstab-devel $(vopt_if pulseaudio pulseaudio-devel)
+ $(vopt_if x265 x265-devel) $(vopt_if vaapi libva-devel) $(vopt_if vdpau libvdpau-devel)
+ $(vopt_if v4l2 v4l-utils-devel) $(vopt_if faac faac-devel) $(vopt_if fdk_aac fdk-aac-devel)
  $(vopt_if vpx libvpx-devel) $(vopt_if aom libaom-devel)
  $(vopt_if nvenc nv-codec-headers) $(vopt_if sndio sndio-devel)
  $(vopt_if dav1d libdav1d-devel) $(vopt_if zimg zimg-devel)"
 
-build_options="x265 v4l2 vaapi vdpau vpx faac fdk_aac aom nvenc sndio pulseaudio dav1d zimg"
-build_options_default="x265 v4l2 vpx sndio pulseaudio dav1d"
+build_options="x265 v4l2 vaapi vdpau vpx faac fdk_aac aom nvenc sndio pulseaudio
+ dav1d zimg"
+build_options_default="x265 v4l2 vpx aom sndio pulseaudio dav1d"
 
 case "$XBPS_TARGET_MACHINE" in
 	i686*|x86_64*) build_options_default+=" vaapi vdpau nvenc";;

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [RFC][NOMERGE] Update libaom and enable it for ffmpeg
  2020-07-13  2:17 [PR PATCH] [RFC][NOMERGE] Update libaom and enable it for ffmpeg ericonr
  2020-07-13  5:42 ` [PR PATCH] [Updated] " ahesford
@ 2020-07-13  5:48 ` ericonr
  2020-07-13 13:32 ` [PR PATCH] [Updated] " ericonr
                   ` (20 subsequent siblings)
  22 siblings, 0 replies; 24+ messages in thread
From: ericonr @ 2020-07-13  5:48 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 210 bytes --]

New comment by ericonr on void-packages repository

https://github.com/void-linux/void-packages/pull/23542#issuecomment-657372455

Comment:
@q66 would you mind taking a look at the platform stuff for ppc here?

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PR PATCH] [Updated] [RFC][NOMERGE] Update libaom and enable it for ffmpeg
  2020-07-13  2:17 [PR PATCH] [RFC][NOMERGE] Update libaom and enable it for ffmpeg ericonr
  2020-07-13  5:42 ` [PR PATCH] [Updated] " ahesford
  2020-07-13  5:48 ` ericonr
@ 2020-07-13 13:32 ` ericonr
  2020-07-13 17:17 ` richfelker
                   ` (19 subsequent siblings)
  22 siblings, 0 replies; 24+ messages in thread
From: ericonr @ 2020-07-13 13:32 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 2406 bytes --]

There is an updated pull request by ericonr against master on the void-packages repository

https://github.com/ericonr/void-packages ffmpeg
https://github.com/void-linux/void-packages/pull/23542

[RFC][NOMERGE] Update libaom and enable it for ffmpeg
Fixes #23538 

I currently get segfaults when trying to use this with ffmpeg.

```
$ ffmpeg -i example.mp4 -c:v libaom-av1 -crf 30 -b:v 0 -strict experimental av1_test.mkv
```

gets me this backtrace:

```
#0  0x00007f98d9dde6c0 in lowbd_inv_txfm2d_add_no_identity_avx2 () from /lib/libaom.so.2
#1  0x00007f98d9b6b449 in av1_inverse_transform_block () from /lib/libaom.so.2
#2  0x00007f98d9d04eb1 in search_tx_type.constprop () from /lib/libaom.so.2
#3  0x00007f98d9d08cf6 in block_rd_txfm () from /lib/libaom.so.2
#4  0x00007f98d9c53f1f in av1_foreach_transformed_block_in_plane () from /lib/libaom.so.2
#5  0x00007f98d9d0de79 in av1_txfm_rd_in_plane () from /lib/libaom.so.2
#6  0x00007f98d9d0e006 in av1_uniform_txfm_yrd () from /lib/libaom.so.2
#7  0x00007f98d9d0e5ee in choose_tx_size_type_from_rd () from /lib/libaom.so.2
#8  0x00007f98d9d0e996 in av1_pick_uniform_tx_size_type_yrd () from /lib/libaom.so.2
#9  0x00007f98d9d1aaaa in av1_rd_pick_intra_sby_mode () from /lib/libaom.so.2
#10 0x00007f98d9ce402a in av1_rd_pick_intra_mode_sb () from /lib/libaom.so.2
#11 0x00007f98d9c361f1 in pick_sb_modes () from /lib/libaom.so.2
#12 0x00007f98d9c3b64e in rd_use_partition () from /lib/libaom.so.2
#13 0x00007f98d9c3af86 in rd_use_partition () from /lib/libaom.so.2
#14 0x00007f98d9c3b174 in rd_use_partition () from /lib/libaom.so.2
#15 0x00007f98d9c49eba in encode_rd_sb () from /lib/libaom.so.2
#16 0x00007f98d9c4e4a9 in av1_encode_sb_row () from /lib/libaom.so.2
#17 0x00007f98d9c7e002 in enc_row_mt_worker_hook () from /lib/libaom.so.2
#18 0x00007f98d9b2986b in thread_loop () from /lib/libaom.so.2
#19 0x00007f98dd1fa305 in start (p=0x7f98aec3a7a8) at src/thread/pthread_create.c:192
#20 0x00007f98dd207a6b in __clone () at src/thread/x86_64/clone.s:22
Backtrace stopped: frame did not save the PC
quit
```

I'm not sure we can enable it when it's like this. I can try using FFMPEG 4.3 to see if it works better then. I am on musl, so that might be an issue.

I also don't know how to test for gstreamer AV1 support. 

A patch file from https://github.com/void-linux/void-packages/pull/23542.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-ffmpeg-23542.patch --]
[-- Type: text/x-diff, Size: 6676 bytes --]

From c5bd4f43680ebe6531b3c793df18b3f38a3a3aa0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Sun, 12 Jul 2020 22:36:53 -0300
Subject: [PATCH 1/3] libaom: update to 2.0.0.

---
 common/shlibs                        |  2 +-
 srcpkgs/libaom/patches/version.patch | 14 -------------
 srcpkgs/libaom/template              | 30 +++++++++++++++++++++++-----
 srcpkgs/libaom/update                |  2 +-
 4 files changed, 27 insertions(+), 21 deletions(-)
 delete mode 100644 srcpkgs/libaom/patches/version.patch

diff --git a/common/shlibs b/common/shlibs
index 00a0af53fcb..7b7b182bf11 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -3508,7 +3508,7 @@ libticalcs2.so.12 libticalcs2-1.1.9_1
 libhtmlcxx.so.3 htmlcxx-0.86_1
 libcss_parser_pp.so.0 htmlcxx-0.86_1
 libcss_parser.so.0 htmlcxx-0.86_1
-libaom.so.0 libaom-1.0.0_1
+libaom.so.2 libaom-2.0.0_1
 libre.so re-0.5.8_1
 libspandsp.so.2 spandsp-0.0.6_1
 libspa-alsa.so libspa-alsa-0.3.6_1
diff --git a/srcpkgs/libaom/patches/version.patch b/srcpkgs/libaom/patches/version.patch
deleted file mode 100644
index 97372192897..00000000000
--- a/srcpkgs/libaom/patches/version.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-add entry for 1.0.0 release to fix version in pkg-config file
-
---- CHANGELOG
-+++ CHANGELOG
-@@ -3,6 +3,9 @@
-     The AV1 encoder's default keyframe interval changed to 128 from 9999.
-     Support for armv6 was removed.
-
-+2019-03-16 v1.0.0 "AOMedia Codec 1"
-+  Current release
-+
- 2016-04-07 v0.1.0 "AOMedia Codec 1"
-   This release is the first Alliance for Open Media codec.
- 2015-11-09 v1.5.0 "Javan Whistling Duck"
diff --git a/srcpkgs/libaom/template b/srcpkgs/libaom/template
index 7cb2fcf07db..903a4164472 100644
--- a/srcpkgs/libaom/template
+++ b/srcpkgs/libaom/template
@@ -1,18 +1,38 @@
 # Template file for 'libaom'
 pkgname=libaom
-version=1.0.0.1
-revision=2
+version=2.0.0
+revision=1
 create_wrksrc=yes
 build_style=cmake
-configure_args="-DENABLE_DOCS=OFF -DBUILD_SHARED_LIBS=ON -DENABLE_TESTS=OFF"
+make_check_target=runtests
+make_check_args="-j${makejobs}"
+configure_args="-DENABLE_DOCS=OFF -DBUILD_SHARED_LIBS=ON"
 hostmakedepends="yasm doxygen perl python"
 short_desc="AV1 Codec library implementation"
 maintainer="Orphaned <orphan@voidlinux.org>"
 license="BSD-2-Clause"
 homepage="https://aomedia.org/"
 changelog="https://aomedia.googlesource.com/aom/+/master/CHANGELOG"
-distfiles="https://aomedia.googlesource.com/aom/+archive/v${version%.*}-errata${version##*.}.tar.gz"
-checksum=@0f1e812ca6d3b3809bf3f7a12a85b549c96d20bfa72fa606a682541bbc3eaeab
+distfiles="https://aomedia.googlesource.com/aom/+archive/v${version}.tar.gz"
+checksum=@4e8a74ed7e05d5534ab0b72735fa670ce1a1e757bc4a777f07fdabf8629fced1
+
+case "$XBPS_TARGET_MACHINE" in
+	armv[67]l*) configure_args+=" -DENABLE_NEON=0" ;;
+esac
+
+if [ -z "$XBPS_CHECK_PKGS" ]; then
+	configure_args+=" -DENABLE_TESTS=OFF"
+fi
+
+pre_check() {
+	mkdir -p /host/libaom-test-data
+	export LIBAOM_TEST_DATA_PATH=/host/libaom-test-data
+}
+
+post_check() {
+	make testdata {$makejobs}
+	./test/examples.sh --bin-path examples
+}
 
 post_install() {
 	vlicense LICENSE
diff --git a/srcpkgs/libaom/update b/srcpkgs/libaom/update
index fd5a23fd8eb..866cfaf6c8c 100644
--- a/srcpkgs/libaom/update
+++ b/srcpkgs/libaom/update
@@ -1,3 +1,3 @@
 site=https://aomedia.googlesource.com/aom/
 pkgname=
-pattern="aom/\+/v\K[\d\.]+"
+pattern="v\K[\d\.][\d.]+"

From 5e414af070919f2172c3db54ad6a0239cf7fd1bf Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Sun, 12 Jul 2020 22:38:21 -0300
Subject: [PATCH 2/3] gst-plugins-bad1: revbump for libaom.

---
 srcpkgs/gst-plugins-bad1/template | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/srcpkgs/gst-plugins-bad1/template b/srcpkgs/gst-plugins-bad1/template
index df1d5053c5f..a1012b0a492 100644
--- a/srcpkgs/gst-plugins-bad1/template
+++ b/srcpkgs/gst-plugins-bad1/template
@@ -1,7 +1,7 @@
 # Template file for 'gst-plugins-bad1'
 pkgname=gst-plugins-bad1
 version=1.16.2
-revision=9
+revision=10
 wrksrc="${pkgname/1/}-${version}"
 build_helper="gir"
 build_style=meson

From 9fde96643f0af4a2adc5bce8db8c545c3b985bd6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Sun, 12 Jul 2020 20:25:32 -0300
Subject: [PATCH 3/3] ffmpeg: enable aom build option.

Reorganize the lines to get closer to the 80 column limit. Put all
dependencies related to build options after the normal dependencies.
---
 srcpkgs/ffmpeg/template | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)

diff --git a/srcpkgs/ffmpeg/template b/srcpkgs/ffmpeg/template
index ad986a72790..ee7bd6ee48a 100644
--- a/srcpkgs/ffmpeg/template
+++ b/srcpkgs/ffmpeg/template
@@ -2,7 +2,7 @@
 # audacity also needs to be bumped when a new ffmpeg version bumps libavformat's soname!
 pkgname=ffmpeg
 version=4.2.3
-revision=5
+revision=6
 short_desc="Decoding, encoding and streaming software"
 maintainer="Johannes <johannes.brechtmann@gmail.com>"
 license="GPL-3.0-or-later"
@@ -16,16 +16,17 @@ makedepends="zlib-devel bzip2-devel freetype-devel alsa-lib-devel libXfixes-deve
  libXext-devel libXvMC-devel libxcb-devel faad2-devel lame-devel libtheora-devel
  gnutls-devel libvorbis-devel x264-devel xvidcore-devel jack-devel SDL2-devel
  libcdio-paranoia-devel librtmp-devel libmodplug-devel gnutls-devel
- speex-devel celt-devel harfbuzz-devel libass-devel opus-devel $(vopt_if pulseaudio pulseaudio-devel)
- ocl-icd-devel $(vopt_if x265 x265-devel) $(vopt_if vaapi libva-devel)
- $(vopt_if vdpau libvdpau-devel) $(vopt_if v4l2 v4l-utils-devel) libbs2b-devel
- libvidstab-devel $(vopt_if faac faac-devel) $(vopt_if fdk_aac fdk-aac-devel)
+ speex-devel celt-devel harfbuzz-devel libass-devel opus-devel ocl-icd-devel
+ libbs2b-devel libvidstab-devel $(vopt_if pulseaudio pulseaudio-devel)
+ $(vopt_if x265 x265-devel) $(vopt_if vaapi libva-devel) $(vopt_if vdpau libvdpau-devel)
+ $(vopt_if v4l2 v4l-utils-devel) $(vopt_if faac faac-devel) $(vopt_if fdk_aac fdk-aac-devel)
  $(vopt_if vpx libvpx-devel) $(vopt_if aom libaom-devel)
  $(vopt_if nvenc nv-codec-headers) $(vopt_if sndio sndio-devel)
  $(vopt_if dav1d libdav1d-devel) $(vopt_if zimg zimg-devel)"
 
-build_options="x265 v4l2 vaapi vdpau vpx faac fdk_aac aom nvenc sndio pulseaudio dav1d zimg"
-build_options_default="x265 v4l2 vpx sndio pulseaudio dav1d"
+build_options="x265 v4l2 vaapi vdpau vpx faac fdk_aac aom nvenc sndio pulseaudio
+ dav1d zimg"
+build_options_default="x265 v4l2 vpx aom sndio pulseaudio dav1d"
 
 case "$XBPS_TARGET_MACHINE" in
 	i686*|x86_64*) build_options_default+=" vaapi vdpau nvenc";;

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [RFC][NOMERGE] Update libaom and enable it for ffmpeg
  2020-07-13  2:17 [PR PATCH] [RFC][NOMERGE] Update libaom and enable it for ffmpeg ericonr
                   ` (2 preceding siblings ...)
  2020-07-13 13:32 ` [PR PATCH] [Updated] " ericonr
@ 2020-07-13 17:17 ` richfelker
  2020-07-13 17:36 ` ericonr
                   ` (18 subsequent siblings)
  22 siblings, 0 replies; 24+ messages in thread
From: richfelker @ 2020-07-13 17:17 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 212 bytes --]

New comment by richfelker on void-packages repository

https://github.com/void-linux/void-packages/pull/23542#issuecomment-657685184

Comment:
Can you add disassembly and register dump from the point of crash?


^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [RFC][NOMERGE] Update libaom and enable it for ffmpeg
  2020-07-13  2:17 [PR PATCH] [RFC][NOMERGE] Update libaom and enable it for ffmpeg ericonr
                   ` (3 preceding siblings ...)
  2020-07-13 17:17 ` richfelker
@ 2020-07-13 17:36 ` ericonr
  2020-07-13 18:26 ` [PR PATCH] [Updated] " ericonr
                   ` (17 subsequent siblings)
  22 siblings, 0 replies; 24+ messages in thread
From: ericonr @ 2020-07-13 17:36 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 217 bytes --]

New comment by ericonr on void-packages repository

https://github.com/void-linux/void-packages/pull/23542#issuecomment-657694300

Comment:
@richfelker https://gist.github.com/ericonr/d267780996c9d94ec9c139c619bfd45d

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PR PATCH] [Updated] [RFC][NOMERGE] Update libaom and enable it for ffmpeg
  2020-07-13  2:17 [PR PATCH] [RFC][NOMERGE] Update libaom and enable it for ffmpeg ericonr
                   ` (4 preceding siblings ...)
  2020-07-13 17:36 ` ericonr
@ 2020-07-13 18:26 ` ericonr
  2020-07-13 18:46 ` richfelker
                   ` (16 subsequent siblings)
  22 siblings, 0 replies; 24+ messages in thread
From: ericonr @ 2020-07-13 18:26 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 2406 bytes --]

There is an updated pull request by ericonr against master on the void-packages repository

https://github.com/ericonr/void-packages ffmpeg
https://github.com/void-linux/void-packages/pull/23542

[RFC][NOMERGE] Update libaom and enable it for ffmpeg
Fixes #23538 

I currently get segfaults when trying to use this with ffmpeg.

```
$ ffmpeg -i example.mp4 -c:v libaom-av1 -crf 30 -b:v 0 -strict experimental av1_test.mkv
```

gets me this backtrace:

```
#0  0x00007f98d9dde6c0 in lowbd_inv_txfm2d_add_no_identity_avx2 () from /lib/libaom.so.2
#1  0x00007f98d9b6b449 in av1_inverse_transform_block () from /lib/libaom.so.2
#2  0x00007f98d9d04eb1 in search_tx_type.constprop () from /lib/libaom.so.2
#3  0x00007f98d9d08cf6 in block_rd_txfm () from /lib/libaom.so.2
#4  0x00007f98d9c53f1f in av1_foreach_transformed_block_in_plane () from /lib/libaom.so.2
#5  0x00007f98d9d0de79 in av1_txfm_rd_in_plane () from /lib/libaom.so.2
#6  0x00007f98d9d0e006 in av1_uniform_txfm_yrd () from /lib/libaom.so.2
#7  0x00007f98d9d0e5ee in choose_tx_size_type_from_rd () from /lib/libaom.so.2
#8  0x00007f98d9d0e996 in av1_pick_uniform_tx_size_type_yrd () from /lib/libaom.so.2
#9  0x00007f98d9d1aaaa in av1_rd_pick_intra_sby_mode () from /lib/libaom.so.2
#10 0x00007f98d9ce402a in av1_rd_pick_intra_mode_sb () from /lib/libaom.so.2
#11 0x00007f98d9c361f1 in pick_sb_modes () from /lib/libaom.so.2
#12 0x00007f98d9c3b64e in rd_use_partition () from /lib/libaom.so.2
#13 0x00007f98d9c3af86 in rd_use_partition () from /lib/libaom.so.2
#14 0x00007f98d9c3b174 in rd_use_partition () from /lib/libaom.so.2
#15 0x00007f98d9c49eba in encode_rd_sb () from /lib/libaom.so.2
#16 0x00007f98d9c4e4a9 in av1_encode_sb_row () from /lib/libaom.so.2
#17 0x00007f98d9c7e002 in enc_row_mt_worker_hook () from /lib/libaom.so.2
#18 0x00007f98d9b2986b in thread_loop () from /lib/libaom.so.2
#19 0x00007f98dd1fa305 in start (p=0x7f98aec3a7a8) at src/thread/pthread_create.c:192
#20 0x00007f98dd207a6b in __clone () at src/thread/x86_64/clone.s:22
Backtrace stopped: frame did not save the PC
quit
```

I'm not sure we can enable it when it's like this. I can try using FFMPEG 4.3 to see if it works better then. I am on musl, so that might be an issue.

I also don't know how to test for gstreamer AV1 support. 

A patch file from https://github.com/void-linux/void-packages/pull/23542.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-ffmpeg-23542.patch --]
[-- Type: text/x-diff, Size: 6760 bytes --]

From cb735544c76a3438a9e0615217532a2a0dd2764f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Sun, 12 Jul 2020 22:36:53 -0300
Subject: [PATCH 1/3] libaom: update to 2.0.0.

---
 common/shlibs                        |  2 +-
 srcpkgs/libaom/patches/version.patch | 14 ------------
 srcpkgs/libaom/template              | 33 +++++++++++++++++++++++-----
 srcpkgs/libaom/update                |  2 +-
 4 files changed, 30 insertions(+), 21 deletions(-)
 delete mode 100644 srcpkgs/libaom/patches/version.patch

diff --git a/common/shlibs b/common/shlibs
index 00a0af53fcb..7b7b182bf11 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -3508,7 +3508,7 @@ libticalcs2.so.12 libticalcs2-1.1.9_1
 libhtmlcxx.so.3 htmlcxx-0.86_1
 libcss_parser_pp.so.0 htmlcxx-0.86_1
 libcss_parser.so.0 htmlcxx-0.86_1
-libaom.so.0 libaom-1.0.0_1
+libaom.so.2 libaom-2.0.0_1
 libre.so re-0.5.8_1
 libspandsp.so.2 spandsp-0.0.6_1
 libspa-alsa.so libspa-alsa-0.3.6_1
diff --git a/srcpkgs/libaom/patches/version.patch b/srcpkgs/libaom/patches/version.patch
deleted file mode 100644
index 97372192897..00000000000
--- a/srcpkgs/libaom/patches/version.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-add entry for 1.0.0 release to fix version in pkg-config file
-
---- CHANGELOG
-+++ CHANGELOG
-@@ -3,6 +3,9 @@
-     The AV1 encoder's default keyframe interval changed to 128 from 9999.
-     Support for armv6 was removed.
-
-+2019-03-16 v1.0.0 "AOMedia Codec 1"
-+  Current release
-+
- 2016-04-07 v0.1.0 "AOMedia Codec 1"
-   This release is the first Alliance for Open Media codec.
- 2015-11-09 v1.5.0 "Javan Whistling Duck"
diff --git a/srcpkgs/libaom/template b/srcpkgs/libaom/template
index 7cb2fcf07db..3d62063df0c 100644
--- a/srcpkgs/libaom/template
+++ b/srcpkgs/libaom/template
@@ -1,18 +1,41 @@
 # Template file for 'libaom'
 pkgname=libaom
-version=1.0.0.1
-revision=2
+version=2.0.0
+revision=1
 create_wrksrc=yes
 build_style=cmake
-configure_args="-DENABLE_DOCS=OFF -DBUILD_SHARED_LIBS=ON -DENABLE_TESTS=OFF"
+make_check_target=runtests
+make_check_args="-j${makejobs}"
+configure_args="-DENABLE_DOCS=OFF -DBUILD_SHARED_LIBS=ON"
 hostmakedepends="yasm doxygen perl python"
 short_desc="AV1 Codec library implementation"
 maintainer="Orphaned <orphan@voidlinux.org>"
 license="BSD-2-Clause"
 homepage="https://aomedia.org/"
 changelog="https://aomedia.googlesource.com/aom/+/master/CHANGELOG"
-distfiles="https://aomedia.googlesource.com/aom/+archive/v${version%.*}-errata${version##*.}.tar.gz"
-checksum=@0f1e812ca6d3b3809bf3f7a12a85b549c96d20bfa72fa606a682541bbc3eaeab
+distfiles="https://aomedia.googlesource.com/aom/+archive/v${version}.tar.gz"
+checksum=@4e8a74ed7e05d5534ab0b72735fa670ce1a1e757bc4a777f07fdabf8629fced1
+
+# aom segfaults with default musl stack size
+LDFLAGS="-Wl,-z,stack-size=2097152"
+
+case "$XBPS_TARGET_MACHINE" in
+	armv[67]l*) configure_args+=" -DENABLE_NEON=0" ;;
+esac
+
+if [ -z "$XBPS_CHECK_PKGS" ]; then
+	configure_args+=" -DENABLE_TESTS=OFF"
+fi
+
+pre_check() {
+	mkdir -p /host/libaom-test-data
+	export LIBAOM_TEST_DATA_PATH=/host/libaom-test-data
+}
+
+post_check() {
+	make testdata {$makejobs}
+	./test/examples.sh --bin-path examples
+}
 
 post_install() {
 	vlicense LICENSE
diff --git a/srcpkgs/libaom/update b/srcpkgs/libaom/update
index fd5a23fd8eb..866cfaf6c8c 100644
--- a/srcpkgs/libaom/update
+++ b/srcpkgs/libaom/update
@@ -1,3 +1,3 @@
 site=https://aomedia.googlesource.com/aom/
 pkgname=
-pattern="aom/\+/v\K[\d\.]+"
+pattern="v\K[\d\.][\d.]+"

From 0e25b5caff91d7034b1a99fd625d71521e19a653 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Sun, 12 Jul 2020 22:38:21 -0300
Subject: [PATCH 2/3] gst-plugins-bad1: revbump for libaom.

---
 srcpkgs/gst-plugins-bad1/template | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/srcpkgs/gst-plugins-bad1/template b/srcpkgs/gst-plugins-bad1/template
index df1d5053c5f..a1012b0a492 100644
--- a/srcpkgs/gst-plugins-bad1/template
+++ b/srcpkgs/gst-plugins-bad1/template
@@ -1,7 +1,7 @@
 # Template file for 'gst-plugins-bad1'
 pkgname=gst-plugins-bad1
 version=1.16.2
-revision=9
+revision=10
 wrksrc="${pkgname/1/}-${version}"
 build_helper="gir"
 build_style=meson

From f93ff9934c74b83f7d3a787fb6527cda2982d423 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Sun, 12 Jul 2020 20:25:32 -0300
Subject: [PATCH 3/3] ffmpeg: enable aom build option.

Reorganize the lines to get closer to the 80 column limit. Put all
dependencies related to build options after the normal dependencies.
---
 srcpkgs/ffmpeg/template | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)

diff --git a/srcpkgs/ffmpeg/template b/srcpkgs/ffmpeg/template
index ad986a72790..ee7bd6ee48a 100644
--- a/srcpkgs/ffmpeg/template
+++ b/srcpkgs/ffmpeg/template
@@ -2,7 +2,7 @@
 # audacity also needs to be bumped when a new ffmpeg version bumps libavformat's soname!
 pkgname=ffmpeg
 version=4.2.3
-revision=5
+revision=6
 short_desc="Decoding, encoding and streaming software"
 maintainer="Johannes <johannes.brechtmann@gmail.com>"
 license="GPL-3.0-or-later"
@@ -16,16 +16,17 @@ makedepends="zlib-devel bzip2-devel freetype-devel alsa-lib-devel libXfixes-deve
  libXext-devel libXvMC-devel libxcb-devel faad2-devel lame-devel libtheora-devel
  gnutls-devel libvorbis-devel x264-devel xvidcore-devel jack-devel SDL2-devel
  libcdio-paranoia-devel librtmp-devel libmodplug-devel gnutls-devel
- speex-devel celt-devel harfbuzz-devel libass-devel opus-devel $(vopt_if pulseaudio pulseaudio-devel)
- ocl-icd-devel $(vopt_if x265 x265-devel) $(vopt_if vaapi libva-devel)
- $(vopt_if vdpau libvdpau-devel) $(vopt_if v4l2 v4l-utils-devel) libbs2b-devel
- libvidstab-devel $(vopt_if faac faac-devel) $(vopt_if fdk_aac fdk-aac-devel)
+ speex-devel celt-devel harfbuzz-devel libass-devel opus-devel ocl-icd-devel
+ libbs2b-devel libvidstab-devel $(vopt_if pulseaudio pulseaudio-devel)
+ $(vopt_if x265 x265-devel) $(vopt_if vaapi libva-devel) $(vopt_if vdpau libvdpau-devel)
+ $(vopt_if v4l2 v4l-utils-devel) $(vopt_if faac faac-devel) $(vopt_if fdk_aac fdk-aac-devel)
  $(vopt_if vpx libvpx-devel) $(vopt_if aom libaom-devel)
  $(vopt_if nvenc nv-codec-headers) $(vopt_if sndio sndio-devel)
  $(vopt_if dav1d libdav1d-devel) $(vopt_if zimg zimg-devel)"
 
-build_options="x265 v4l2 vaapi vdpau vpx faac fdk_aac aom nvenc sndio pulseaudio dav1d zimg"
-build_options_default="x265 v4l2 vpx sndio pulseaudio dav1d"
+build_options="x265 v4l2 vaapi vdpau vpx faac fdk_aac aom nvenc sndio pulseaudio
+ dav1d zimg"
+build_options_default="x265 v4l2 vpx aom sndio pulseaudio dav1d"
 
 case "$XBPS_TARGET_MACHINE" in
 	i686*|x86_64*) build_options_default+=" vaapi vdpau nvenc";;

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [RFC][NOMERGE] Update libaom and enable it for ffmpeg
  2020-07-13  2:17 [PR PATCH] [RFC][NOMERGE] Update libaom and enable it for ffmpeg ericonr
                   ` (5 preceding siblings ...)
  2020-07-13 18:26 ` [PR PATCH] [Updated] " ericonr
@ 2020-07-13 18:46 ` richfelker
  2020-07-20 14:15 ` [PR PATCH] [Updated] " ericonr
                   ` (15 subsequent siblings)
  22 siblings, 0 replies; 24+ messages in thread
From: richfelker @ 2020-07-13 18:46 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 215 bytes --]

New comment by richfelker on void-packages repository

https://github.com/void-linux/void-packages/pull/23542#issuecomment-657728472

Comment:
OK, it's just stack overflow from something using way too much stack.


^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PR PATCH] [Updated] Update libaom and enable it for ffmpeg
  2020-07-13  2:17 [PR PATCH] [RFC][NOMERGE] Update libaom and enable it for ffmpeg ericonr
                   ` (6 preceding siblings ...)
  2020-07-13 18:46 ` richfelker
@ 2020-07-20 14:15 ` ericonr
  2020-07-20 14:16 ` ericonr
                   ` (14 subsequent siblings)
  22 siblings, 0 replies; 24+ messages in thread
From: ericonr @ 2020-07-20 14:15 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 2391 bytes --]

There is an updated pull request by ericonr against master on the void-packages repository

https://github.com/ericonr/void-packages ffmpeg
https://github.com/void-linux/void-packages/pull/23542

Update libaom and enable it for ffmpeg
Fixes #23538 

I currently get segfaults when trying to use this with ffmpeg.

```
$ ffmpeg -i example.mp4 -c:v libaom-av1 -crf 30 -b:v 0 -strict experimental av1_test.mkv
```

gets me this backtrace:

```
#0  0x00007f98d9dde6c0 in lowbd_inv_txfm2d_add_no_identity_avx2 () from /lib/libaom.so.2
#1  0x00007f98d9b6b449 in av1_inverse_transform_block () from /lib/libaom.so.2
#2  0x00007f98d9d04eb1 in search_tx_type.constprop () from /lib/libaom.so.2
#3  0x00007f98d9d08cf6 in block_rd_txfm () from /lib/libaom.so.2
#4  0x00007f98d9c53f1f in av1_foreach_transformed_block_in_plane () from /lib/libaom.so.2
#5  0x00007f98d9d0de79 in av1_txfm_rd_in_plane () from /lib/libaom.so.2
#6  0x00007f98d9d0e006 in av1_uniform_txfm_yrd () from /lib/libaom.so.2
#7  0x00007f98d9d0e5ee in choose_tx_size_type_from_rd () from /lib/libaom.so.2
#8  0x00007f98d9d0e996 in av1_pick_uniform_tx_size_type_yrd () from /lib/libaom.so.2
#9  0x00007f98d9d1aaaa in av1_rd_pick_intra_sby_mode () from /lib/libaom.so.2
#10 0x00007f98d9ce402a in av1_rd_pick_intra_mode_sb () from /lib/libaom.so.2
#11 0x00007f98d9c361f1 in pick_sb_modes () from /lib/libaom.so.2
#12 0x00007f98d9c3b64e in rd_use_partition () from /lib/libaom.so.2
#13 0x00007f98d9c3af86 in rd_use_partition () from /lib/libaom.so.2
#14 0x00007f98d9c3b174 in rd_use_partition () from /lib/libaom.so.2
#15 0x00007f98d9c49eba in encode_rd_sb () from /lib/libaom.so.2
#16 0x00007f98d9c4e4a9 in av1_encode_sb_row () from /lib/libaom.so.2
#17 0x00007f98d9c7e002 in enc_row_mt_worker_hook () from /lib/libaom.so.2
#18 0x00007f98d9b2986b in thread_loop () from /lib/libaom.so.2
#19 0x00007f98dd1fa305 in start (p=0x7f98aec3a7a8) at src/thread/pthread_create.c:192
#20 0x00007f98dd207a6b in __clone () at src/thread/x86_64/clone.s:22
Backtrace stopped: frame did not save the PC
quit
```

I'm not sure we can enable it when it's like this. I can try using FFMPEG 4.3 to see if it works better then. I am on musl, so that might be an issue.

I also don't know how to test for gstreamer AV1 support. 

A patch file from https://github.com/void-linux/void-packages/pull/23542.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-ffmpeg-23542.patch --]
[-- Type: text/x-diff, Size: 6856 bytes --]

From f0331056279792e1f728259304746fbde9ab093b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Sun, 12 Jul 2020 22:36:53 -0300
Subject: [PATCH 1/3] libaom: update to 2.0.0.

---
 common/shlibs                        |  2 +-
 srcpkgs/libaom/patches/version.patch | 14 ------------
 srcpkgs/libaom/template              | 33 +++++++++++++++++++++++-----
 srcpkgs/libaom/update                |  2 +-
 4 files changed, 30 insertions(+), 21 deletions(-)
 delete mode 100644 srcpkgs/libaom/patches/version.patch

diff --git a/common/shlibs b/common/shlibs
index 42bb0996d24..bd561f7c446 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -3506,7 +3506,7 @@ libticalcs2.so.12 libticalcs2-1.1.9_1
 libhtmlcxx.so.3 htmlcxx-0.86_1
 libcss_parser_pp.so.0 htmlcxx-0.86_1
 libcss_parser.so.0 htmlcxx-0.86_1
-libaom.so.0 libaom-1.0.0_1
+libaom.so.2 libaom-2.0.0_1
 libre.so re-0.5.8_1
 libspandsp.so.2 spandsp-0.0.6_1
 libspa-alsa.so libspa-alsa-0.3.6_1
diff --git a/srcpkgs/libaom/patches/version.patch b/srcpkgs/libaom/patches/version.patch
deleted file mode 100644
index 97372192897..00000000000
--- a/srcpkgs/libaom/patches/version.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-add entry for 1.0.0 release to fix version in pkg-config file
-
---- CHANGELOG
-+++ CHANGELOG
-@@ -3,6 +3,9 @@
-     The AV1 encoder's default keyframe interval changed to 128 from 9999.
-     Support for armv6 was removed.
-
-+2019-03-16 v1.0.0 "AOMedia Codec 1"
-+  Current release
-+
- 2016-04-07 v0.1.0 "AOMedia Codec 1"
-   This release is the first Alliance for Open Media codec.
- 2015-11-09 v1.5.0 "Javan Whistling Duck"
diff --git a/srcpkgs/libaom/template b/srcpkgs/libaom/template
index 7cb2fcf07db..ef0dce5f918 100644
--- a/srcpkgs/libaom/template
+++ b/srcpkgs/libaom/template
@@ -1,18 +1,40 @@
 # Template file for 'libaom'
 pkgname=libaom
-version=1.0.0.1
-revision=2
+version=2.0.0
+revision=1
 create_wrksrc=yes
 build_style=cmake
-configure_args="-DENABLE_DOCS=OFF -DBUILD_SHARED_LIBS=ON -DENABLE_TESTS=OFF"
+configure_args="-DENABLE_DOCS=OFF -DBUILD_SHARED_LIBS=ON"
 hostmakedepends="yasm doxygen perl python"
 short_desc="AV1 Codec library implementation"
 maintainer="Orphaned <orphan@voidlinux.org>"
 license="BSD-2-Clause"
 homepage="https://aomedia.org/"
 changelog="https://aomedia.googlesource.com/aom/+/master/CHANGELOG"
-distfiles="https://aomedia.googlesource.com/aom/+archive/v${version%.*}-errata${version##*.}.tar.gz"
-checksum=@0f1e812ca6d3b3809bf3f7a12a85b549c96d20bfa72fa606a682541bbc3eaeab
+distfiles="https://aomedia.googlesource.com/aom/+archive/v${version}.tar.gz"
+checksum=@4e8a74ed7e05d5534ab0b72735fa670ce1a1e757bc4a777f07fdabf8629fced1
+
+# aom segfaults with default musl stack size
+LDFLAGS="-Wl,-z,stack-size=2097152"
+
+case "$XBPS_TARGET_MACHINE" in
+	armv[67]l*) configure_args+=" -DENABLE_NEON=0" ;;
+esac
+
+if [ -z "$XBPS_CHECK_PKGS" ]; then
+	configure_args+=" -DENABLE_TESTS=OFF"
+fi
+
+pre_check() {
+	mkdir -p /host/libaom-test-data
+	export LIBAOM_TEST_DATA_PATH=/host/libaom-test-data
+}
+
+do_check() {
+	cd build
+	make runtests ${makejobs}
+	../test/examples.sh --bin-path examples
+}
 
 post_install() {
 	vlicense LICENSE
@@ -25,6 +47,7 @@ libaom-devel_package() {
 		vmove usr/include
 		vmove usr/lib/pkgconfig
 		vmove "usr/lib/*.so"
+		vmove "usr/lib/*.a"
 	}
 }
 
diff --git a/srcpkgs/libaom/update b/srcpkgs/libaom/update
index fd5a23fd8eb..866cfaf6c8c 100644
--- a/srcpkgs/libaom/update
+++ b/srcpkgs/libaom/update
@@ -1,3 +1,3 @@
 site=https://aomedia.googlesource.com/aom/
 pkgname=
-pattern="aom/\+/v\K[\d\.]+"
+pattern="v\K[\d\.][\d.]+"

From 0de1bfdd6d91a0fe619e95a7f28e68f844a03ff1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Sun, 12 Jul 2020 22:38:21 -0300
Subject: [PATCH 2/3] gst-plugins-bad1: revbump for libaom.

---
 srcpkgs/gst-plugins-bad1/template | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/srcpkgs/gst-plugins-bad1/template b/srcpkgs/gst-plugins-bad1/template
index df1d5053c5f..a1012b0a492 100644
--- a/srcpkgs/gst-plugins-bad1/template
+++ b/srcpkgs/gst-plugins-bad1/template
@@ -1,7 +1,7 @@
 # Template file for 'gst-plugins-bad1'
 pkgname=gst-plugins-bad1
 version=1.16.2
-revision=9
+revision=10
 wrksrc="${pkgname/1/}-${version}"
 build_helper="gir"
 build_style=meson

From f162947745eeaa0aac8700ea2d56be52f9fee2b9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Sun, 12 Jul 2020 20:25:32 -0300
Subject: [PATCH 3/3] ffmpeg: enable aom build option.

Reorganize the lines to get closer to the 80 column limit. Put all
dependencies related to build options after the normal dependencies.
---
 srcpkgs/ffmpeg/template | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)

diff --git a/srcpkgs/ffmpeg/template b/srcpkgs/ffmpeg/template
index ad986a72790..ee7bd6ee48a 100644
--- a/srcpkgs/ffmpeg/template
+++ b/srcpkgs/ffmpeg/template
@@ -2,7 +2,7 @@
 # audacity also needs to be bumped when a new ffmpeg version bumps libavformat's soname!
 pkgname=ffmpeg
 version=4.2.3
-revision=5
+revision=6
 short_desc="Decoding, encoding and streaming software"
 maintainer="Johannes <johannes.brechtmann@gmail.com>"
 license="GPL-3.0-or-later"
@@ -16,16 +16,17 @@ makedepends="zlib-devel bzip2-devel freetype-devel alsa-lib-devel libXfixes-deve
  libXext-devel libXvMC-devel libxcb-devel faad2-devel lame-devel libtheora-devel
  gnutls-devel libvorbis-devel x264-devel xvidcore-devel jack-devel SDL2-devel
  libcdio-paranoia-devel librtmp-devel libmodplug-devel gnutls-devel
- speex-devel celt-devel harfbuzz-devel libass-devel opus-devel $(vopt_if pulseaudio pulseaudio-devel)
- ocl-icd-devel $(vopt_if x265 x265-devel) $(vopt_if vaapi libva-devel)
- $(vopt_if vdpau libvdpau-devel) $(vopt_if v4l2 v4l-utils-devel) libbs2b-devel
- libvidstab-devel $(vopt_if faac faac-devel) $(vopt_if fdk_aac fdk-aac-devel)
+ speex-devel celt-devel harfbuzz-devel libass-devel opus-devel ocl-icd-devel
+ libbs2b-devel libvidstab-devel $(vopt_if pulseaudio pulseaudio-devel)
+ $(vopt_if x265 x265-devel) $(vopt_if vaapi libva-devel) $(vopt_if vdpau libvdpau-devel)
+ $(vopt_if v4l2 v4l-utils-devel) $(vopt_if faac faac-devel) $(vopt_if fdk_aac fdk-aac-devel)
  $(vopt_if vpx libvpx-devel) $(vopt_if aom libaom-devel)
  $(vopt_if nvenc nv-codec-headers) $(vopt_if sndio sndio-devel)
  $(vopt_if dav1d libdav1d-devel) $(vopt_if zimg zimg-devel)"
 
-build_options="x265 v4l2 vaapi vdpau vpx faac fdk_aac aom nvenc sndio pulseaudio dav1d zimg"
-build_options_default="x265 v4l2 vpx sndio pulseaudio dav1d"
+build_options="x265 v4l2 vaapi vdpau vpx faac fdk_aac aom nvenc sndio pulseaudio
+ dav1d zimg"
+build_options_default="x265 v4l2 vpx aom sndio pulseaudio dav1d"
 
 case "$XBPS_TARGET_MACHINE" in
 	i686*|x86_64*) build_options_default+=" vaapi vdpau nvenc";;

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: Update libaom and enable it for ffmpeg
  2020-07-13  2:17 [PR PATCH] [RFC][NOMERGE] Update libaom and enable it for ffmpeg ericonr
                   ` (7 preceding siblings ...)
  2020-07-20 14:15 ` [PR PATCH] [Updated] " ericonr
@ 2020-07-20 14:16 ` ericonr
  2020-07-20 14:36 ` ericonr
                   ` (13 subsequent siblings)
  22 siblings, 0 replies; 24+ messages in thread
From: ericonr @ 2020-07-20 14:16 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 275 bytes --]

New comment by ericonr on void-packages repository

https://github.com/void-linux/void-packages/pull/23542#issuecomment-661067371

Comment:
Hooray, passsed all tests for libaom. `gst-plugins-bad1` ones didn't: https://gist.github.com/ericonr/3ccaac3790de3fecd1a652b7498d96d3

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: Update libaom and enable it for ffmpeg
  2020-07-13  2:17 [PR PATCH] [RFC][NOMERGE] Update libaom and enable it for ffmpeg ericonr
                   ` (8 preceding siblings ...)
  2020-07-20 14:16 ` ericonr
@ 2020-07-20 14:36 ` ericonr
  2020-07-21 23:26 ` [PR REVIEW] " ericonr
                   ` (12 subsequent siblings)
  22 siblings, 0 replies; 24+ messages in thread
From: ericonr @ 2020-07-20 14:36 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 223 bytes --]

New comment by ericonr on void-packages repository

https://github.com/void-linux/void-packages/pull/23542#issuecomment-661079514

Comment:
The same errors happened without the libaom upgrade, so it shouldn't be a blocker.

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PR REVIEW] Update libaom and enable it for ffmpeg
  2020-07-13  2:17 [PR PATCH] [RFC][NOMERGE] Update libaom and enable it for ffmpeg ericonr
                   ` (9 preceding siblings ...)
  2020-07-20 14:36 ` ericonr
@ 2020-07-21 23:26 ` ericonr
  2020-07-22  0:48 ` q66
                   ` (11 subsequent siblings)
  22 siblings, 0 replies; 24+ messages in thread
From: ericonr @ 2020-07-21 23:26 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 186 bytes --]

New review comment by ericonr on void-packages repository

https://github.com/void-linux/void-packages/pull/23542#discussion_r458445806

Comment:
@pullmoll should I include `arm5` here?

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PR REVIEW] Update libaom and enable it for ffmpeg
  2020-07-13  2:17 [PR PATCH] [RFC][NOMERGE] Update libaom and enable it for ffmpeg ericonr
                   ` (10 preceding siblings ...)
  2020-07-21 23:26 ` [PR REVIEW] " ericonr
@ 2020-07-22  0:48 ` q66
  2020-07-22  0:49 ` ericonr
                   ` (10 subsequent siblings)
  22 siblings, 0 replies; 24+ messages in thread
From: q66 @ 2020-07-22  0:48 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 313 bytes --]

New review comment by q66 on void-packages repository

https://github.com/void-linux/void-packages/pull/23542#discussion_r458469695

Comment:
you could just use `arm*` but i'd first check if it's necessary at all, it could be doing runtime checking (in which case we'd only disable it for armv5 and 6, and not 7)

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PR REVIEW] Update libaom and enable it for ffmpeg
  2020-07-13  2:17 [PR PATCH] [RFC][NOMERGE] Update libaom and enable it for ffmpeg ericonr
                   ` (11 preceding siblings ...)
  2020-07-22  0:48 ` q66
@ 2020-07-22  0:49 ` ericonr
  2020-07-22  0:56 ` ericonr
                   ` (9 subsequent siblings)
  22 siblings, 0 replies; 24+ messages in thread
From: ericonr @ 2020-07-22  0:49 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 209 bytes --]

New review comment by ericonr on void-packages repository

https://github.com/void-linux/void-packages/pull/23542#discussion_r458470100

Comment:
It broke the build for `armv7l` iirc, but I can test it again.

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PR REVIEW] Update libaom and enable it for ffmpeg
  2020-07-13  2:17 [PR PATCH] [RFC][NOMERGE] Update libaom and enable it for ffmpeg ericonr
                   ` (12 preceding siblings ...)
  2020-07-22  0:49 ` ericonr
@ 2020-07-22  0:56 ` ericonr
  2020-07-22  0:56 ` ericonr
                   ` (8 subsequent siblings)
  22 siblings, 0 replies; 24+ messages in thread
From: ericonr @ 2020-07-22  0:56 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 2801 bytes --]

New review comment by ericonr on void-packages repository

https://github.com/void-linux/void-packages/pull/23542#discussion_r458471944

Comment:
Lots of similar errors:

```
[ 18%] Building C object CMakeFiles/aom_scale.dir/aom_scale/generic/yv12config.c.o
In file included from ../av1/common/arm/av1_txfm_neon.c:12:
../av1/common/arm/av1_txfm_neon.c: In function 'av1_round_shift_array_neon':
/usr/lib/gcc/armv7l-linux-musleabihf/9.3.0/include/arm_neon.h:6733:1: error: inlining failed in call to always_inline 'vdupq_n_s32': target specific option mismatch
 6733 | vdupq_n_s32 (int32_t __a)
      | ^~~~~~~~~~~
../av1/common/arm/av1_txfm_neon.c:23:37: note: called from here
   23 |   const int32x4_t dup_bits_n_32x4 = vdupq_n_s32((int32_t)(-bit));
      |                                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../av1/common/arm/av1_txfm_neon.c:12:
/usr/lib/gcc/armv7l-linux-musleabihf/9.3.0/include/arm_neon.h:10947:1: error: inlining failed in call to always_inline 'vst1q_s32': target specific option mismatch
10947 | vst1q_s32 (int32_t * __a, int32x4_t __b)
      | ^~~~~~~~~
../av1/common/arm/av1_txfm_neon.c:27:5: note: called from here
   27 |     vst1q_s32(arr, tmp_q_s32);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../av1/common/arm/av1_txfm_neon.c:12:
/usr/lib/gcc/armv7l-linux-musleabihf/9.3.0/include/arm_neon.h:4035:1: error: inlining failed in call to always_inline 'vrshlq_s32': target specific option mismatch
 4035 | vrshlq_s32 (int32x4_t __a, int32x4_t __b)
      | ^~~~~~~~~~
../av1/common/arm/av1_txfm_neon.c:26:17: note: called from here
   26 |     tmp_q_s32 = vrshlq_s32(tmp_q_s32, dup_bits_n_32x4);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../av1/common/arm/av1_txfm_neon.c:12:
/usr/lib/gcc/armv7l-linux-musleabihf/9.3.0/include/arm_neon.h:10369:1: error: inlining failed in call to always_inline 'vld1q_s32': target specific option mismatch
10369 | vld1q_s32 (const int32_t * __a)
      | ^~~~~~~~~
../av1/common/arm/av1_txfm_neon.c:25:27: note: called from here
   25 |     int32x4_t tmp_q_s32 = vld1q_s32(arr);
      |                           ^~~~~~~~~~~~~~
make[2]: *** [CMakeFiles/aom_av1_common_neon_intrinsics.dir/build.make:83: CMakeFiles/aom_av1_common_neon_intrinsics.dir/av1/common/arm/av1_txfm_neon.c.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:393: CMakeFiles/aom_av1_common_neon_intrinsics.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 18%] Built target aom_decoder_app_util
```

Their armv7l toolchain has this, which implies lack of runtime detection.

```
set(AOM_NEON_INTRIN_FLAG "-mfpu=neon")

# No runtime cpu detect for armv7-linux-gcc.
set(CONFIG_RUNTIME_CPU_DETECT 0 CACHE STRING "")
```

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PR REVIEW] Update libaom and enable it for ffmpeg
  2020-07-13  2:17 [PR PATCH] [RFC][NOMERGE] Update libaom and enable it for ffmpeg ericonr
                   ` (13 preceding siblings ...)
  2020-07-22  0:56 ` ericonr
@ 2020-07-22  0:56 ` ericonr
  2020-07-22  0:58 ` [PR PATCH] [Updated] " ericonr
                   ` (7 subsequent siblings)
  22 siblings, 0 replies; 24+ messages in thread
From: ericonr @ 2020-07-22  0:56 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 2805 bytes --]

New review comment by ericonr on void-packages repository

https://github.com/void-linux/void-packages/pull/23542#discussion_r458471944

Comment:
Lots of similar errors:

```
[ 18%] Building C object CMakeFiles/aom_scale.dir/aom_scale/generic/yv12config.c.o
In file included from ../av1/common/arm/av1_txfm_neon.c:12:
../av1/common/arm/av1_txfm_neon.c: In function 'av1_round_shift_array_neon':
/usr/lib/gcc/armv7l-linux-musleabihf/9.3.0/include/arm_neon.h:6733:1: error: inlining failed in call to always_inline 'vdupq_n_s32': target specific option mismatch
 6733 | vdupq_n_s32 (int32_t __a)
      | ^~~~~~~~~~~
../av1/common/arm/av1_txfm_neon.c:23:37: note: called from here
   23 |   const int32x4_t dup_bits_n_32x4 = vdupq_n_s32((int32_t)(-bit));
      |                                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../av1/common/arm/av1_txfm_neon.c:12:
/usr/lib/gcc/armv7l-linux-musleabihf/9.3.0/include/arm_neon.h:10947:1: error: inlining failed in call to always_inline 'vst1q_s32': target specific option mismatch
10947 | vst1q_s32 (int32_t * __a, int32x4_t __b)
      | ^~~~~~~~~
../av1/common/arm/av1_txfm_neon.c:27:5: note: called from here
   27 |     vst1q_s32(arr, tmp_q_s32);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../av1/common/arm/av1_txfm_neon.c:12:
/usr/lib/gcc/armv7l-linux-musleabihf/9.3.0/include/arm_neon.h:4035:1: error: inlining failed in call to always_inline 'vrshlq_s32': target specific option mismatch
 4035 | vrshlq_s32 (int32x4_t __a, int32x4_t __b)
      | ^~~~~~~~~~
../av1/common/arm/av1_txfm_neon.c:26:17: note: called from here
   26 |     tmp_q_s32 = vrshlq_s32(tmp_q_s32, dup_bits_n_32x4);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../av1/common/arm/av1_txfm_neon.c:12:
/usr/lib/gcc/armv7l-linux-musleabihf/9.3.0/include/arm_neon.h:10369:1: error: inlining failed in call to always_inline 'vld1q_s32': target specific option mismatch
10369 | vld1q_s32 (const int32_t * __a)
      | ^~~~~~~~~
../av1/common/arm/av1_txfm_neon.c:25:27: note: called from here
   25 |     int32x4_t tmp_q_s32 = vld1q_s32(arr);
      |                           ^~~~~~~~~~~~~~
make[2]: *** [CMakeFiles/aom_av1_common_neon_intrinsics.dir/build.make:83: CMakeFiles/aom_av1_common_neon_intrinsics.dir/av1/common/arm/av1_txfm_neon.c.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:393: CMakeFiles/aom_av1_common_neon_intrinsics.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 18%] Built target aom_decoder_app_util
```

Their armv7l toolchain has this, which specifies a lack of runtime detection:

```
set(AOM_NEON_INTRIN_FLAG "-mfpu=neon")

# No runtime cpu detect for armv7-linux-gcc.
set(CONFIG_RUNTIME_CPU_DETECT 0 CACHE STRING "")
```

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PR PATCH] [Updated] Update libaom and enable it for ffmpeg
  2020-07-13  2:17 [PR PATCH] [RFC][NOMERGE] Update libaom and enable it for ffmpeg ericonr
                   ` (14 preceding siblings ...)
  2020-07-22  0:56 ` ericonr
@ 2020-07-22  0:58 ` ericonr
  2020-07-22  0:59 ` [PR REVIEW] " q66
                   ` (6 subsequent siblings)
  22 siblings, 0 replies; 24+ messages in thread
From: ericonr @ 2020-07-22  0:58 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 2391 bytes --]

There is an updated pull request by ericonr against master on the void-packages repository

https://github.com/ericonr/void-packages ffmpeg
https://github.com/void-linux/void-packages/pull/23542

Update libaom and enable it for ffmpeg
Fixes #23538 

I currently get segfaults when trying to use this with ffmpeg.

```
$ ffmpeg -i example.mp4 -c:v libaom-av1 -crf 30 -b:v 0 -strict experimental av1_test.mkv
```

gets me this backtrace:

```
#0  0x00007f98d9dde6c0 in lowbd_inv_txfm2d_add_no_identity_avx2 () from /lib/libaom.so.2
#1  0x00007f98d9b6b449 in av1_inverse_transform_block () from /lib/libaom.so.2
#2  0x00007f98d9d04eb1 in search_tx_type.constprop () from /lib/libaom.so.2
#3  0x00007f98d9d08cf6 in block_rd_txfm () from /lib/libaom.so.2
#4  0x00007f98d9c53f1f in av1_foreach_transformed_block_in_plane () from /lib/libaom.so.2
#5  0x00007f98d9d0de79 in av1_txfm_rd_in_plane () from /lib/libaom.so.2
#6  0x00007f98d9d0e006 in av1_uniform_txfm_yrd () from /lib/libaom.so.2
#7  0x00007f98d9d0e5ee in choose_tx_size_type_from_rd () from /lib/libaom.so.2
#8  0x00007f98d9d0e996 in av1_pick_uniform_tx_size_type_yrd () from /lib/libaom.so.2
#9  0x00007f98d9d1aaaa in av1_rd_pick_intra_sby_mode () from /lib/libaom.so.2
#10 0x00007f98d9ce402a in av1_rd_pick_intra_mode_sb () from /lib/libaom.so.2
#11 0x00007f98d9c361f1 in pick_sb_modes () from /lib/libaom.so.2
#12 0x00007f98d9c3b64e in rd_use_partition () from /lib/libaom.so.2
#13 0x00007f98d9c3af86 in rd_use_partition () from /lib/libaom.so.2
#14 0x00007f98d9c3b174 in rd_use_partition () from /lib/libaom.so.2
#15 0x00007f98d9c49eba in encode_rd_sb () from /lib/libaom.so.2
#16 0x00007f98d9c4e4a9 in av1_encode_sb_row () from /lib/libaom.so.2
#17 0x00007f98d9c7e002 in enc_row_mt_worker_hook () from /lib/libaom.so.2
#18 0x00007f98d9b2986b in thread_loop () from /lib/libaom.so.2
#19 0x00007f98dd1fa305 in start (p=0x7f98aec3a7a8) at src/thread/pthread_create.c:192
#20 0x00007f98dd207a6b in __clone () at src/thread/x86_64/clone.s:22
Backtrace stopped: frame did not save the PC
quit
```

I'm not sure we can enable it when it's like this. I can try using FFMPEG 4.3 to see if it works better then. I am on musl, so that might be an issue.

I also don't know how to test for gstreamer AV1 support. 

A patch file from https://github.com/void-linux/void-packages/pull/23542.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-ffmpeg-23542.patch --]
[-- Type: text/x-diff, Size: 6875 bytes --]

From 49b3f5b55c86c8d42c4bb0b0be890e903d692fb9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Sun, 12 Jul 2020 22:36:53 -0300
Subject: [PATCH 1/3] libaom: update to 2.0.0.

---
 common/shlibs                        |  2 +-
 srcpkgs/libaom/patches/version.patch | 14 ------------
 srcpkgs/libaom/template              | 34 ++++++++++++++++++++++++----
 srcpkgs/libaom/update                |  2 +-
 4 files changed, 31 insertions(+), 21 deletions(-)
 delete mode 100644 srcpkgs/libaom/patches/version.patch

diff --git a/common/shlibs b/common/shlibs
index e0994cf183d..57c78c6078b 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -3501,7 +3501,7 @@ libticalcs2.so.12 libticalcs2-1.1.9_1
 libhtmlcxx.so.3 htmlcxx-0.86_1
 libcss_parser_pp.so.0 htmlcxx-0.86_1
 libcss_parser.so.0 htmlcxx-0.86_1
-libaom.so.0 libaom-1.0.0_1
+libaom.so.2 libaom-2.0.0_1
 libre.so re-0.5.8_1
 libspandsp.so.2 spandsp-0.0.6_1
 libspa-alsa.so libspa-alsa-0.3.6_1
diff --git a/srcpkgs/libaom/patches/version.patch b/srcpkgs/libaom/patches/version.patch
deleted file mode 100644
index 97372192897..00000000000
--- a/srcpkgs/libaom/patches/version.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-add entry for 1.0.0 release to fix version in pkg-config file
-
---- CHANGELOG
-+++ CHANGELOG
-@@ -3,6 +3,9 @@
-     The AV1 encoder's default keyframe interval changed to 128 from 9999.
-     Support for armv6 was removed.
-
-+2019-03-16 v1.0.0 "AOMedia Codec 1"
-+  Current release
-+
- 2016-04-07 v0.1.0 "AOMedia Codec 1"
-   This release is the first Alliance for Open Media codec.
- 2015-11-09 v1.5.0 "Javan Whistling Duck"
diff --git a/srcpkgs/libaom/template b/srcpkgs/libaom/template
index 7cb2fcf07db..c02832e30ec 100644
--- a/srcpkgs/libaom/template
+++ b/srcpkgs/libaom/template
@@ -1,18 +1,41 @@
 # Template file for 'libaom'
 pkgname=libaom
-version=1.0.0.1
-revision=2
+version=2.0.0
+revision=1
 create_wrksrc=yes
 build_style=cmake
-configure_args="-DENABLE_DOCS=OFF -DBUILD_SHARED_LIBS=ON -DENABLE_TESTS=OFF"
+configure_args="-DENABLE_DOCS=OFF -DBUILD_SHARED_LIBS=ON"
 hostmakedepends="yasm doxygen perl python"
 short_desc="AV1 Codec library implementation"
 maintainer="Orphaned <orphan@voidlinux.org>"
 license="BSD-2-Clause"
 homepage="https://aomedia.org/"
 changelog="https://aomedia.googlesource.com/aom/+/master/CHANGELOG"
-distfiles="https://aomedia.googlesource.com/aom/+archive/v${version%.*}-errata${version##*.}.tar.gz"
-checksum=@0f1e812ca6d3b3809bf3f7a12a85b549c96d20bfa72fa606a682541bbc3eaeab
+distfiles="https://aomedia.googlesource.com/aom/+archive/v${version}.tar.gz"
+checksum=@4e8a74ed7e05d5534ab0b72735fa670ce1a1e757bc4a777f07fdabf8629fced1
+
+# aom segfaults with default musl stack size
+LDFLAGS="-Wl,-z,stack-size=2097152"
+
+case "$XBPS_TARGET_MACHINE" in
+	# no runtime detection
+	arm*) configure_args+=" -DENABLE_NEON=0" ;;
+esac
+
+if [ -z "$XBPS_CHECK_PKGS" ]; then
+	configure_args+=" -DENABLE_TESTS=OFF"
+fi
+
+pre_check() {
+	mkdir -p /host/libaom-test-data
+	export LIBAOM_TEST_DATA_PATH=/host/libaom-test-data
+}
+
+do_check() {
+	cd build
+	make runtests ${makejobs}
+	../test/examples.sh --bin-path examples
+}
 
 post_install() {
 	vlicense LICENSE
@@ -25,6 +48,7 @@ libaom-devel_package() {
 		vmove usr/include
 		vmove usr/lib/pkgconfig
 		vmove "usr/lib/*.so"
+		vmove "usr/lib/*.a"
 	}
 }
 
diff --git a/srcpkgs/libaom/update b/srcpkgs/libaom/update
index fd5a23fd8eb..866cfaf6c8c 100644
--- a/srcpkgs/libaom/update
+++ b/srcpkgs/libaom/update
@@ -1,3 +1,3 @@
 site=https://aomedia.googlesource.com/aom/
 pkgname=
-pattern="aom/\+/v\K[\d\.]+"
+pattern="v\K[\d\.][\d.]+"

From 76673fad94cc27121b95ff1f93df537f55fdb7d9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Sun, 12 Jul 2020 22:38:21 -0300
Subject: [PATCH 2/3] gst-plugins-bad1: revbump for libaom.

---
 srcpkgs/gst-plugins-bad1/template | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/srcpkgs/gst-plugins-bad1/template b/srcpkgs/gst-plugins-bad1/template
index df1d5053c5f..a1012b0a492 100644
--- a/srcpkgs/gst-plugins-bad1/template
+++ b/srcpkgs/gst-plugins-bad1/template
@@ -1,7 +1,7 @@
 # Template file for 'gst-plugins-bad1'
 pkgname=gst-plugins-bad1
 version=1.16.2
-revision=9
+revision=10
 wrksrc="${pkgname/1/}-${version}"
 build_helper="gir"
 build_style=meson

From ef57b88385cc2b7f7490f1908fd56c11db64a408 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Sun, 12 Jul 2020 20:25:32 -0300
Subject: [PATCH 3/3] ffmpeg: enable aom build option.

Reorganize the lines to get closer to the 80 column limit. Put all
dependencies related to build options after the normal dependencies.
---
 srcpkgs/ffmpeg/template | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)

diff --git a/srcpkgs/ffmpeg/template b/srcpkgs/ffmpeg/template
index ad986a72790..ee7bd6ee48a 100644
--- a/srcpkgs/ffmpeg/template
+++ b/srcpkgs/ffmpeg/template
@@ -2,7 +2,7 @@
 # audacity also needs to be bumped when a new ffmpeg version bumps libavformat's soname!
 pkgname=ffmpeg
 version=4.2.3
-revision=5
+revision=6
 short_desc="Decoding, encoding and streaming software"
 maintainer="Johannes <johannes.brechtmann@gmail.com>"
 license="GPL-3.0-or-later"
@@ -16,16 +16,17 @@ makedepends="zlib-devel bzip2-devel freetype-devel alsa-lib-devel libXfixes-deve
  libXext-devel libXvMC-devel libxcb-devel faad2-devel lame-devel libtheora-devel
  gnutls-devel libvorbis-devel x264-devel xvidcore-devel jack-devel SDL2-devel
  libcdio-paranoia-devel librtmp-devel libmodplug-devel gnutls-devel
- speex-devel celt-devel harfbuzz-devel libass-devel opus-devel $(vopt_if pulseaudio pulseaudio-devel)
- ocl-icd-devel $(vopt_if x265 x265-devel) $(vopt_if vaapi libva-devel)
- $(vopt_if vdpau libvdpau-devel) $(vopt_if v4l2 v4l-utils-devel) libbs2b-devel
- libvidstab-devel $(vopt_if faac faac-devel) $(vopt_if fdk_aac fdk-aac-devel)
+ speex-devel celt-devel harfbuzz-devel libass-devel opus-devel ocl-icd-devel
+ libbs2b-devel libvidstab-devel $(vopt_if pulseaudio pulseaudio-devel)
+ $(vopt_if x265 x265-devel) $(vopt_if vaapi libva-devel) $(vopt_if vdpau libvdpau-devel)
+ $(vopt_if v4l2 v4l-utils-devel) $(vopt_if faac faac-devel) $(vopt_if fdk_aac fdk-aac-devel)
  $(vopt_if vpx libvpx-devel) $(vopt_if aom libaom-devel)
  $(vopt_if nvenc nv-codec-headers) $(vopt_if sndio sndio-devel)
  $(vopt_if dav1d libdav1d-devel) $(vopt_if zimg zimg-devel)"
 
-build_options="x265 v4l2 vaapi vdpau vpx faac fdk_aac aom nvenc sndio pulseaudio dav1d zimg"
-build_options_default="x265 v4l2 vpx sndio pulseaudio dav1d"
+build_options="x265 v4l2 vaapi vdpau vpx faac fdk_aac aom nvenc sndio pulseaudio
+ dav1d zimg"
+build_options_default="x265 v4l2 vpx aom sndio pulseaudio dav1d"
 
 case "$XBPS_TARGET_MACHINE" in
 	i686*|x86_64*) build_options_default+=" vaapi vdpau nvenc";;

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PR REVIEW] Update libaom and enable it for ffmpeg
  2020-07-13  2:17 [PR PATCH] [RFC][NOMERGE] Update libaom and enable it for ffmpeg ericonr
                   ` (15 preceding siblings ...)
  2020-07-22  0:58 ` [PR PATCH] [Updated] " ericonr
@ 2020-07-22  0:59 ` q66
  2020-07-22  1:06 ` ericonr
                   ` (5 subsequent siblings)
  22 siblings, 0 replies; 24+ messages in thread
From: q66 @ 2020-07-22  0:59 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 164 bytes --]

New review comment by q66 on void-packages repository

https://github.com/void-linux/void-packages/pull/23542#discussion_r458472720

Comment:
ok then, `arm*` it is

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PR REVIEW] Update libaom and enable it for ffmpeg
  2020-07-13  2:17 [PR PATCH] [RFC][NOMERGE] Update libaom and enable it for ffmpeg ericonr
                   ` (16 preceding siblings ...)
  2020-07-22  0:59 ` [PR REVIEW] " q66
@ 2020-07-22  1:06 ` ericonr
  2020-07-22  1:09 ` ericonr
                   ` (4 subsequent siblings)
  22 siblings, 0 replies; 24+ messages in thread
From: ericonr @ 2020-07-22  1:06 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 197 bytes --]

New review comment by ericonr on void-packages repository

https://github.com/void-linux/void-packages/pull/23542#discussion_r458474646

Comment:
Do I need anything for ppc? Or is it fine already?

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PR REVIEW] Update libaom and enable it for ffmpeg
  2020-07-13  2:17 [PR PATCH] [RFC][NOMERGE] Update libaom and enable it for ffmpeg ericonr
                   ` (17 preceding siblings ...)
  2020-07-22  1:06 ` ericonr
@ 2020-07-22  1:09 ` ericonr
  2020-07-22  1:59 ` q66
                   ` (3 subsequent siblings)
  22 siblings, 0 replies; 24+ messages in thread
From: ericonr @ 2020-07-22  1:09 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 289 bytes --]

New review comment by ericonr on void-packages repository

https://github.com/void-linux/void-packages/pull/23542#discussion_r458475436

Comment:
It adds the same thing for ppc:

```
set(CONFIG_RUNTIME_CPU_DETECT 0 CACHE STRING "")
```

So I guess we might need to disable simd (?).

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PR REVIEW] Update libaom and enable it for ffmpeg
  2020-07-13  2:17 [PR PATCH] [RFC][NOMERGE] Update libaom and enable it for ffmpeg ericonr
                   ` (18 preceding siblings ...)
  2020-07-22  1:09 ` ericonr
@ 2020-07-22  1:59 ` q66
  2020-07-22  2:07 ` [PR PATCH] [Updated] " ericonr
                   ` (2 subsequent siblings)
  22 siblings, 0 replies; 24+ messages in thread
From: q66 @ 2020-07-22  1:59 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 247 bytes --]

New review comment by q66 on void-packages repository

https://github.com/void-linux/void-packages/pull/23542#discussion_r458488906

Comment:
you can add `-DENABLE_VSX=0` for all `ppc*` except for `ppc64le*`, though chances are it's not necessary

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PR PATCH] [Updated] Update libaom and enable it for ffmpeg
  2020-07-13  2:17 [PR PATCH] [RFC][NOMERGE] Update libaom and enable it for ffmpeg ericonr
                   ` (19 preceding siblings ...)
  2020-07-22  1:59 ` q66
@ 2020-07-22  2:07 ` ericonr
  2020-07-24 19:04 ` [PR PATCH] [Closed]: " jnbr
  2020-07-24 19:04 ` jnbr
  22 siblings, 0 replies; 24+ messages in thread
From: ericonr @ 2020-07-22  2:07 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 2391 bytes --]

There is an updated pull request by ericonr against master on the void-packages repository

https://github.com/ericonr/void-packages ffmpeg
https://github.com/void-linux/void-packages/pull/23542

Update libaom and enable it for ffmpeg
Fixes #23538 

I currently get segfaults when trying to use this with ffmpeg.

```
$ ffmpeg -i example.mp4 -c:v libaom-av1 -crf 30 -b:v 0 -strict experimental av1_test.mkv
```

gets me this backtrace:

```
#0  0x00007f98d9dde6c0 in lowbd_inv_txfm2d_add_no_identity_avx2 () from /lib/libaom.so.2
#1  0x00007f98d9b6b449 in av1_inverse_transform_block () from /lib/libaom.so.2
#2  0x00007f98d9d04eb1 in search_tx_type.constprop () from /lib/libaom.so.2
#3  0x00007f98d9d08cf6 in block_rd_txfm () from /lib/libaom.so.2
#4  0x00007f98d9c53f1f in av1_foreach_transformed_block_in_plane () from /lib/libaom.so.2
#5  0x00007f98d9d0de79 in av1_txfm_rd_in_plane () from /lib/libaom.so.2
#6  0x00007f98d9d0e006 in av1_uniform_txfm_yrd () from /lib/libaom.so.2
#7  0x00007f98d9d0e5ee in choose_tx_size_type_from_rd () from /lib/libaom.so.2
#8  0x00007f98d9d0e996 in av1_pick_uniform_tx_size_type_yrd () from /lib/libaom.so.2
#9  0x00007f98d9d1aaaa in av1_rd_pick_intra_sby_mode () from /lib/libaom.so.2
#10 0x00007f98d9ce402a in av1_rd_pick_intra_mode_sb () from /lib/libaom.so.2
#11 0x00007f98d9c361f1 in pick_sb_modes () from /lib/libaom.so.2
#12 0x00007f98d9c3b64e in rd_use_partition () from /lib/libaom.so.2
#13 0x00007f98d9c3af86 in rd_use_partition () from /lib/libaom.so.2
#14 0x00007f98d9c3b174 in rd_use_partition () from /lib/libaom.so.2
#15 0x00007f98d9c49eba in encode_rd_sb () from /lib/libaom.so.2
#16 0x00007f98d9c4e4a9 in av1_encode_sb_row () from /lib/libaom.so.2
#17 0x00007f98d9c7e002 in enc_row_mt_worker_hook () from /lib/libaom.so.2
#18 0x00007f98d9b2986b in thread_loop () from /lib/libaom.so.2
#19 0x00007f98dd1fa305 in start (p=0x7f98aec3a7a8) at src/thread/pthread_create.c:192
#20 0x00007f98dd207a6b in __clone () at src/thread/x86_64/clone.s:22
Backtrace stopped: frame did not save the PC
quit
```

I'm not sure we can enable it when it's like this. I can try using FFMPEG 4.3 to see if it works better then. I am on musl, so that might be an issue.

I also don't know how to test for gstreamer AV1 support. 

A patch file from https://github.com/void-linux/void-packages/pull/23542.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-ffmpeg-23542.patch --]
[-- Type: text/x-diff, Size: 6875 bytes --]

From 49b3f5b55c86c8d42c4bb0b0be890e903d692fb9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Sun, 12 Jul 2020 22:36:53 -0300
Subject: [PATCH 1/3] libaom: update to 2.0.0.

---
 common/shlibs                        |  2 +-
 srcpkgs/libaom/patches/version.patch | 14 ------------
 srcpkgs/libaom/template              | 34 ++++++++++++++++++++++++----
 srcpkgs/libaom/update                |  2 +-
 4 files changed, 31 insertions(+), 21 deletions(-)
 delete mode 100644 srcpkgs/libaom/patches/version.patch

diff --git a/common/shlibs b/common/shlibs
index e0994cf183d..57c78c6078b 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -3501,7 +3501,7 @@ libticalcs2.so.12 libticalcs2-1.1.9_1
 libhtmlcxx.so.3 htmlcxx-0.86_1
 libcss_parser_pp.so.0 htmlcxx-0.86_1
 libcss_parser.so.0 htmlcxx-0.86_1
-libaom.so.0 libaom-1.0.0_1
+libaom.so.2 libaom-2.0.0_1
 libre.so re-0.5.8_1
 libspandsp.so.2 spandsp-0.0.6_1
 libspa-alsa.so libspa-alsa-0.3.6_1
diff --git a/srcpkgs/libaom/patches/version.patch b/srcpkgs/libaom/patches/version.patch
deleted file mode 100644
index 97372192897..00000000000
--- a/srcpkgs/libaom/patches/version.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-add entry for 1.0.0 release to fix version in pkg-config file
-
---- CHANGELOG
-+++ CHANGELOG
-@@ -3,6 +3,9 @@
-     The AV1 encoder's default keyframe interval changed to 128 from 9999.
-     Support for armv6 was removed.
-
-+2019-03-16 v1.0.0 "AOMedia Codec 1"
-+  Current release
-+
- 2016-04-07 v0.1.0 "AOMedia Codec 1"
-   This release is the first Alliance for Open Media codec.
- 2015-11-09 v1.5.0 "Javan Whistling Duck"
diff --git a/srcpkgs/libaom/template b/srcpkgs/libaom/template
index 7cb2fcf07db..c02832e30ec 100644
--- a/srcpkgs/libaom/template
+++ b/srcpkgs/libaom/template
@@ -1,18 +1,41 @@
 # Template file for 'libaom'
 pkgname=libaom
-version=1.0.0.1
-revision=2
+version=2.0.0
+revision=1
 create_wrksrc=yes
 build_style=cmake
-configure_args="-DENABLE_DOCS=OFF -DBUILD_SHARED_LIBS=ON -DENABLE_TESTS=OFF"
+configure_args="-DENABLE_DOCS=OFF -DBUILD_SHARED_LIBS=ON"
 hostmakedepends="yasm doxygen perl python"
 short_desc="AV1 Codec library implementation"
 maintainer="Orphaned <orphan@voidlinux.org>"
 license="BSD-2-Clause"
 homepage="https://aomedia.org/"
 changelog="https://aomedia.googlesource.com/aom/+/master/CHANGELOG"
-distfiles="https://aomedia.googlesource.com/aom/+archive/v${version%.*}-errata${version##*.}.tar.gz"
-checksum=@0f1e812ca6d3b3809bf3f7a12a85b549c96d20bfa72fa606a682541bbc3eaeab
+distfiles="https://aomedia.googlesource.com/aom/+archive/v${version}.tar.gz"
+checksum=@4e8a74ed7e05d5534ab0b72735fa670ce1a1e757bc4a777f07fdabf8629fced1
+
+# aom segfaults with default musl stack size
+LDFLAGS="-Wl,-z,stack-size=2097152"
+
+case "$XBPS_TARGET_MACHINE" in
+	# no runtime detection
+	arm*) configure_args+=" -DENABLE_NEON=0" ;;
+esac
+
+if [ -z "$XBPS_CHECK_PKGS" ]; then
+	configure_args+=" -DENABLE_TESTS=OFF"
+fi
+
+pre_check() {
+	mkdir -p /host/libaom-test-data
+	export LIBAOM_TEST_DATA_PATH=/host/libaom-test-data
+}
+
+do_check() {
+	cd build
+	make runtests ${makejobs}
+	../test/examples.sh --bin-path examples
+}
 
 post_install() {
 	vlicense LICENSE
@@ -25,6 +48,7 @@ libaom-devel_package() {
 		vmove usr/include
 		vmove usr/lib/pkgconfig
 		vmove "usr/lib/*.so"
+		vmove "usr/lib/*.a"
 	}
 }
 
diff --git a/srcpkgs/libaom/update b/srcpkgs/libaom/update
index fd5a23fd8eb..866cfaf6c8c 100644
--- a/srcpkgs/libaom/update
+++ b/srcpkgs/libaom/update
@@ -1,3 +1,3 @@
 site=https://aomedia.googlesource.com/aom/
 pkgname=
-pattern="aom/\+/v\K[\d\.]+"
+pattern="v\K[\d\.][\d.]+"

From 76673fad94cc27121b95ff1f93df537f55fdb7d9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Sun, 12 Jul 2020 22:38:21 -0300
Subject: [PATCH 2/3] gst-plugins-bad1: revbump for libaom.

---
 srcpkgs/gst-plugins-bad1/template | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/srcpkgs/gst-plugins-bad1/template b/srcpkgs/gst-plugins-bad1/template
index df1d5053c5f..a1012b0a492 100644
--- a/srcpkgs/gst-plugins-bad1/template
+++ b/srcpkgs/gst-plugins-bad1/template
@@ -1,7 +1,7 @@
 # Template file for 'gst-plugins-bad1'
 pkgname=gst-plugins-bad1
 version=1.16.2
-revision=9
+revision=10
 wrksrc="${pkgname/1/}-${version}"
 build_helper="gir"
 build_style=meson

From ef57b88385cc2b7f7490f1908fd56c11db64a408 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Sun, 12 Jul 2020 20:25:32 -0300
Subject: [PATCH 3/3] ffmpeg: enable aom build option.

Reorganize the lines to get closer to the 80 column limit. Put all
dependencies related to build options after the normal dependencies.
---
 srcpkgs/ffmpeg/template | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)

diff --git a/srcpkgs/ffmpeg/template b/srcpkgs/ffmpeg/template
index ad986a72790..ee7bd6ee48a 100644
--- a/srcpkgs/ffmpeg/template
+++ b/srcpkgs/ffmpeg/template
@@ -2,7 +2,7 @@
 # audacity also needs to be bumped when a new ffmpeg version bumps libavformat's soname!
 pkgname=ffmpeg
 version=4.2.3
-revision=5
+revision=6
 short_desc="Decoding, encoding and streaming software"
 maintainer="Johannes <johannes.brechtmann@gmail.com>"
 license="GPL-3.0-or-later"
@@ -16,16 +16,17 @@ makedepends="zlib-devel bzip2-devel freetype-devel alsa-lib-devel libXfixes-deve
  libXext-devel libXvMC-devel libxcb-devel faad2-devel lame-devel libtheora-devel
  gnutls-devel libvorbis-devel x264-devel xvidcore-devel jack-devel SDL2-devel
  libcdio-paranoia-devel librtmp-devel libmodplug-devel gnutls-devel
- speex-devel celt-devel harfbuzz-devel libass-devel opus-devel $(vopt_if pulseaudio pulseaudio-devel)
- ocl-icd-devel $(vopt_if x265 x265-devel) $(vopt_if vaapi libva-devel)
- $(vopt_if vdpau libvdpau-devel) $(vopt_if v4l2 v4l-utils-devel) libbs2b-devel
- libvidstab-devel $(vopt_if faac faac-devel) $(vopt_if fdk_aac fdk-aac-devel)
+ speex-devel celt-devel harfbuzz-devel libass-devel opus-devel ocl-icd-devel
+ libbs2b-devel libvidstab-devel $(vopt_if pulseaudio pulseaudio-devel)
+ $(vopt_if x265 x265-devel) $(vopt_if vaapi libva-devel) $(vopt_if vdpau libvdpau-devel)
+ $(vopt_if v4l2 v4l-utils-devel) $(vopt_if faac faac-devel) $(vopt_if fdk_aac fdk-aac-devel)
  $(vopt_if vpx libvpx-devel) $(vopt_if aom libaom-devel)
  $(vopt_if nvenc nv-codec-headers) $(vopt_if sndio sndio-devel)
  $(vopt_if dav1d libdav1d-devel) $(vopt_if zimg zimg-devel)"
 
-build_options="x265 v4l2 vaapi vdpau vpx faac fdk_aac aom nvenc sndio pulseaudio dav1d zimg"
-build_options_default="x265 v4l2 vpx sndio pulseaudio dav1d"
+build_options="x265 v4l2 vaapi vdpau vpx faac fdk_aac aom nvenc sndio pulseaudio
+ dav1d zimg"
+build_options_default="x265 v4l2 vpx aom sndio pulseaudio dav1d"
 
 case "$XBPS_TARGET_MACHINE" in
 	i686*|x86_64*) build_options_default+=" vaapi vdpau nvenc";;

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: Update libaom and enable it for ffmpeg
  2020-07-13  2:17 [PR PATCH] [RFC][NOMERGE] Update libaom and enable it for ffmpeg ericonr
                   ` (21 preceding siblings ...)
  2020-07-24 19:04 ` [PR PATCH] [Closed]: " jnbr
@ 2020-07-24 19:04 ` jnbr
  22 siblings, 0 replies; 24+ messages in thread
From: jnbr @ 2020-07-24 19:04 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 144 bytes --]

New comment by jnbr on void-packages repository

https://github.com/void-linux/void-packages/pull/23542#issuecomment-663687864

Comment:
merged

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PR PATCH] [Closed]: Update libaom and enable it for ffmpeg
  2020-07-13  2:17 [PR PATCH] [RFC][NOMERGE] Update libaom and enable it for ffmpeg ericonr
                   ` (20 preceding siblings ...)
  2020-07-22  2:07 ` [PR PATCH] [Updated] " ericonr
@ 2020-07-24 19:04 ` jnbr
  2020-07-24 19:04 ` jnbr
  22 siblings, 0 replies; 24+ messages in thread
From: jnbr @ 2020-07-24 19:04 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 2236 bytes --]

There's a closed pull request on the void-packages repository

Update libaom and enable it for ffmpeg
https://github.com/void-linux/void-packages/pull/23542

Description:
Fixes #23538 

I currently get segfaults when trying to use this with ffmpeg.

```
$ ffmpeg -i example.mp4 -c:v libaom-av1 -crf 30 -b:v 0 -strict experimental av1_test.mkv
```

gets me this backtrace:

```
#0  0x00007f98d9dde6c0 in lowbd_inv_txfm2d_add_no_identity_avx2 () from /lib/libaom.so.2
#1  0x00007f98d9b6b449 in av1_inverse_transform_block () from /lib/libaom.so.2
#2  0x00007f98d9d04eb1 in search_tx_type.constprop () from /lib/libaom.so.2
#3  0x00007f98d9d08cf6 in block_rd_txfm () from /lib/libaom.so.2
#4  0x00007f98d9c53f1f in av1_foreach_transformed_block_in_plane () from /lib/libaom.so.2
#5  0x00007f98d9d0de79 in av1_txfm_rd_in_plane () from /lib/libaom.so.2
#6  0x00007f98d9d0e006 in av1_uniform_txfm_yrd () from /lib/libaom.so.2
#7  0x00007f98d9d0e5ee in choose_tx_size_type_from_rd () from /lib/libaom.so.2
#8  0x00007f98d9d0e996 in av1_pick_uniform_tx_size_type_yrd () from /lib/libaom.so.2
#9  0x00007f98d9d1aaaa in av1_rd_pick_intra_sby_mode () from /lib/libaom.so.2
#10 0x00007f98d9ce402a in av1_rd_pick_intra_mode_sb () from /lib/libaom.so.2
#11 0x00007f98d9c361f1 in pick_sb_modes () from /lib/libaom.so.2
#12 0x00007f98d9c3b64e in rd_use_partition () from /lib/libaom.so.2
#13 0x00007f98d9c3af86 in rd_use_partition () from /lib/libaom.so.2
#14 0x00007f98d9c3b174 in rd_use_partition () from /lib/libaom.so.2
#15 0x00007f98d9c49eba in encode_rd_sb () from /lib/libaom.so.2
#16 0x00007f98d9c4e4a9 in av1_encode_sb_row () from /lib/libaom.so.2
#17 0x00007f98d9c7e002 in enc_row_mt_worker_hook () from /lib/libaom.so.2
#18 0x00007f98d9b2986b in thread_loop () from /lib/libaom.so.2
#19 0x00007f98dd1fa305 in start (p=0x7f98aec3a7a8) at src/thread/pthread_create.c:192
#20 0x00007f98dd207a6b in __clone () at src/thread/x86_64/clone.s:22
Backtrace stopped: frame did not save the PC
quit
```

I'm not sure we can enable it when it's like this. I can try using FFMPEG 4.3 to see if it works better then. I am on musl, so that might be an issue.

I also don't know how to test for gstreamer AV1 support. 

^ permalink raw reply	[flat|nested] 24+ messages in thread

end of thread, other threads:[~2020-07-24 19:04 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-07-13  2:17 [PR PATCH] [RFC][NOMERGE] Update libaom and enable it for ffmpeg ericonr
2020-07-13  5:42 ` [PR PATCH] [Updated] " ahesford
2020-07-13  5:48 ` ericonr
2020-07-13 13:32 ` [PR PATCH] [Updated] " ericonr
2020-07-13 17:17 ` richfelker
2020-07-13 17:36 ` ericonr
2020-07-13 18:26 ` [PR PATCH] [Updated] " ericonr
2020-07-13 18:46 ` richfelker
2020-07-20 14:15 ` [PR PATCH] [Updated] " ericonr
2020-07-20 14:16 ` ericonr
2020-07-20 14:36 ` ericonr
2020-07-21 23:26 ` [PR REVIEW] " ericonr
2020-07-22  0:48 ` q66
2020-07-22  0:49 ` ericonr
2020-07-22  0:56 ` ericonr
2020-07-22  0:56 ` ericonr
2020-07-22  0:58 ` [PR PATCH] [Updated] " ericonr
2020-07-22  0:59 ` [PR REVIEW] " q66
2020-07-22  1:06 ` ericonr
2020-07-22  1:09 ` ericonr
2020-07-22  1:59 ` q66
2020-07-22  2:07 ` [PR PATCH] [Updated] " ericonr
2020-07-24 19:04 ` [PR PATCH] [Closed]: " jnbr
2020-07-24 19:04 ` jnbr

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).