Monday, September 23, 2024

Re: UPDATE: FFmpeg 6.1.1

That would probably be better done after release builds are running.

On 2024/09/22 07:55, Rafael Sadowski wrote:
> Could some throw this into a bulk build please?
>
> The entire Qt5/Qt6 ecosystem depends on FFmpeg API >= 5.
>
> Thanks!
>
> On Sat Aug 03, 2024 at 03:15:08PM GMT, Brad Smith wrote:
> > On Sat, Aug 03, 2024 at 01:23:44PM -0400, Brad Smith wrote:
> > > Here is an update to FFmpeg 6.1.1.
> > >
> > > Most of the tree is in good shape, but a few ports still need some
> > > work.
> > >
> > > Please test if you have I guess one of those Apple arm64 systems
> > > or modern Intel amd64.
> >
> > 6.1.2 has been released. Here is an updated diff.
> >
> >
> > Index: graphics/ffmpeg/Makefile
> > ===================================================================
> > RCS file: /cvs/ports/graphics/ffmpeg/Makefile,v
> > retrieving revision 1.241
> > diff -u -p -u -p -r1.241 Makefile
> > --- graphics/ffmpeg/Makefile 3 Aug 2024 05:41:40 -0000 1.241
> > +++ graphics/ffmpeg/Makefile 3 Aug 2024 19:12:07 -0000
> > @@ -1,6 +1,6 @@
> > COMMENT= audio/video converter and streamer
> >
> > -V= 4.4.5
> > +V= 6.1.2
> > DISTNAME= ffmpeg-${V}
> > EPOCH= 1
> > CATEGORIES= graphics multimedia
> > @@ -9,14 +9,14 @@ EXTRACT_SUFX= .tar.xz
> >
> > USE_NOBTCFI-amd64= Yes
> >
> > -SHARED_LIBS= avcodec 25.0 \
> > - avdevice 13.0 \
> > - avfilter 11.0 \
> > - avformat 22.0 \
> > - avutil 15.0 \
> > - postproc 19.0 \
> > - swresample 4.0 \
> > - swscale 7.0
> > +SHARED_LIBS= avcodec 26.0 \
> > + avdevice 14.0 \
> > + avfilter 12.0 \
> > + avformat 23.0 \
> > + avutil 16.0 \
> > + postproc 20.0 \
> > + swresample 5.0 \
> > + swscale 8.0
> >
> > HOMEPAGE= https://ffmpeg.org/
> >
> > @@ -32,7 +32,6 @@ WANTLIB += va-x11 vidstab vorbis vorbise
> > WANTLIB += xcb-shm xcb-xfixes xml2 xvidcore z zimg
> >
> > COMPILER= base-clang ports-gcc
> > -COMPILER_LANGS= c
> >
> > DEBUG_PACKAGES= ${BUILD_PACKAGES}
> >
> > @@ -100,10 +99,12 @@ CONFIGURE_STYLE= simple
> > CONFIGURE_ARGS+=--enable-shared \
> > --arch=${MACHINE_ARCH} \
> > --cc=${CC} \
> > + --cxx=${CXX} \
> > --enable-debug \
> > --disable-stripping \
> > --disable-indev=jack \
> > --disable-outdev=sdl2 \
> > + --disable-vulkan \
> > --enable-fontconfig \
> > --enable-frei0r \
> > --enable-gpl \
> > @@ -111,6 +112,7 @@ CONFIGURE_ARGS+=--enable-shared \
> > --enable-libaom \
> > --enable-libass \
> > --enable-libdav1d \
> > + --enable-libfontconfig \
> > --enable-libfreetype \
> > --enable-libfribidi \
> > --enable-libgsm \
> > Index: graphics/ffmpeg/distinfo
> > ===================================================================
> > RCS file: /cvs/ports/graphics/ffmpeg/distinfo,v
> > retrieving revision 1.67
> > diff -u -p -u -p -r1.67 distinfo
> > --- graphics/ffmpeg/distinfo 3 Aug 2024 05:41:40 -0000 1.67
> > +++ graphics/ffmpeg/distinfo 3 Aug 2024 19:12:07 -0000
> > @@ -1,2 +1,2 @@
> > -SHA256 (ffmpeg-4.4.5.tar.xz) = +VFODTUVruWicSg99xY24dH/cnSxWFO82E4US+QWqwc=
> > -SIZE (ffmpeg-4.4.5.tar.xz) = 9575596
> > +SHA256 (ffmpeg-6.1.2.tar.xz) = O2JGSXJezcVlyQPKZkPUHzO9SSOZIuRcmxRCxj3KTjg=
> > +SIZE (ffmpeg-6.1.2.tar.xz) = 10466152
> > Index: graphics/ffmpeg/patches/patch-configure
> > ===================================================================
> > RCS file: /cvs/ports/graphics/ffmpeg/patches/patch-configure,v
> > retrieving revision 1.73
> > diff -u -p -u -p -r1.73 patch-configure
> > --- graphics/ffmpeg/patches/patch-configure 3 Aug 2024 05:41:40 -0000 1.73
> > +++ graphics/ffmpeg/patches/patch-configure 3 Aug 2024 19:12:07 -0000
> > @@ -1,48 +1,9 @@
> > -- configure: add initial RISC-V support
> > - Fix broken libatomic test
> >
> > Index: configure
> > --- configure.orig
> > +++ configure
> > -@@ -1992,6 +1992,7 @@ ARCH_LIST="
> > - parisc
> > - ppc
> > - ppc64
> > -+ riscv
> > - s390
> > - sh4
> > - sparc
> > -@@ -2601,7 +2602,7 @@ for ext in $(filter_out mmx $ARCH_EXT_LIST_X86_SIMD);
> > - done
> > -
> > - aligned_stack_if_any="aarch64 ppc x86"
> > --fast_64bit_if_any="aarch64 alpha ia64 mips64 parisc64 ppc64 sparc64 x86_64"
> > -+fast_64bit_if_any="aarch64 alpha ia64 mips64 parisc64 ppc64 riscv64 sparc64 x86_64"
> > - fast_clz_if_any="aarch64 alpha avr32 mips ppc x86"
> > - fast_unaligned_if_any="aarch64 ppc x86"
> > - simd_align_16_if_any="altivec neon sse"
> > -@@ -4915,6 +4916,9 @@ case "$arch" in
> > - "Power Macintosh"|ppc*|powerpc*)
> > - arch="ppc"
> > - ;;
> > -+ riscv*)
> > -+ arch="riscv"
> > -+ ;;
> > - s390|s390x)
> > - arch="s390"
> > - ;;
> > -@@ -5306,6 +5310,10 @@ case "$arch" in
> > - check_64bit ppc ppc64
> > - enabled shared && enable_weak pic
> > - ;;
> > -+ riscv)
> > -+ check_64bit riscv32 riscv64
> > -+ enabled shared && enable_weak pic
> > -+ ;;
> > - s390)
> > - check_64bit s390 s390x
> > - enabled shared && enable_weak pic
> > -@@ -5379,7 +5387,6 @@ case $target_os in
> > +@@ -5598,7 +5598,6 @@ case $target_os in
> > enable section_data_rel_ro
> > striptype=""
> > SHFLAGS='-shared'
> > @@ -50,7 +11,7 @@ Index: configure
> > SLIB_INSTALL_LINKS=
> > oss_indev_extralibs="-lossaudio"
> > oss_outdev_extralibs="-lossaudio"
> > -@@ -5736,7 +5743,7 @@ set_default libdir
> > +@@ -5959,7 +5958,7 @@ set_default libdir
> > set_default $PATHS_LIST
> > set_default nm
> >
> > @@ -59,7 +20,7 @@ Index: configure
> >
> > enable_weak_pic() {
> > disabled pic && return
> > -@@ -6191,7 +6198,7 @@ check_headers asm/types.h
> > +@@ -6483,7 +6482,7 @@ check_headers asm/types.h
> > #
> > # some configurations also require linking to libatomic, so try
> > # both with -latomic and without
> > Index: graphics/ffmpeg/patches/patch-doc_encoders_texi
> > ===================================================================
> > RCS file: graphics/ffmpeg/patches/patch-doc_encoders_texi
> > diff -N graphics/ffmpeg/patches/patch-doc_encoders_texi
> > --- graphics/ffmpeg/patches/patch-doc_encoders_texi 13 May 2022 12:56:19 -0000 1.7
> > +++ /dev/null 1 Jan 1970 00:00:00 -0000
> > @@ -1,103 +0,0 @@
> > -- doc/encoders: update default coder for aac
> > -- doc/encoders: add available values for libsvtav1 options
> > -- avcodec/libsvtav1: add a svtav1-params option to pass a list of key=value
> > - parameters
> > -- avcodec/libsvtav1: update some options and defaults
> > -
> > -Index: doc/encoders.texi
> > ---- doc/encoders.texi.orig
> > -+++ doc/encoders.texi
> > -@@ -53,7 +53,7 @@ Set AAC encoder coding method. Possible values:
> > -
> > - @table @samp
> > - @item twoloop
> > --Two loop searching (TLS) method.
> > -+Two loop searching (TLS) method. This is the default method.
> > -
> > - This method first sets quantizers depending on band thresholds and then tries
> > - to find an optimal combination by adding or subtracting a specific value from
> > -@@ -75,7 +75,6 @@ Constant quantizer method.
> > - Uses a cheaper version of twoloop algorithm that doesn't try to do as many
> > - clever adjustments. Worse with low bitrates (less than 64kbps), but is better
> > - and much faster at higher bitrates.
> > --This is the default choice for a coder
> > -
> > - @end table
> > -
> > -@@ -1747,27 +1746,29 @@ You need to explicitly configure the build with @code{
> > - @table @option
> > - @item profile
> > - Set the encoding profile.
> > -+@table @samp
> > -+@item main
> > -+@item high
> > -+@item professional
> > -+@end table
> > -
> > - @item level
> > --Set the operating point level.
> > -+Set the operating point level. For example: '4.0'
> > -
> > -+@item hielevel
> > -+Set the Hierarchical prediction levels.
> > -+@table @samp
> > -+@item 3level
> > -+@item 4level
> > -+This is the default.
> > -+@end table
> > -+
> > - @item tier
> > - Set the operating point tier.
> > --
> > --@item rc
> > --Set the rate control mode to use.
> > --
> > --Possible modes:
> > --@table @option
> > --@item cqp
> > --Constant quantizer: use fixed values of qindex (dependent on the frame type)
> > --throughout the stream. This mode is the default.
> > --
> > --@item vbr
> > --Variable bitrate: use a target bitrate for the whole stream.
> > --
> > --@item cvbr
> > --Constrained variable bitrate: use a target bitrate for each GOP.
> > -+@table @samp
> > -+@item main
> > -+This is the default.
> > -+@item high
> > - @end table
> > -
> > - @item qmax
> > -@@ -1776,6 +1777,9 @@ Set the maximum quantizer to use when using a bitrate
> > - @item qmin
> > - Set the minimum quantizer to use when using a bitrate mode.
> > -
> > -+@item crf
> > -+Constant rate factor value used in crf rate control mode (0-63).
> > -+
> > - @item qp
> > - Set the quantizer used in cqp rate control mode (0-63).
> > -
> > -@@ -1786,14 +1790,18 @@ Enable scene change detection.
> > - Set number of frames to look ahead (0-120).
> > -
> > - @item preset
> > --Set the quality-speed tradeoff, in the range 0 to 8. Higher values are
> > --faster but lower quality. Defaults to 8 (highest speed).
> > -+Set the quality-speed tradeoff, in the range 0 to 13. Higher values are
> > -+faster but lower quality.
> > -
> > - @item tile_rows
> > - Set log2 of the number of rows of tiles to use (0-6).
> > -
> > - @item tile_columns
> > - Set log2 of the number of columns of tiles to use (0-4).
> > -+
> > -+@item svtav1-params
> > -+Set SVT-AV1 options using a list of @var{key}=@var{value} pairs separated
> > -+by ":". See the SVT-AV1 encoder user guide for a list of accepted parameters.
> > -
> > - @end table
> > -
> > Index: graphics/ffmpeg/patches/patch-ffbuild_library_mak
> > ===================================================================
> > RCS file: /cvs/ports/graphics/ffmpeg/patches/patch-ffbuild_library_mak,v
> > retrieving revision 1.2
> > diff -u -p -u -p -r1.2 patch-ffbuild_library_mak
> > --- graphics/ffmpeg/patches/patch-ffbuild_library_mak 11 Mar 2022 19:22:17 -0000 1.2
> > +++ graphics/ffmpeg/patches/patch-ffbuild_library_mak 3 Aug 2024 19:12:07 -0000
> > @@ -1,16 +1,16 @@
> > Index: ffbuild/library.mak
> > --- ffbuild/library.mak.orig
> > +++ ffbuild/library.mak
> > -@@ -50,7 +50,7 @@ $(SUBDIR)$(SLIBNAME): $(SUBDIR)$(SLIBNAME_WITH_MAJOR)
> > +@@ -66,7 +66,7 @@ $(SUBDIR)$(SLIBNAME): $(SUBDIR)$(SLIBNAME_WITH_MAJOR)
> >
> > - $(SUBDIR)$(SLIBNAME_WITH_MAJOR): $(OBJS) $(SLIBOBJS) $(SUBDIR)lib$(NAME).ver
> > + $(SUBDIR)$(SLIBNAME_WITH_MAJOR): $(OBJS) $(SHLIBOBJS) $(SLIBOBJS) $(SUBDIR)lib$(NAME).ver
> > $(SLIB_CREATE_DEF_CMD)
> > - $$(LD) $(SHFLAGS) $(LDFLAGS) $(LDSOFLAGS) $$(LD_O) $$(filter %.o,$$^) $(FFEXTRALIBS)
> > + $$(LD) $(SHFLAGS) $(LDFLAGS) $(LDSOFLAGS) $$(LD_O) $$(filter %.o,$$^) $(LIB$(NAME)_EXTRALIBS)
> > $(SLIB_EXTRA_CMD)
> >
> > ifdef SUBDIR
> > -@@ -64,8 +64,6 @@ clean::
> > +@@ -80,8 +80,6 @@ clean::
> > install-lib$(NAME)-shared: $(SUBDIR)$(SLIBNAME)
> > $(Q)mkdir -p "$(SHLIBDIR)"
> > $$(INSTALL) -m 755 $$< "$(SHLIBDIR)/$(SLIB_INSTALL_NAME)"
> > Index: graphics/ffmpeg/patches/patch-libavcodec_aacenc_c
> > ===================================================================
> > RCS file: graphics/ffmpeg/patches/patch-libavcodec_aacenc_c
> > diff -N graphics/ffmpeg/patches/patch-libavcodec_aacenc_c
> > --- graphics/ffmpeg/patches/patch-libavcodec_aacenc_c 11 Mar 2022 19:22:17 -0000 1.25
> > +++ /dev/null 1 Jan 1970 00:00:00 -0000
> > @@ -1,14 +0,0 @@
> > -aacenc: make the twoloop coder the default
> > -
> > -Index: libavcodec/aacenc.c
> > ---- libavcodec/aacenc.c.orig
> > -+++ libavcodec/aacenc.c
> > -@@ -1104,7 +1104,7 @@ static av_cold int aac_encode_init(AVCodecContext *avc
> > -
> > - #define AACENC_FLAGS AV_OPT_FLAG_ENCODING_PARAM | AV_OPT_FLAG_AUDIO_PARAM
> > - static const AVOption aacenc_options[] = {
> > -- {"aac_coder", "Coding algorithm", offsetof(AACEncContext, options.coder), AV_OPT_TYPE_INT, {.i64 = AAC_CODER_FAST}, 0, AAC_CODER_NB-1, AACENC_FLAGS, "coder"},
> > -+ {"aac_coder", "Coding algorithm", offsetof(AACEncContext, options.coder), AV_OPT_TYPE_INT, {.i64 = AAC_CODER_TWOLOOP}, 0, AAC_CODER_NB-1, AACENC_FLAGS, "coder"},
> > - {"anmr", "ANMR method", 0, AV_OPT_TYPE_CONST, {.i64 = AAC_CODER_ANMR}, INT_MIN, INT_MAX, AACENC_FLAGS, "coder"},
> > - {"twoloop", "Two loop searching method", 0, AV_OPT_TYPE_CONST, {.i64 = AAC_CODER_TWOLOOP}, INT_MIN, INT_MAX, AACENC_FLAGS, "coder"},
> > - {"fast", "Default fast search", 0, AV_OPT_TYPE_CONST, {.i64 = AAC_CODER_FAST}, INT_MIN, INT_MAX, AACENC_FLAGS, "coder"},
> > Index: graphics/ffmpeg/patches/patch-libavcodec_aarch64_fft_neon_S
> > ===================================================================
> > RCS file: graphics/ffmpeg/patches/patch-libavcodec_aarch64_fft_neon_S
> > diff -N graphics/ffmpeg/patches/patch-libavcodec_aarch64_fft_neon_S
> > --- graphics/ffmpeg/patches/patch-libavcodec_aarch64_fft_neon_S 17 Jun 2023 22:19:43 -0000 1.1
> > +++ /dev/null 1 Jan 1970 00:00:00 -0000
> > @@ -1,44 +0,0 @@
> > -Index: libavcodec/aarch64/fft_neon.S
> > ---- libavcodec/aarch64/fft_neon.S.orig
> > -+++ libavcodec/aarch64/fft_neon.S
> > -@@ -36,6 +36,7 @@
> > -
> > -
> > - function fft4_neon
> > -+ AARCH64_VALID_JUMP_TARGET
> > - ld1 {v0.2s,v1.2s,v2.2s,v3.2s}, [x0]
> > -
> > - fadd v4.2s, v0.2s, v1.2s // r0+r1,i0+i1
> > -@@ -58,6 +59,7 @@ function fft4_neon
> > - endfunc
> > -
> > - function fft8_neon
> > -+ AARCH64_VALID_JUMP_TARGET
> > - mov x1, x0
> > - ld1 {v0.2s, v1.2s, v2.2s, v3.2s}, [x0], #32
> > - ld1 {v16.2s,v17.2s,v18.2s,v19.2s}, [x0]
> > -@@ -108,6 +110,7 @@ function fft8_neon
> > - endfunc
> > -
> > - function fft16_neon
> > -+ AARCH64_VALID_JUMP_TARGET
> > - mov x1, x0
> > - ld1 {v0.2s, v1.2s, v2.2s, v3.2s}, [x0], #32
> > - ld1 {v16.2s,v17.2s,v18.2s,v19.2s}, [x0], #32
> > -@@ -337,6 +340,8 @@ endfunc
> > -
> > - .macro def_fft n, n2, n4
> > - function fft\n\()_neon, align=6
> > -+ AARCH64_VALID_JUMP_TARGET
> > -+ AARCH64_SIGN_LINK_REGISTER
> > - sub sp, sp, #16
> > - stp x28, x30, [sp]
> > - add x28, x0, #\n4*2*8
> > -@@ -347,6 +352,7 @@ function fft\n\()_neon, align=6
> > - bl fft\n4\()_neon
> > - sub x0, x28, #\n4*2*8
> > - ldp x28, x30, [sp], #16
> > -+ AARCH64_VALIDATE_LINK_REGISTER
> > - movrel x4, X(ff_cos_\n)
> > - mov x2, #\n4>>1
> > - b fft_pass_neon
> > Index: graphics/ffmpeg/patches/patch-libavcodec_aarch64_h264idct_neon_S
> > ===================================================================
> > RCS file: graphics/ffmpeg/patches/patch-libavcodec_aarch64_h264idct_neon_S
> > diff -N graphics/ffmpeg/patches/patch-libavcodec_aarch64_h264idct_neon_S
> > --- graphics/ffmpeg/patches/patch-libavcodec_aarch64_h264idct_neon_S 17 Jun 2023 22:19:43 -0000 1.1
> > +++ /dev/null 1 Jan 1970 00:00:00 -0000
> > @@ -1,35 +0,0 @@
> > -Index: libavcodec/aarch64/h264idct_neon.S
> > ---- libavcodec/aarch64/h264idct_neon.S.orig
> > -+++ libavcodec/aarch64/h264idct_neon.S
> > -@@ -24,6 +24,7 @@
> > -
> > - function ff_h264_idct_add_neon, export=1
> > - .L_ff_h264_idct_add_neon:
> > -+ AARCH64_VALID_CALL_TARGET
> > - ld1 {v0.4H, v1.4H, v2.4H, v3.4H}, [x1]
> > - sxtw x2, w2
> > - movi v30.8H, #0
> > -@@ -79,6 +80,7 @@ endfunc
> > -
> > - function ff_h264_idct_dc_add_neon, export=1
> > - .L_ff_h264_idct_dc_add_neon:
> > -+ AARCH64_VALID_CALL_TARGET
> > - sxtw x2, w2
> > - mov w3, #0
> > - ld1r {v2.8H}, [x1]
> > -@@ -266,6 +268,7 @@ endfunc
> > -
> > - function ff_h264_idct8_add_neon, export=1
> > - .L_ff_h264_idct8_add_neon:
> > -+ AARCH64_VALID_CALL_TARGET
> > - movi v19.8H, #0
> > - sxtw x2, w2
> > - ld1 {v24.8H, v25.8H}, [x1]
> > -@@ -330,6 +333,7 @@ endfunc
> > -
> > - function ff_h264_idct8_dc_add_neon, export=1
> > - .L_ff_h264_idct8_dc_add_neon:
> > -+ AARCH64_VALID_CALL_TARGET
> > - mov w3, #0
> > - sxtw x2, w2
> > - ld1r {v31.8H}, [x1]
> > Index: graphics/ffmpeg/patches/patch-libavcodec_aarch64_mdct_neon_S
> > ===================================================================
> > RCS file: graphics/ffmpeg/patches/patch-libavcodec_aarch64_mdct_neon_S
> > diff -N graphics/ffmpeg/patches/patch-libavcodec_aarch64_mdct_neon_S
> > --- graphics/ffmpeg/patches/patch-libavcodec_aarch64_mdct_neon_S 17 Jun 2023 22:19:43 -0000 1.1
> > +++ /dev/null 1 Jan 1970 00:00:00 -0000
> > @@ -1,61 +0,0 @@
> > -Index: libavcodec/aarch64/mdct_neon.S
> > ---- libavcodec/aarch64/mdct_neon.S.orig
> > -+++ libavcodec/aarch64/mdct_neon.S
> > -@@ -25,6 +25,7 @@
> > - function ff_imdct_half_neon, export=1
> > - sub sp, sp, #32
> > - stp x19, x20, [sp]
> > -+ AARCH64_SIGN_LINK_REGISTER
> > - str x30, [sp, #16]
> > - mov x12, #1
> > - ldr w14, [x0, #28] // mdct_bits
> > -@@ -121,6 +122,7 @@ function ff_imdct_half_neon, export=1
> > -
> > - ldp x19, x20, [sp]
> > - ldr x30, [sp, #16]
> > -+ AARCH64_VALIDATE_LINK_REGISTER
> > - add sp, sp, #32
> > -
> > - ret
> > -@@ -129,6 +131,7 @@ endfunc
> > - function ff_imdct_calc_neon, export=1
> > - sub sp, sp, #32
> > - stp x19, x20, [sp]
> > -+ AARCH64_SIGN_LINK_REGISTER
> > - str x30, [sp, #16]
> > - ldr w3, [x0, #28] // mdct_bits
> > - mov x19, #1
> > -@@ -160,8 +163,10 @@ function ff_imdct_calc_neon, export=1
> > - subs x19, x19, #16
> > - b.gt 1b
> > -
> > -- ldp x19, x20, [sp], #16
> > -- ldr x30, [sp], #16
> > -+ ldp x19, x20, [sp]
> > -+ ldr x30, [sp, #16]
> > -+ AARCH64_VALIDATE_LINK_REGISTER
> > -+ add sp, sp, #32
> > -
> > - ret
> > - endfunc
> > -@@ -170,6 +175,7 @@ endfunc
> > - function ff_mdct_calc_neon, export=1
> > - sub sp, sp, #32
> > - stp x19, x20, [sp]
> > -+ AARCH64_SIGN_LINK_REGISTER
> > - str x30, [sp, #16]
> > -
> > - mov x12, #1
> > -@@ -317,7 +323,10 @@ function ff_mdct_calc_neon, export=1
> > - st2 {v4.2s,v5.2s}, [x0]
> > - st2 {v6.2s,v7.2s}, [x8]
> > -
> > -- ldp x19, x20, [sp], #16
> > -- ldr x30, [sp], #16
> > -+ ldp x19, x20, [sp]
> > -+ ldr x30, [sp, #16]
> > -+ AARCH64_VALIDATE_LINK_REGISTER
> > -+ add sp, sp, #32
> > -+
> > - ret
> > - endfunc
> > Index: graphics/ffmpeg/patches/patch-libavcodec_aarch64_simple_idct_neon_S
> > ===================================================================
> > RCS file: graphics/ffmpeg/patches/patch-libavcodec_aarch64_simple_idct_neon_S
> > diff -N graphics/ffmpeg/patches/patch-libavcodec_aarch64_simple_idct_neon_S
> > --- graphics/ffmpeg/patches/patch-libavcodec_aarch64_simple_idct_neon_S 17 Jun 2023 22:19:43 -0000 1.1
> > +++ /dev/null 1 Jan 1970 00:00:00 -0000
> > @@ -1,12 +0,0 @@
> > -Index: libavcodec/aarch64/simple_idct_neon.S
> > ---- libavcodec/aarch64/simple_idct_neon.S.orig
> > -+++ libavcodec/aarch64/simple_idct_neon.S
> > -@@ -58,7 +58,7 @@ endconst
> > - .endm
> > -
> > - .macro idct_end
> > -- br x10
> > -+ ret x10
> > - .endm
> > -
> > - .macro smull1 a, b, c
> > Index: graphics/ffmpeg/patches/patch-libavcodec_aarch64_synth_filter_neon_S
> > ===================================================================
> > RCS file: graphics/ffmpeg/patches/patch-libavcodec_aarch64_synth_filter_neon_S
> > diff -N graphics/ffmpeg/patches/patch-libavcodec_aarch64_synth_filter_neon_S
> > --- graphics/ffmpeg/patches/patch-libavcodec_aarch64_synth_filter_neon_S 17 Jun 2023 22:19:43 -0000 1.1
> > +++ /dev/null 1 Jan 1970 00:00:00 -0000
> > @@ -1,19 +0,0 @@
> > -Index: libavcodec/aarch64/synth_filter_neon.S
> > ---- libavcodec/aarch64/synth_filter_neon.S.orig
> > -+++ libavcodec/aarch64/synth_filter_neon.S
> > -@@ -52,6 +52,7 @@ function ff_synth_filter_float_neon, export=1
> > - stp x5, x1, [sp, #16]
> > - and x7, x7, #~63
> > - and w8, w8, #511
> > -+ AARCH64_SIGN_LINK_REGISTER
> > - stp x7, x30, [sp, #32]
> > - str w8, [x2]
> > - str s0, [sp, #48]
> > -@@ -63,6 +64,7 @@ function ff_synth_filter_float_neon, export=1
> > - ldp x2, x4, [sp] // synct_buf_2, window
> > - ldp x13, x9, [sp, #16] // out, synth_buf
> > - ldp x0, x30, [sp, #32] // *synth_buf_offset
> > -+ AARCH64_VALIDATE_LINK_REGISTER
> > - ldr s0, [sp, #48]
> > -
> > - add x3, x2, #16*4 // synct_buf_2 + 16
> > Index: graphics/ffmpeg/patches/patch-libavcodec_aarch64_vp9itxfm_16bpp_neon_S
> > ===================================================================
> > RCS file: graphics/ffmpeg/patches/patch-libavcodec_aarch64_vp9itxfm_16bpp_neon_S
> > diff -N graphics/ffmpeg/patches/patch-libavcodec_aarch64_vp9itxfm_16bpp_neon_S
> > --- graphics/ffmpeg/patches/patch-libavcodec_aarch64_vp9itxfm_16bpp_neon_S 17 Jun 2023 22:19:43 -0000 1.1
> > +++ /dev/null 1 Jan 1970 00:00:00 -0000
> > @@ -1,129 +0,0 @@
> > -Index: libavcodec/aarch64/vp9itxfm_16bpp_neon.S
> > ---- libavcodec/aarch64/vp9itxfm_16bpp_neon.S.orig
> > -+++ libavcodec/aarch64/vp9itxfm_16bpp_neon.S
> > -@@ -1040,7 +1040,7 @@ function \txfm\()16_1d_4x16_pass1_neon
> > - .irp i, 16, 20, 24, 28, 17, 21, 25, 29, 18, 22, 26, 30, 19, 23, 27, 31
> > - store \i, x0, #16
> > - .endr
> > -- br x14
> > -+ ret x14
> > - 1:
> > - // Special case: For the last input column (x1 == 12),
> > - // which would be stored as the last row in the temp buffer,
> > -@@ -1068,7 +1068,7 @@ function \txfm\()16_1d_4x16_pass1_neon
> > - mov v29.16b, v17.16b
> > - mov v30.16b, v18.16b
> > - mov v31.16b, v19.16b
> > -- br x14
> > -+ ret x14
> > - endfunc
> > -
> > - // Read a vertical 4x16 slice out of a 16x16 matrix, do a transform on it,
> > -@@ -1098,7 +1098,7 @@ function \txfm\()16_1d_4x16_pass2_neon
> > - load_add_store v16.4s, v17.4s, v18.4s, v19.4s, v20.4s, v21.4s, v22.4s, v23.4s
> > - load_add_store v24.4s, v25.4s, v26.4s, v27.4s, v28.4s, v29.4s, v30.4s, v31.4s
> > -
> > -- br x14
> > -+ ret x14
> > - endfunc
> > - .endm
> > -
> > -@@ -1208,7 +1208,7 @@ function vp9_\txfm1\()_\txfm2\()_16x16_add_16_neon
> > - ldp d12, d13, [sp], 0x10
> > - ldp d14, d15, [sp], 0x10
> > - .endif
> > -- br x15
> > -+ ret x15
> > - endfunc
> > -
> > - function ff_vp9_\txfm1\()_\txfm2\()_16x16_add_10_neon, export=1
> > -@@ -1264,7 +1264,7 @@ function idct16_1d_4x16_pass1_quarter_neon
> > - st1 {v23.4s}, [x0], #16
> > - st1 {v27.4s}, [x0], #16
> > - st1 {v31.4s}, [x0], #16
> > -- br x14
> > -+ ret x14
> > - endfunc
> > -
> > - function idct16_1d_4x16_pass2_quarter_neon
> > -@@ -1286,7 +1286,7 @@ function idct16_1d_4x16_pass2_quarter_neon
> > - load_add_store v16.4s, v17.4s, v18.4s, v19.4s, v20.4s, v21.4s, v22.4s, v23.4s
> > - load_add_store v24.4s, v25.4s, v26.4s, v27.4s, v28.4s, v29.4s, v30.4s, v31.4s
> > -
> > -- br x14
> > -+ ret x14
> > - endfunc
> > -
> > - function idct16_1d_4x16_pass1_half_neon
> > -@@ -1313,7 +1313,7 @@ function idct16_1d_4x16_pass1_half_neon
> > - .irp i, 16, 20, 24, 28, 17, 21, 25, 29, 18, 22, 26, 30, 19, 23, 27, 31
> > - store \i, x0, #16
> > - .endr
> > -- br x14
> > -+ ret x14
> > - 1:
> > - // Special case: For the second input column (r1 == 4),
> > - // which would be stored as the second row in the temp buffer,
> > -@@ -1341,7 +1341,7 @@ function idct16_1d_4x16_pass1_half_neon
> > - mov v21.16b, v17.16b
> > - mov v22.16b, v18.16b
> > - mov v23.16b, v19.16b
> > -- br x14
> > -+ ret x14
> > - endfunc
> > -
> > - function idct16_1d_4x16_pass2_half_neon
> > -@@ -1364,7 +1364,7 @@ function idct16_1d_4x16_pass2_half_neon
> > - load_add_store v16.4s, v17.4s, v18.4s, v19.4s, v20.4s, v21.4s, v22.4s, v23.4s
> > - load_add_store v24.4s, v25.4s, v26.4s, v27.4s, v28.4s, v29.4s, v30.4s, v31.4s
> > -
> > -- br x14
> > -+ ret x14
> > - endfunc
> > -
> > - .macro idct16_partial size
> > -@@ -1390,7 +1390,7 @@ function idct16x16_\size\()_add_16_neon
> > -
> > - add sp, sp, #1024
> > - ldp d8, d9, [sp], 0x10
> > -- br x15
> > -+ ret x15
> > - endfunc
> > - .endm
> > -
> > -@@ -1729,7 +1729,7 @@ function idct32_1d_4x32_pass1\suffix\()_neon
> > - store_rev v29.4s, v25.4s, v21.4s, v17.4s, v29.16b, v25.16b
> > - store_rev v28.4s, v24.4s, v20.4s, v16.4s, v28.16b, v24.16b
> > - .purgem store_rev
> > -- br x14
> > -+ ret x14
> > - endfunc
> > -
> > - // This is mostly the same as 4x32_pass1, but without the transpose,
> > -@@ -1849,7 +1849,7 @@ function idct32_1d_4x32_pass2\suffix\()_neon
> > - load_acc_store v24.4s, v25.4s, v26.4s, v27.4s, 1
> > - load_acc_store v28.4s, v29.4s, v30.4s, v31.4s, 1
> > - .purgem load_acc_store
> > -- br x14
> > -+ ret x14
> > - endfunc
> > - .endm
> > -
> > -@@ -1943,7 +1943,7 @@ function vp9_idct_idct_32x32_add_16_neon
> > - ldp d10, d11, [sp], 0x10
> > - ldp d8, d9, [sp], 0x10
> > -
> > -- br x15
> > -+ ret x15
> > - endfunc
> > -
> > - function ff_vp9_idct_idct_32x32_add_10_neon, export=1
> > -@@ -2009,7 +2009,7 @@ function idct32x32_\size\()_add_16_neon
> > - ldp d10, d11, [sp], 0x10
> > - ldp d8, d9, [sp], 0x10
> > -
> > -- br x15
> > -+ ret x15
> > - endfunc
> > - .endm
> > -
> > Index: graphics/ffmpeg/patches/patch-libavcodec_aarch64_vp9itxfm_neon_S
> > ===================================================================
> > RCS file: graphics/ffmpeg/patches/patch-libavcodec_aarch64_vp9itxfm_neon_S
> > diff -N graphics/ffmpeg/patches/patch-libavcodec_aarch64_vp9itxfm_neon_S
> > --- graphics/ffmpeg/patches/patch-libavcodec_aarch64_vp9itxfm_neon_S 17 Jun 2023 22:19:43 -0000 1.1
> > +++ /dev/null 1 Jan 1970 00:00:00 -0000
> > @@ -1,120 +0,0 @@
> > -Index: libavcodec/aarch64/vp9itxfm_neon.S
> > ---- libavcodec/aarch64/vp9itxfm_neon.S.orig
> > -+++ libavcodec/aarch64/vp9itxfm_neon.S
> > -@@ -787,7 +787,7 @@ function \txfm\()16_1d_8x16_pass1_neon
> > - .irp i, 16, 24, 17, 25, 18, 26, 19, 27, 20, 28, 21, 29, 22, 30, 23, 31
> > - store \i, x0, #16
> > - .endr
> > -- br x14
> > -+ ret x14
> > - 1:
> > - // Special case: For the last input column (x1 == 8),
> > - // which would be stored as the last row in the temp buffer,
> > -@@ -806,7 +806,7 @@ function \txfm\()16_1d_8x16_pass1_neon
> > - mov v29.16b, v21.16b
> > - mov v30.16b, v22.16b
> > - mov v31.16b, v23.16b
> > -- br x14
> > -+ ret x14
> > - endfunc
> > -
> > - // Read a vertical 8x16 slice out of a 16x16 matrix, do a transform on it,
> > -@@ -834,7 +834,7 @@ function \txfm\()16_1d_8x16_pass2_neon
> > - load_add_store v16.8h, v17.8h, v18.8h, v19.8h, v20.8h, v21.8h, v22.8h, v23.8h, v16.8b, v17.8b
> > - load_add_store v24.8h, v25.8h, v26.8h, v27.8h, v28.8h, v29.8h, v30.8h, v31.8h, v16.8b, v17.8b
> > -
> > -- br x14
> > -+ ret x14
> > - endfunc
> > - .endm
> > -
> > -@@ -925,7 +925,7 @@ function ff_vp9_\txfm1\()_\txfm2\()_16x16_add_neon, ex
> > - ldp d12, d13, [sp], 0x10
> > - ldp d14, d15, [sp], 0x10
> > - .endif
> > -- br x15
> > -+ ret x15
> > - endfunc
> > - .endm
> > -
> > -@@ -960,7 +960,7 @@ function idct16_1d_8x16_pass1_quarter_neon
> > - .irp i, 24, 25, 26, 27
> > - store \i, x0, x9
> > - .endr
> > -- br x14
> > -+ ret x14
> > - endfunc
> > -
> > - function idct16_1d_8x16_pass2_quarter_neon
> > -@@ -978,7 +978,7 @@ function idct16_1d_8x16_pass2_quarter_neon
> > - load_add_store v16.8h, v17.8h, v18.8h, v19.8h, v20.8h, v21.8h, v22.8h, v23.8h, v16.8b, v17.8b
> > - load_add_store v24.8h, v25.8h, v26.8h, v27.8h, v28.8h, v29.8h, v30.8h, v31.8h, v16.8b, v17.8b
> > -
> > -- br x14
> > -+ ret x14
> > - endfunc
> > -
> > - function idct16_1d_8x16_pass1_half_neon
> > -@@ -1003,7 +1003,7 @@ function idct16_1d_8x16_pass1_half_neon
> > - .irp i, 24, 25, 26, 27, 28, 29, 30, 31
> > - store \i, x0, x9
> > - .endr
> > -- br x14
> > -+ ret x14
> > - endfunc
> > -
> > - function idct16_1d_8x16_pass2_half_neon
> > -@@ -1021,7 +1021,7 @@ function idct16_1d_8x16_pass2_half_neon
> > - load_add_store v16.8h, v17.8h, v18.8h, v19.8h, v20.8h, v21.8h, v22.8h, v23.8h, v16.8b, v17.8b
> > - load_add_store v24.8h, v25.8h, v26.8h, v27.8h, v28.8h, v29.8h, v30.8h, v31.8h, v16.8b, v17.8b
> > -
> > -- br x14
> > -+ ret x14
> > - endfunc
> > -
> > - .macro idct16_partial size
> > -@@ -1038,7 +1038,7 @@ function idct16x16_\size\()_add_neon
> > - .endr
> > -
> > - add sp, sp, #512
> > -- br x15
> > -+ ret x15
> > - endfunc
> > - .endm
> > -
> > -@@ -1349,7 +1349,7 @@ function idct32_1d_8x32_pass1\suffix\()_neon
> > - store_rev v25.8h, v17.8h
> > - store_rev v24.8h, v16.8h
> > - .purgem store_rev
> > -- br x14
> > -+ ret x14
> > - endfunc
> > -
> > - // This is mostly the same as 8x32_pass1, but without the transpose,
> > -@@ -1466,7 +1466,7 @@ function idct32_1d_8x32_pass2\suffix\()_neon
> > - load_acc_store v24.8h, v25.8h, v26.8h, v27.8h, 1
> > - load_acc_store v28.8h, v29.8h, v30.8h, v31.8h, 1
> > - .purgem load_acc_store
> > -- br x14
> > -+ ret x14
> > - endfunc
> > - .endm
> > -
> > -@@ -1547,7 +1547,7 @@ function ff_vp9_idct_idct_32x32_add_neon, export=1
> > - ldp d8, d9, [sp], 0x10
> > - ldp d10, d11, [sp], 0x10
> > -
> > -- br x15
> > -+ ret x15
> > - endfunc
> > -
> > - .macro idct32_partial size
> > -@@ -1572,7 +1572,7 @@ function idct32x32_\size\()_add_neon
> > - ldp d8, d9, [sp], 0x10
> > - ldp d10, d11, [sp], 0x10
> > -
> > -- br x15
> > -+ ret x15
> > - endfunc
> > - .endm
> > -
> > Index: graphics/ffmpeg/patches/patch-libavcodec_aarch64_vp9lpf_16bpp_neon_S
> > ===================================================================
> > RCS file: graphics/ffmpeg/patches/patch-libavcodec_aarch64_vp9lpf_16bpp_neon_S
> > diff -N graphics/ffmpeg/patches/patch-libavcodec_aarch64_vp9lpf_16bpp_neon_S
> > --- graphics/ffmpeg/patches/patch-libavcodec_aarch64_vp9lpf_16bpp_neon_S 17 Jun 2023 22:19:43 -0000 1.1
> > +++ /dev/null 1 Jan 1970 00:00:00 -0000
> > @@ -1,174 +0,0 @@
> > -Index: libavcodec/aarch64/vp9lpf_16bpp_neon.S
> > ---- libavcodec/aarch64/vp9lpf_16bpp_neon.S.orig
> > -+++ libavcodec/aarch64/vp9lpf_16bpp_neon.S
> > -@@ -69,7 +69,7 @@
> > - mov x12, v4.d[1]
> > - adds x11, x11, x12
> > - b.ne 1f
> > -- br x10
> > -+ ret x10
> > - 1:
> > -
> > - .if \wd >= 8
> > -@@ -205,7 +205,7 @@
> > - b.eq 6f
> > - .else
> > - b.ne 1f
> > -- br x13
> > -+ ret x13
> > - 1:
> > - .endif
> > -
> > -@@ -264,7 +264,7 @@
> > - b.ne 1f
> > - // If no pixels needed flat8in nor flat8out, jump to a
> > - // writeout of the inner 4 pixels
> > -- br x14
> > -+ ret x14
> > - 1:
> > -
> > - mov x11, v7.d[0]
> > -@@ -272,7 +272,7 @@
> > - adds x11, x11, x12
> > - b.ne 1f
> > - // If no pixels need flat8out, jump to a writeout of the inner 6 pixels
> > -- br x15
> > -+ ret x15
> > -
> > - 1:
> > - // flat8out
> > -@@ -446,7 +446,7 @@ function ff_\func\()_\bpp\()_neon, export=1
> > - ldp d10, d11, [sp], 0x10
> > - ldp d12, d13, [sp], 0x10
> > - ldp d14, d15, [sp], 0x10
> > -- br x16
> > -+ ret x16
> > - .else
> > - b \func\()_16_neon
> > - .endif
> > -@@ -486,7 +486,7 @@ function ff_\func\()_\suffix\()_\bpp\()_neon, export=1
> > - ldp d12, d13, [sp], 0x10
> > - ldp d14, d15, [sp], 0x10
> > - .endif
> > -- br x16
> > -+ ret x16
> > - endfunc
> > - .endm
> > -
> > -@@ -520,7 +520,7 @@ function ff_vp9_loop_filter_\dir\()_\wd1\()\wd2\()_16_
> > - lsl w3, w14, #\bpp - 8
> > - lsl w4, w15, #\bpp - 8
> > - bl vp9_loop_filter_\dir\()_\wd2\()_8_16_neon
> > -- br x16
> > -+ ret x16
> > - endfunc
> > - .endm
> > -
> > -@@ -553,7 +553,7 @@ function vp9_loop_filter_v_4_8_16_neon
> > - st1 {v25.8h}, [x0], x1
> > - sub x0, x0, x1, lsl #1
> > -
> > -- br x10
> > -+ ret x10
> > - endfunc
> > -
> > - bpp_frontends vp9_loop_filter_v_4_8
> > -@@ -601,7 +601,7 @@ function vp9_loop_filter_h_4_8_16_neon
> > - sub x0, x0, x1, lsl #3
> > - add x0, x0, #4
> > -
> > -- br x10
> > -+ ret x10
> > - endfunc
> > -
> > - bpp_frontends vp9_loop_filter_h_4_8
> > -@@ -632,7 +632,7 @@ function vp9_loop_filter_v_8_8_16_neon
> > - sub x0, x0, x1, lsl #1
> > - sub x0, x0, x1
> > -
> > -- br x10
> > -+ ret x10
> > - 6:
> > - sub x9, x0, x1, lsl #1
> > - st1 {v22.8h}, [x9], x1
> > -@@ -640,7 +640,7 @@ function vp9_loop_filter_v_8_8_16_neon
> > - st1 {v23.8h}, [x9], x1
> > - st1 {v25.8h}, [x0], x1
> > - sub x0, x0, x1, lsl #1
> > -- br x10
> > -+ ret x10
> > - endfunc
> > -
> > - bpp_frontends vp9_loop_filter_v_8_8
> > -@@ -683,7 +683,7 @@ function vp9_loop_filter_h_8_8_16_neon
> > - sub x0, x0, x1, lsl #3
> > - add x0, x0, #8
> > -
> > -- br x10
> > -+ ret x10
> > - 6:
> > - // If we didn't need to do the flat8in part, we use the same writeback
> > - // as in loop_filter_h_4_8.
> > -@@ -700,7 +700,7 @@ function vp9_loop_filter_h_8_8_16_neon
> > - st1 {v25.d}[1], [x0], x1
> > - sub x0, x0, x1, lsl #3
> > - add x0, x0, #4
> > -- br x10
> > -+ ret x10
> > - endfunc
> > -
> > - bpp_frontends vp9_loop_filter_h_8_8
> > -@@ -755,7 +755,7 @@ function vp9_loop_filter_v_16_8_16_neon
> > - sub x0, x0, x1, lsl #3
> > - add x0, x0, x1
> > -
> > -- br x10
> > -+ ret x10
> > - 8:
> > - add x9, x9, x1, lsl #2
> > - // If we didn't do the flat8out part, the output is left in the
> > -@@ -768,7 +768,7 @@ function vp9_loop_filter_v_16_8_16_neon
> > - st1 {v26.8h}, [x0], x1
> > - sub x0, x0, x1, lsl #1
> > - sub x0, x0, x1
> > -- br x10
> > -+ ret x10
> > - 7:
> > - sub x9, x0, x1, lsl #1
> > - st1 {v22.8h}, [x9], x1
> > -@@ -776,7 +776,7 @@ function vp9_loop_filter_v_16_8_16_neon
> > - st1 {v23.8h}, [x9], x1
> > - st1 {v25.8h}, [x0], x1
> > - sub x0, x0, x1, lsl #1
> > -- br x10
> > -+ ret x10
> > - endfunc
> > -
> > - bpp_frontends vp9_loop_filter_v_16_8, push=1
> > -@@ -833,7 +833,7 @@ function vp9_loop_filter_h_16_8_16_neon
> > - st1 {v31.8h}, [x0], x1
> > - sub x0, x0, x1, lsl #3
> > -
> > -- br x10
> > -+ ret x10
> > - 8:
> > - // The same writeback as in loop_filter_h_8_8
> > - sub x9, x0, #8
> > -@@ -850,7 +850,7 @@ function vp9_loop_filter_h_16_8_16_neon
> > - st1 {v27.8h}, [x0], x1
> > - sub x0, x0, x1, lsl #3
> > - add x0, x0, #8
> > -- br x10
> > -+ ret x10
> > - 7:
> > - // The same writeback as in loop_filter_h_4_8
> > - sub x9, x0, #4
> > -@@ -866,7 +866,7 @@ function vp9_loop_filter_h_16_8_16_neon
> > - st1 {v25.d}[1], [x0], x1
> > - sub x0, x0, x1, lsl #3
> > - add x0, x0, #4
> > -- br x10
> > -+ ret x10
> > - endfunc
> > -
> > - bpp_frontends vp9_loop_filter_h_16_8, push=1
> > Index: graphics/ffmpeg/patches/patch-libavcodec_aarch64_vp9lpf_neon_S
> > ===================================================================
> > RCS file: graphics/ffmpeg/patches/patch-libavcodec_aarch64_vp9lpf_neon_S
> > diff -N graphics/ffmpeg/patches/patch-libavcodec_aarch64_vp9lpf_neon_S
> > --- graphics/ffmpeg/patches/patch-libavcodec_aarch64_vp9lpf_neon_S 17 Jun 2023 22:19:43 -0000 1.1
> > +++ /dev/null 1 Jan 1970 00:00:00 -0000
> > @@ -1,220 +0,0 @@
> > -Index: libavcodec/aarch64/vp9lpf_neon.S
> > ---- libavcodec/aarch64/vp9lpf_neon.S.orig
> > -+++ libavcodec/aarch64/vp9lpf_neon.S
> > -@@ -399,7 +399,7 @@
> > - .endif
> > - // If no pixels needed flat8in nor flat8out, jump to a
> > - // writeout of the inner 4 pixels
> > -- br x14
> > -+ ret x14
> > - 1:
> > -
> > - mov x5, v7.d[0]
> > -@@ -411,7 +411,7 @@
> > - cbnz x5, 1f
> > - .endif
> > - // If no pixels need flat8out, jump to a writeout of the inner 6 pixels
> > -- br x15
> > -+ ret x15
> > -
> > - 1:
> > - // flat8out
> > -@@ -532,32 +532,32 @@ function vp9_loop_filter_4
> > - loop_filter 4, .8b, 0, v16, v17, v18, v19, v28, v29, v30, v31
> > - ret
> > - 9:
> > -- br x10
> > -+ ret x10
> > - endfunc
> > -
> > - function vp9_loop_filter_4_16b_mix_44
> > - loop_filter 4, .16b, 44, v16, v17, v18, v19, v28, v29, v30, v31
> > - ret
> > - 9:
> > -- br x10
> > -+ ret x10
> > - endfunc
> > -
> > - function vp9_loop_filter_8
> > - loop_filter 8, .8b, 0, v16, v17, v18, v19, v28, v29, v30, v31
> > - ret
> > - 6:
> > -- br x13
> > -+ ret x13
> > - 9:
> > -- br x10
> > -+ ret x10
> > - endfunc
> > -
> > - function vp9_loop_filter_8_16b_mix
> > - loop_filter 8, .16b, 88, v16, v17, v18, v19, v28, v29, v30, v31
> > - ret
> > - 6:
> > -- br x13
> > -+ ret x13
> > - 9:
> > -- br x10
> > -+ ret x10
> > - endfunc
> > -
> > - function vp9_loop_filter_16
> > -@@ -568,7 +568,7 @@ function vp9_loop_filter_16
> > - ldp d10, d11, [sp], 0x10
> > - ldp d12, d13, [sp], 0x10
> > - ldp d14, d15, [sp], 0x10
> > -- br x10
> > -+ ret x10
> > - endfunc
> > -
> > - function vp9_loop_filter_16_16b
> > -@@ -579,7 +579,7 @@ function vp9_loop_filter_16_16b
> > - ldp d10, d11, [sp], 0x10
> > - ldp d12, d13, [sp], 0x10
> > - ldp d14, d15, [sp], 0x10
> > -- br x10
> > -+ ret x10
> > - endfunc
> > -
> > - .macro loop_filter_4
> > -@@ -648,7 +648,7 @@ function ff_vp9_loop_filter_v_4_8_neon, export=1
> > - st1 {v23.8b}, [x9], x1
> > - st1 {v25.8b}, [x0], x1
> > -
> > -- br x10
> > -+ ret x10
> > - endfunc
> > -
> > - function ff_vp9_loop_filter_v_44_16_neon, export=1
> > -@@ -672,7 +672,7 @@ function ff_vp9_loop_filter_v_44_16_neon, export=1
> > - st1 {v23.16b}, [x9], x1
> > - st1 {v25.16b}, [x0], x1
> > -
> > -- br x10
> > -+ ret x10
> > - endfunc
> > -
> > - function ff_vp9_loop_filter_h_4_8_neon, export=1
> > -@@ -714,7 +714,7 @@ function ff_vp9_loop_filter_h_4_8_neon, export=1
> > - st1 {v25.s}[0], [x9], x1
> > - st1 {v25.s}[1], [x0], x1
> > -
> > -- br x10
> > -+ ret x10
> > - endfunc
> > -
> > - function ff_vp9_loop_filter_h_44_16_neon, export=1
> > -@@ -766,7 +766,7 @@ function ff_vp9_loop_filter_h_44_16_neon, export=1
> > - st1 {v25.s}[1], [x9], x1
> > - st1 {v25.s}[3], [x0], x1
> > -
> > -- br x10
> > -+ ret x10
> > - endfunc
> > -
> > - function ff_vp9_loop_filter_v_8_8_neon, export=1
> > -@@ -793,14 +793,14 @@ function ff_vp9_loop_filter_v_8_8_neon, export=1
> > - st1 {v23.8b}, [x9], x1
> > - st1 {v26.8b}, [x0], x1
> > -
> > -- br x10
> > -+ ret x10
> > - 6:
> > - sub x9, x0, x1, lsl #1
> > - st1 {v22.8b}, [x9], x1
> > - st1 {v24.8b}, [x0], x1
> > - st1 {v23.8b}, [x9], x1
> > - st1 {v25.8b}, [x0], x1
> > -- br x10
> > -+ ret x10
> > - endfunc
> > -
> > - .macro mix_v_16 mix
> > -@@ -828,14 +828,14 @@ function ff_vp9_loop_filter_v_\mix\()_16_neon, export=
> > - st1 {v23.16b}, [x9], x1
> > - st1 {v26.16b}, [x0], x1
> > -
> > -- br x10
> > -+ ret x10
> > - 6:
> > - sub x9, x0, x1, lsl #1
> > - st1 {v22.16b}, [x9], x1
> > - st1 {v24.16b}, [x0], x1
> > - st1 {v23.16b}, [x9], x1
> > - st1 {v25.16b}, [x0], x1
> > -- br x10
> > -+ ret x10
> > - endfunc
> > - .endm
> > -
> > -@@ -876,7 +876,7 @@ function ff_vp9_loop_filter_h_8_8_neon, export=1
> > - st1 {v23.8b}, [x9], x1
> > - st1 {v27.8b}, [x0], x1
> > -
> > -- br x10
> > -+ ret x10
> > - 6:
> > - // If we didn't need to do the flat8in part, we use the same writeback
> > - // as in loop_filter_h_4_8.
> > -@@ -891,7 +891,7 @@ function ff_vp9_loop_filter_h_8_8_neon, export=1
> > - st1 {v24.s}[1], [x0], x1
> > - st1 {v25.s}[0], [x9], x1
> > - st1 {v25.s}[1], [x0], x1
> > -- br x10
> > -+ ret x10
> > - endfunc
> > -
> > - .macro mix_h_16 mix
> > -@@ -942,7 +942,7 @@ function ff_vp9_loop_filter_h_\mix\()_16_neon, export=
> > - st1 {v27.8b}, [x9], x1
> > - st1 {v27.d}[1], [x0], x1
> > -
> > -- br x10
> > -+ ret x10
> > - 6:
> > - add x9, x9, #2
> > - add x0, x0, #2
> > -@@ -963,7 +963,7 @@ function ff_vp9_loop_filter_h_\mix\()_16_neon, export=
> > - st1 {v24.s}[3], [x0], x1
> > - st1 {v25.s}[1], [x9], x1
> > - st1 {v25.s}[3], [x0], x1
> > -- br x10
> > -+ ret x10
> > - endfunc
> > - .endm
> > -
> > -@@ -1022,7 +1022,7 @@ function ff_vp9_loop_filter_v_16_8_neon, export=1
> > - ldp d10, d11, [sp], 0x10
> > - ldp d12, d13, [sp], 0x10
> > - ldp d14, d15, [sp], 0x10
> > -- br x10
> > -+ ret x10
> > - 8:
> > - add x9, x9, x1, lsl #2
> > - // If we didn't do the flat8out part, the output is left in the
> > -@@ -1091,7 +1091,7 @@ function ff_vp9_loop_filter_v_16_16_neon, export=1
> > - ldp d10, d11, [sp], 0x10
> > - ldp d12, d13, [sp], 0x10
> > - ldp d14, d15, [sp], 0x10
> > -- br x10
> > -+ ret x10
> > - 8:
> > - add x9, x9, x1, lsl #2
> > - st1 {v21.16b}, [x9], x1
> > -@@ -1168,7 +1168,7 @@ function ff_vp9_loop_filter_h_16_8_neon, export=1
> > - ldp d10, d11, [sp], 0x10
> > - ldp d12, d13, [sp], 0x10
> > - ldp d14, d15, [sp], 0x10
> > -- br x10
> > -+ ret x10
> > - 8:
> > - // The same writeback as in loop_filter_h_8_8
> > - sub x9, x0, #4
> > -@@ -1287,7 +1287,7 @@ function ff_vp9_loop_filter_h_16_16_neon, export=1
> > - ldp d10, d11, [sp], 0x10
> > - ldp d12, d13, [sp], 0x10
> > - ldp d14, d15, [sp], 0x10
> > -- br x10
> > -+ ret x10
> > - 8:
> > - sub x9, x0, #4
> > - add x0, x9, x1, lsl #3
> > Index: graphics/ffmpeg/patches/patch-libavcodec_libaomenc_c
> > ===================================================================
> > RCS file: graphics/ffmpeg/patches/patch-libavcodec_libaomenc_c
> > diff -N graphics/ffmpeg/patches/patch-libavcodec_libaomenc_c
> > --- graphics/ffmpeg/patches/patch-libavcodec_libaomenc_c 20 Aug 2022 12:29:18 -0000 1.5
> > +++ /dev/null 1 Jan 1970 00:00:00 -0000
> > @@ -1,218 +0,0 @@
> > -- lavc/aomenc: Force default qmax of 0 if crf was set to 0
> > -- avcodec/libaomenc: Avoid copying data, allow user-supplied buffers
> > -- lavc/libaomenc: Show encoder config as a warning in case of failed initialization
> > -- avcodec/libaomenc: use ctx->usage to get default cfg
> > -- avcodec/libaomenc: remove the redundant initialization
> > -- avcodec/libaomenc: Add unmet target level warning
> > -- avcodec/libaomenc: Expose the allintra usage mode
> > -- avcodec/libaomenc: Get number of operating points
> > -
> > -Index: libavcodec/libaomenc.c
> > ---- libavcodec/libaomenc.c.orig
> > -+++ libavcodec/libaomenc.c
> > -@@ -36,6 +36,7 @@
> > -
> > - #include "av1.h"
> > - #include "avcodec.h"
> > -+#include "encode.h"
> > - #include "internal.h"
> > - #include "packet_internal.h"
> > - #include "profiles.h"
> > -@@ -194,6 +195,15 @@ static const char *const ctlidstr[] = {
> > - [AV1E_SET_ENABLE_SMOOTH_INTERINTRA] = "AV1E_SET_ENABLE_SMOOTH_INTERINTRA",
> > - [AV1E_SET_ENABLE_REF_FRAME_MVS] = "AV1E_SET_ENABLE_REF_FRAME_MVS",
> > -

No comments:

Post a Comment