Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
 help / color / mirror / Atom feed
* [FFmpeg-devel] remove DEC Alpha DSP & support code
@ 2024-06-09 20:08 Sean McGovern
  2024-06-10 11:57 ` Michael Niedermayer
  2024-06-10 12:29 ` Michael Niedermayer
  0 siblings, 2 replies; 18+ messages in thread
From: Sean McGovern @ 2024-06-09 20:08 UTC (permalink / raw)
  To: FFmpeg development discussions and patches

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

Hi,

Attached is a patch to do proper removal of support for the DEC Alpha.
I hope it is not mangled.

Side note: it seems GMail now prevents sending patches directly with
git send-email -- I really wish we could move to a CI platform like
GitLab or Gitea.

-- Sean McGovern

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-libavcodec-alpha-remove-DSP-support-code.patch --]
[-- Type: text/x-patch; charset="US-ASCII";  name="0001-libavcodec-alpha-remove-DSP-support-code.patch", Size: 76644 bytes --]

From 68d2bc76dfd8d153de5cd6245b5485de8d22f31f Mon Sep 17 00:00:00 2001
From: Sean McGovern <gseanmcg@gmail.com>
Date: Sun, 9 Jun 2024 13:20:24 -0400
Subject: [PATCH] libavcodec/alpha: remove DSP & support code

Introduced in 1992, the Alpha was a 64-bit RISC processor designed to replace the
VAX CISC machines sold by Digital Equipment Corporation.

After Digital was acquired by Compaq in 1998 -- who themselves would be later
purchased by Hewlett-Packard, the architecture was phased out over the following decade.
It became effectively defunct in 2007, the last publically available processor being the Alpha 21364.

FFmpeg has not added any DSP code for this architecture since lowres2 was introduced in 2012,
and it is more than unlikely someone still wishes to maintain it.

Remove the DSP and support code.
---
 Changelog                            |   1 +
 configure                            |  15 +-
 libavcodec/alpha/Makefile            |  10 -
 libavcodec/alpha/asm.h               | 153 --------------
 libavcodec/alpha/blockdsp_alpha.c    |  49 -----
 libavcodec/alpha/hpeldsp_alpha.c     | 213 -------------------
 libavcodec/alpha/hpeldsp_alpha.h     |  28 ---
 libavcodec/alpha/hpeldsp_alpha_asm.S | 125 -----------
 libavcodec/alpha/idctdsp_alpha.c     | 127 -----------
 libavcodec/alpha/idctdsp_alpha.h     |  34 ---
 libavcodec/alpha/idctdsp_alpha_asm.S | 167 ---------------
 libavcodec/alpha/me_cmp_alpha.c      | 279 ------------------------
 libavcodec/alpha/me_cmp_mvi_asm.S    | 179 ----------------
 libavcodec/alpha/mpegvideo_alpha.c   | 110 ----------
 libavcodec/alpha/pixblockdsp_alpha.c |  79 -------
 libavcodec/alpha/regdef.h            |  77 -------
 libavcodec/alpha/simple_idct_alpha.c | 303 ---------------------------
 libavcodec/blockdsp.c                |   4 +-
 libavcodec/hpeldsp.c                 |   2 -
 libavcodec/idctdsp.c                 |   2 -
 libavcodec/me_cmp.c                  |   2 -
 libavcodec/mpegvideo.c               |   4 +-
 libavcodec/pixblockdsp.c             |   2 -
 23 files changed, 6 insertions(+), 1959 deletions(-)
 delete mode 100644 libavcodec/alpha/Makefile
 delete mode 100644 libavcodec/alpha/asm.h
 delete mode 100644 libavcodec/alpha/blockdsp_alpha.c
 delete mode 100644 libavcodec/alpha/hpeldsp_alpha.c
 delete mode 100644 libavcodec/alpha/hpeldsp_alpha.h
 delete mode 100644 libavcodec/alpha/hpeldsp_alpha_asm.S
 delete mode 100644 libavcodec/alpha/idctdsp_alpha.c
 delete mode 100644 libavcodec/alpha/idctdsp_alpha.h
 delete mode 100644 libavcodec/alpha/idctdsp_alpha_asm.S
 delete mode 100644 libavcodec/alpha/me_cmp_alpha.c
 delete mode 100644 libavcodec/alpha/me_cmp_mvi_asm.S
 delete mode 100644 libavcodec/alpha/mpegvideo_alpha.c
 delete mode 100644 libavcodec/alpha/pixblockdsp_alpha.c
 delete mode 100644 libavcodec/alpha/regdef.h
 delete mode 100644 libavcodec/alpha/simple_idct_alpha.c

diff --git a/Changelog b/Changelog
index 03d6b29ad8..881b0e67a3 100644
--- a/Changelog
+++ b/Changelog
@@ -12,6 +12,7 @@ version <next>:
 - qsv_params option added for QSV encoders
 - VVC decoder compatible with DVB test content
 - xHE-AAC decoder
+- removed DEC Alpha DSP and support code
 
 
 version 7.0:
diff --git a/configure b/configure
index 6c5b8aab9a..fbad57ee6e 100755
--- a/configure
+++ b/configure
@@ -2128,7 +2128,6 @@ AUTODETECT_LIBS="
 
 ARCH_LIST="
     aarch64
-    alpha
     arm
     avr32
     avr32_ap
@@ -2816,8 +2815,8 @@ for ext in $(filter_out mmx $ARCH_EXT_LIST_X86_SIMD); do
 done
 
 aligned_stack_if_any="aarch64 ppc x86"
-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_64bit_if_any="aarch64 ia64 mips64 parisc64 ppc64 riscv64 sparc64 x86_64"
+fast_clz_if_any="aarch64 avr32 mips ppc x86"
 fast_unaligned_if_any="aarch64 ppc x86"
 simd_align_16_if_any="altivec neon sse"
 simd_align_32_if_any="avx"
@@ -5278,10 +5277,6 @@ if enabled aarch64; then
         ;;
     esac
 
-elif enabled alpha; then
-
-    cpuflags="-mcpu=$cpu"
-
 elif enabled arm; then
 
     check_arm_arch() {
@@ -5663,7 +5658,7 @@ check_64bit(){
 }
 
 case "$arch" in
-    aarch64|alpha|ia64)
+    aarch64|ia64)
         enabled shared && enable_weak pic
     ;;
     loongarch)
@@ -6242,10 +6237,6 @@ if enabled aarch64; then
         enabled_any ${v}_external ${v}_inline || disable $v
     done
 
-elif enabled alpha; then
-
-    check_cflags -mieee
-
 elif enabled arm; then
 
     enabled msvc && check_cpp_condition thumb stddef.h "defined _M_ARMT"
diff --git a/libavcodec/alpha/Makefile b/libavcodec/alpha/Makefile
deleted file mode 100644
index 796d9762b3..0000000000
--- a/libavcodec/alpha/Makefile
+++ /dev/null
@@ -1,10 +0,0 @@
-OBJS-$(CONFIG_BLOCKDSP)                 += alpha/blockdsp_alpha.o
-OBJS-$(CONFIG_ME_CMP)                   += alpha/me_cmp_alpha.o         \
-                                           alpha/me_cmp_mvi_asm.o
-OBJS-$(CONFIG_HPELDSP)                  += alpha/hpeldsp_alpha.o        \
-                                           alpha/hpeldsp_alpha_asm.o
-OBJS-$(CONFIG_IDCTDSP)                  += alpha/idctdsp_alpha.o        \
-                                           alpha/idctdsp_alpha_asm.o    \
-                                           alpha/simple_idct_alpha.o
-OBJS-$(CONFIG_MPEGVIDEO)                += alpha/mpegvideo_alpha.o
-OBJS-$(CONFIG_PIXBLOCKDSP)              += alpha/pixblockdsp_alpha.o
diff --git a/libavcodec/alpha/asm.h b/libavcodec/alpha/asm.h
deleted file mode 100644
index 6d850cecc6..0000000000
--- a/libavcodec/alpha/asm.h
+++ /dev/null
@@ -1,153 +0,0 @@
-/*
- * Alpha optimized DSP utils
- * Copyright (c) 2002 Falk Hueffner <falk@debian.org>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_ALPHA_ASM_H
-#define AVCODEC_ALPHA_ASM_H
-
-#include <inttypes.h>
-
-#include "libavutil/common.h"
-
-#if AV_GCC_VERSION_AT_LEAST(2,96)
-# define likely(x)      __builtin_expect((x) != 0, 1)
-# define unlikely(x)    __builtin_expect((x) != 0, 0)
-#else
-# define likely(x)      (x)
-# define unlikely(x)    (x)
-#endif
-
-#define AMASK_BWX (1 << 0)
-#define AMASK_FIX (1 << 1)
-#define AMASK_CIX (1 << 2)
-#define AMASK_MVI (1 << 8)
-
-static inline uint64_t BYTE_VEC(uint64_t x)
-{
-    x |= x <<  8;
-    x |= x << 16;
-    x |= x << 32;
-    return x;
-}
-static inline uint64_t WORD_VEC(uint64_t x)
-{
-    x |= x << 16;
-    x |= x << 32;
-    return x;
-}
-
-#define sextw(x) ((int16_t) (x))
-
-#ifdef __GNUC__
-#define ldq(p)                                                  \
-    (((const union {                                            \
-        uint64_t __l;                                           \
-        __typeof__(*(p)) __s[sizeof (uint64_t) / sizeof *(p)];  \
-    } *) (p))->__l)
-#define ldl(p)                                                  \
-    (((const union {                                            \
-        int32_t __l;                                            \
-        __typeof__(*(p)) __s[sizeof (int32_t) / sizeof *(p)];   \
-    } *) (p))->__l)
-#define stq(l, p)                                                       \
-    do {                                                                \
-        (((union {                                                      \
-            uint64_t __l;                                               \
-            __typeof__(*(p)) __s[sizeof (uint64_t) / sizeof *(p)];      \
-        } *) (p))->__l) = l;                                            \
-    } while (0)
-#define stl(l, p)                                                       \
-    do {                                                                \
-        (((union {                                                      \
-            int32_t __l;                                                \
-            __typeof__(*(p)) __s[sizeof (int32_t) / sizeof *(p)];       \
-        } *) (p))->__l) = l;                                            \
-    } while (0)
-struct unaligned_long { uint64_t l; } __attribute__((packed));
-#define ldq_u(p)        (*(const uint64_t *) (((uint64_t) (p)) & ~7ul))
-#define uldq(a)         (((const struct unaligned_long *) (a))->l)
-
-#if AV_GCC_VERSION_AT_LEAST(3,3)
-#define prefetch(p)     __builtin_prefetch((p), 0, 1)
-#define prefetch_en(p)  __builtin_prefetch((p), 0, 0)
-#define prefetch_m(p)   __builtin_prefetch((p), 1, 1)
-#define prefetch_men(p) __builtin_prefetch((p), 1, 0)
-#define cmpbge          __builtin_alpha_cmpbge
-/* Avoid warnings.  */
-#define extql(a, b)     __builtin_alpha_extql(a, (uint64_t) (b))
-#define extwl(a, b)     __builtin_alpha_extwl(a, (uint64_t) (b))
-#define extqh(a, b)     __builtin_alpha_extqh(a, (uint64_t) (b))
-#define zap             __builtin_alpha_zap
-#define zapnot          __builtin_alpha_zapnot
-#define amask           __builtin_alpha_amask
-#define implver         __builtin_alpha_implver
-#define rpcc            __builtin_alpha_rpcc
-#else
-#define prefetch(p)     __asm__ volatile("ldl $31,%0"  : : "m"(*(const char *) (p)) : "memory")
-#define prefetch_en(p)  __asm__ volatile("ldq $31,%0"  : : "m"(*(const char *) (p)) : "memory")
-#define prefetch_m(p)   __asm__ volatile("lds $f31,%0" : : "m"(*(const char *) (p)) : "memory")
-#define prefetch_men(p) __asm__ volatile("ldt $f31,%0" : : "m"(*(const char *) (p)) : "memory")
-#define cmpbge(a, b) ({ uint64_t __r; __asm__ ("cmpbge  %r1,%2,%0"  : "=r" (__r) : "rJ"  (a), "rI" (b)); __r; })
-#define extql(a, b)  ({ uint64_t __r; __asm__ ("extql   %r1,%2,%0"  : "=r" (__r) : "rJ"  (a), "rI" (b)); __r; })
-#define extwl(a, b)  ({ uint64_t __r; __asm__ ("extwl   %r1,%2,%0"  : "=r" (__r) : "rJ"  (a), "rI" (b)); __r; })
-#define extqh(a, b)  ({ uint64_t __r; __asm__ ("extqh   %r1,%2,%0"  : "=r" (__r) : "rJ"  (a), "rI" (b)); __r; })
-#define zap(a, b)    ({ uint64_t __r; __asm__ ("zap     %r1,%2,%0"  : "=r" (__r) : "rJ"  (a), "rI" (b)); __r; })
-#define zapnot(a, b) ({ uint64_t __r; __asm__ ("zapnot  %r1,%2,%0"  : "=r" (__r) : "rJ"  (a), "rI" (b)); __r; })
-#define amask(a)     ({ uint64_t __r; __asm__ ("amask   %1,%0"      : "=r" (__r) : "rI"  (a));           __r; })
-#define implver()    ({ uint64_t __r; __asm__ ("implver %0"         : "=r" (__r));                       __r; })
-#define rpcc()       ({ uint64_t __r; __asm__ volatile ("rpcc %0"   : "=r" (__r));                       __r; })
-#endif
-#define wh64(p) __asm__ volatile("wh64 (%0)" : : "r"(p) : "memory")
-
-#if AV_GCC_VERSION_AT_LEAST(3,3) && defined(__alpha_max__)
-#define minub8  __builtin_alpha_minub8
-#define minsb8  __builtin_alpha_minsb8
-#define minuw4  __builtin_alpha_minuw4
-#define minsw4  __builtin_alpha_minsw4
-#define maxub8  __builtin_alpha_maxub8
-#define maxsb8  __builtin_alpha_maxsb8
-#define maxuw4  __builtin_alpha_maxuw4
-#define maxsw4  __builtin_alpha_maxsw4
-#define perr    __builtin_alpha_perr
-#define pklb    __builtin_alpha_pklb
-#define pkwb    __builtin_alpha_pkwb
-#define unpkbl  __builtin_alpha_unpkbl
-#define unpkbw  __builtin_alpha_unpkbw
-#else
-#define minub8(a, b) ({ uint64_t __r; __asm__ (".arch ev6; minub8  %r1,%2,%0"  : "=r" (__r) : "%rJ" (a), "rI" (b)); __r; })
-#define minsb8(a, b) ({ uint64_t __r; __asm__ (".arch ev6; minsb8  %r1,%2,%0"  : "=r" (__r) : "%rJ" (a), "rI" (b)); __r; })
-#define minuw4(a, b) ({ uint64_t __r; __asm__ (".arch ev6; minuw4  %r1,%2,%0"  : "=r" (__r) : "%rJ" (a), "rI" (b)); __r; })
-#define minsw4(a, b) ({ uint64_t __r; __asm__ (".arch ev6; minsw4  %r1,%2,%0"  : "=r" (__r) : "%rJ" (a), "rI" (b)); __r; })
-#define maxub8(a, b) ({ uint64_t __r; __asm__ (".arch ev6; maxub8  %r1,%2,%0"  : "=r" (__r) : "%rJ" (a), "rI" (b)); __r; })
-#define maxsb8(a, b) ({ uint64_t __r; __asm__ (".arch ev6; maxsb8  %r1,%2,%0"  : "=r" (__r) : "%rJ" (a), "rI" (b)); __r; })
-#define maxuw4(a, b) ({ uint64_t __r; __asm__ (".arch ev6; maxuw4  %r1,%2,%0"  : "=r" (__r) : "%rJ" (a), "rI" (b)); __r; })
-#define maxsw4(a, b) ({ uint64_t __r; __asm__ (".arch ev6; maxsw4  %r1,%2,%0"  : "=r" (__r) : "%rJ" (a), "rI" (b)); __r; })
-#define perr(a, b)   ({ uint64_t __r; __asm__ (".arch ev6; perr    %r1,%r2,%0" : "=r" (__r) : "%rJ" (a), "rJ" (b)); __r; })
-#define pklb(a)      ({ uint64_t __r; __asm__ (".arch ev6; pklb    %r1,%0"     : "=r" (__r) : "rJ"  (a));           __r; })
-#define pkwb(a)      ({ uint64_t __r; __asm__ (".arch ev6; pkwb    %r1,%0"     : "=r" (__r) : "rJ"  (a));           __r; })
-#define unpkbl(a)    ({ uint64_t __r; __asm__ (".arch ev6; unpkbl  %r1,%0"     : "=r" (__r) : "rJ"  (a));           __r; })
-#define unpkbw(a)    ({ uint64_t __r; __asm__ (".arch ev6; unpkbw  %r1,%0"     : "=r" (__r) : "rJ"  (a));           __r; })
-#endif
-
-#else
-#error "Unknown compiler!"
-#endif
-
-#endif /* AVCODEC_ALPHA_ASM_H */
diff --git a/libavcodec/alpha/blockdsp_alpha.c b/libavcodec/alpha/blockdsp_alpha.c
deleted file mode 100644
index c6f0964607..0000000000
--- a/libavcodec/alpha/blockdsp_alpha.c
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Alpha optimised block operations
- * Copyright (c) 2002 Falk Hueffner <falk@debian.org>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#include <stdint.h>
-
-#include "libavutil/attributes.h"
-#include "libavcodec/blockdsp.h"
-#include "asm.h"
-
-static void clear_blocks_axp(int16_t *blocks) {
-    uint64_t *p = (uint64_t *) blocks;
-    int n = sizeof(int16_t) * 6 * 64;
-
-    do {
-        p[0] = 0;
-        p[1] = 0;
-        p[2] = 0;
-        p[3] = 0;
-        p[4] = 0;
-        p[5] = 0;
-        p[6] = 0;
-        p[7] = 0;
-        p += 8;
-        n -= 8 * 8;
-    } while (n);
-}
-
-av_cold void ff_blockdsp_init_alpha(BlockDSPContext *c)
-{
-    c->clear_blocks = clear_blocks_axp;
-}
diff --git a/libavcodec/alpha/hpeldsp_alpha.c b/libavcodec/alpha/hpeldsp_alpha.c
deleted file mode 100644
index 8d54807d8f..0000000000
--- a/libavcodec/alpha/hpeldsp_alpha.c
+++ /dev/null
@@ -1,213 +0,0 @@
-/*
- * Alpha optimized DSP utils
- * Copyright (c) 2002 Falk Hueffner <falk@debian.org>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#include "libavutil/attributes.h"
-#include "libavcodec/hpeldsp.h"
-#include "hpeldsp_alpha.h"
-#include "asm.h"
-
-static inline uint64_t avg2_no_rnd(uint64_t a, uint64_t b)
-{
-    return (a & b) + (((a ^ b) & BYTE_VEC(0xfe)) >> 1);
-}
-
-static inline uint64_t avg2(uint64_t a, uint64_t b)
-{
-    return (a | b) - (((a ^ b) & BYTE_VEC(0xfe)) >> 1);
-}
-
-#if 0
-/* The XY2 routines basically utilize this scheme, but reuse parts in
-   each iteration.  */
-static inline uint64_t avg4(uint64_t l1, uint64_t l2, uint64_t l3, uint64_t l4)
-{
-    uint64_t r1 = ((l1 & ~BYTE_VEC(0x03)) >> 2)
-                + ((l2 & ~BYTE_VEC(0x03)) >> 2)
-                + ((l3 & ~BYTE_VEC(0x03)) >> 2)
-                + ((l4 & ~BYTE_VEC(0x03)) >> 2);
-    uint64_t r2 = ((  (l1 & BYTE_VEC(0x03))
-                    + (l2 & BYTE_VEC(0x03))
-                    + (l3 & BYTE_VEC(0x03))
-                    + (l4 & BYTE_VEC(0x03))
-                    + BYTE_VEC(0x02)) >> 2) & BYTE_VEC(0x03);
-    return r1 + r2;
-}
-#endif
-
-#define OP(LOAD, STORE)                         \
-    do {                                        \
-        STORE(LOAD(pixels), block);             \
-        pixels += line_size;                    \
-        block += line_size;                     \
-    } while (--h)
-
-#define OP_X2(LOAD, STORE)                                      \
-    do {                                                        \
-        uint64_t pix1, pix2;                                    \
-                                                                \
-        pix1 = LOAD(pixels);                                    \
-        pix2 = pix1 >> 8 | ((uint64_t) pixels[8] << 56);        \
-        STORE(AVG2(pix1, pix2), block);                         \
-        pixels += line_size;                                    \
-        block += line_size;                                     \
-    } while (--h)
-
-#define OP_Y2(LOAD, STORE)                      \
-    do {                                        \
-        uint64_t pix = LOAD(pixels);            \
-        do {                                    \
-            uint64_t next_pix;                  \
-                                                \
-            pixels += line_size;                \
-            next_pix = LOAD(pixels);            \
-            STORE(AVG2(pix, next_pix), block);  \
-            block += line_size;                 \
-            pix = next_pix;                     \
-        } while (--h);                          \
-    } while (0)
-
-#define OP_XY2(LOAD, STORE)                                                 \
-    do {                                                                    \
-        uint64_t pix1 = LOAD(pixels);                                       \
-        uint64_t pix2 = pix1 >> 8 | ((uint64_t) pixels[8] << 56);           \
-        uint64_t pix_l = (pix1 & BYTE_VEC(0x03))                            \
-                       + (pix2 & BYTE_VEC(0x03));                           \
-        uint64_t pix_h = ((pix1 & ~BYTE_VEC(0x03)) >> 2)                    \
-                       + ((pix2 & ~BYTE_VEC(0x03)) >> 2);                   \
-                                                                            \
-        do {                                                                \
-            uint64_t npix1, npix2;                                          \
-            uint64_t npix_l, npix_h;                                        \
-            uint64_t avg;                                                   \
-                                                                            \
-            pixels += line_size;                                            \
-            npix1 = LOAD(pixels);                                           \
-            npix2 = npix1 >> 8 | ((uint64_t) pixels[8] << 56);              \
-            npix_l = (npix1 & BYTE_VEC(0x03))                               \
-                   + (npix2 & BYTE_VEC(0x03));                              \
-            npix_h = ((npix1 & ~BYTE_VEC(0x03)) >> 2)                       \
-                   + ((npix2 & ~BYTE_VEC(0x03)) >> 2);                      \
-            avg = (((pix_l + npix_l + AVG4_ROUNDER) >> 2) & BYTE_VEC(0x03)) \
-                + pix_h + npix_h;                                           \
-            STORE(avg, block);                                              \
-                                                                            \
-            block += line_size;                                             \
-            pix_l = npix_l;                                                 \
-            pix_h = npix_h;                                                 \
-        } while (--h);                                                      \
-    } while (0)
-
-#define MAKE_OP(OPNAME, SUFF, OPKIND, STORE)                                \
-static void OPNAME ## _pixels ## SUFF ## _axp                               \
-        (uint8_t *restrict block, const uint8_t *restrict pixels,           \
-         ptrdiff_t line_size, int h)                                        \
-{                                                                           \
-    if ((size_t) pixels & 0x7) {                                            \
-        OPKIND(uldq, STORE);                                                \
-    } else {                                                                \
-        OPKIND(ldq, STORE);                                                 \
-    }                                                                       \
-}                                                                           \
-                                                                            \
-static void OPNAME ## _pixels16 ## SUFF ## _axp                             \
-        (uint8_t *restrict block, const uint8_t *restrict pixels,           \
-         ptrdiff_t line_size, int h)                                        \
-{                                                                           \
-    OPNAME ## _pixels ## SUFF ## _axp(block,     pixels,     line_size, h); \
-    OPNAME ## _pixels ## SUFF ## _axp(block + 8, pixels + 8, line_size, h); \
-}
-
-#define PIXOP(OPNAME, STORE)                    \
-    MAKE_OP(OPNAME, ,     OP,     STORE)        \
-    MAKE_OP(OPNAME, _x2,  OP_X2,  STORE)        \
-    MAKE_OP(OPNAME, _y2,  OP_Y2,  STORE)        \
-    MAKE_OP(OPNAME, _xy2, OP_XY2, STORE)
-
-/* Rounding primitives.  */
-#define AVG2 avg2
-#define AVG4 avg4
-#define AVG4_ROUNDER BYTE_VEC(0x02)
-#define STORE(l, b) stq(l, b)
-PIXOP(put, STORE);
-
-#undef STORE
-#define STORE(l, b) stq(AVG2(l, ldq(b)), b);
-PIXOP(avg, STORE);
-
-/* Not rounding primitives.  */
-#undef AVG2
-#undef AVG4
-#undef AVG4_ROUNDER
-#undef STORE
-#define AVG2 avg2_no_rnd
-#define AVG4 avg4_no_rnd
-#define AVG4_ROUNDER BYTE_VEC(0x01)
-#define STORE(l, b) stq(l, b)
-PIXOP(put_no_rnd, STORE);
-
-#undef STORE
-#define STORE(l, b) stq(AVG2(l, ldq(b)), b);
-PIXOP(avg_no_rnd, STORE);
-
-static void put_pixels16_axp_asm(uint8_t *block, const uint8_t *pixels,
-                                 ptrdiff_t line_size, int h)
-{
-    put_pixels_axp_asm(block,     pixels,     line_size, h);
-    put_pixels_axp_asm(block + 8, pixels + 8, line_size, h);
-}
-
-av_cold void ff_hpeldsp_init_alpha(HpelDSPContext *c, int flags)
-{
-    c->put_pixels_tab[0][0] = put_pixels16_axp_asm;
-    c->put_pixels_tab[0][1] = put_pixels16_x2_axp;
-    c->put_pixels_tab[0][2] = put_pixels16_y2_axp;
-    c->put_pixels_tab[0][3] = put_pixels16_xy2_axp;
-
-    c->put_no_rnd_pixels_tab[0][0] = put_pixels16_axp_asm;
-    c->put_no_rnd_pixels_tab[0][1] = put_no_rnd_pixels16_x2_axp;
-    c->put_no_rnd_pixels_tab[0][2] = put_no_rnd_pixels16_y2_axp;
-    c->put_no_rnd_pixels_tab[0][3] = put_no_rnd_pixels16_xy2_axp;
-
-    c->avg_pixels_tab[0][0] = avg_pixels16_axp;
-    c->avg_pixels_tab[0][1] = avg_pixels16_x2_axp;
-    c->avg_pixels_tab[0][2] = avg_pixels16_y2_axp;
-    c->avg_pixels_tab[0][3] = avg_pixels16_xy2_axp;
-
-    c->avg_no_rnd_pixels_tab[0] = avg_no_rnd_pixels16_axp;
-    c->avg_no_rnd_pixels_tab[1] = avg_no_rnd_pixels16_x2_axp;
-    c->avg_no_rnd_pixels_tab[2] = avg_no_rnd_pixels16_y2_axp;
-    c->avg_no_rnd_pixels_tab[3] = avg_no_rnd_pixels16_xy2_axp;
-
-    c->put_pixels_tab[1][0] = put_pixels_axp_asm;
-    c->put_pixels_tab[1][1] = put_pixels_x2_axp;
-    c->put_pixels_tab[1][2] = put_pixels_y2_axp;
-    c->put_pixels_tab[1][3] = put_pixels_xy2_axp;
-
-    c->put_no_rnd_pixels_tab[1][0] = put_pixels_axp_asm;
-    c->put_no_rnd_pixels_tab[1][1] = put_no_rnd_pixels_x2_axp;
-    c->put_no_rnd_pixels_tab[1][2] = put_no_rnd_pixels_y2_axp;
-    c->put_no_rnd_pixels_tab[1][3] = put_no_rnd_pixels_xy2_axp;
-
-    c->avg_pixels_tab[1][0] = avg_pixels_axp;
-    c->avg_pixels_tab[1][1] = avg_pixels_x2_axp;
-    c->avg_pixels_tab[1][2] = avg_pixels_y2_axp;
-    c->avg_pixels_tab[1][3] = avg_pixels_xy2_axp;
-}
diff --git a/libavcodec/alpha/hpeldsp_alpha.h b/libavcodec/alpha/hpeldsp_alpha.h
deleted file mode 100644
index 985182c67b..0000000000
--- a/libavcodec/alpha/hpeldsp_alpha.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_ALPHA_HPELDSP_ALPHA_H
-#define AVCODEC_ALPHA_HPELDSP_ALPHA_H
-
-#include <stdint.h>
-#include <stddef.h>
-
-void put_pixels_axp_asm(uint8_t *block, const uint8_t *pixels,
-                        ptrdiff_t line_size, int h);
-
-#endif /* AVCODEC_ALPHA_HPELDSP_ALPHA_H */
diff --git a/libavcodec/alpha/hpeldsp_alpha_asm.S b/libavcodec/alpha/hpeldsp_alpha_asm.S
deleted file mode 100644
index df386c429e..0000000000
--- a/libavcodec/alpha/hpeldsp_alpha_asm.S
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- * Alpha optimized DSP utils
- * Copyright (c) 2002 Falk Hueffner <falk@debian.org>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/*
- * These functions are scheduled for pca56. They should work
- * reasonably on ev6, though.
- */
-
-#include "regdef.h"
-
-
-        .set noat
-        .set noreorder
-        .arch pca56
-        .text
-
-/************************************************************************
- * void put_pixels_axp_asm(uint8_t *block, const uint8_t *pixels,
- *                         int line_size, int h)
- */
-        .align 6
-        .globl put_pixels_axp_asm
-        .ent put_pixels_axp_asm
-put_pixels_axp_asm:
-        .frame sp, 0, ra
-        .prologue 0
-
-        and     a1, 7, t0
-        beq     t0, $aligned
-
-        .align 4
-$unaligned:
-        ldq_u   t0, 0(a1)
-        ldq_u   t1, 8(a1)
-        addq    a1, a2, a1
-        nop
-
-        ldq_u   t2, 0(a1)
-        ldq_u   t3, 8(a1)
-        addq    a1, a2, a1
-        nop
-
-        ldq_u   t4, 0(a1)
-        ldq_u   t5, 8(a1)
-        addq    a1, a2, a1
-        nop
-
-        ldq_u   t6, 0(a1)
-        ldq_u   t7, 8(a1)
-        extql   t0, a1, t0
-        addq    a1, a2, a1
-
-        extqh   t1, a1, t1
-        addq    a0, a2, t8
-        extql   t2, a1, t2
-        addq    t8, a2, t9
-
-        extqh   t3, a1, t3
-        addq    t9, a2, ta
-        extql   t4, a1, t4
-        or      t0, t1, t0
-
-        extqh   t5, a1, t5
-        or      t2, t3, t2
-        extql   t6, a1, t6
-        or      t4, t5, t4
-
-        extqh   t7, a1, t7
-        or      t6, t7, t6
-        stq     t0, 0(a0)
-        stq     t2, 0(t8)
-
-        stq     t4, 0(t9)
-        subq    a3, 4, a3
-        stq     t6, 0(ta)
-        addq    ta, a2, a0
-
-        bne     a3, $unaligned
-        ret
-
-        .align 4
-$aligned:
-        ldq     t0, 0(a1)
-        addq    a1, a2, a1
-        ldq     t1, 0(a1)
-        addq    a1, a2, a1
-
-        ldq     t2, 0(a1)
-        addq    a1, a2, a1
-        ldq     t3, 0(a1)
-
-        addq    a0, a2, t4
-        addq    a1, a2, a1
-        addq    t4, a2, t5
-        subq    a3, 4, a3
-
-        stq     t0, 0(a0)
-        addq    t5, a2, t6
-        stq     t1, 0(t4)
-        addq    t6, a2, a0
-
-        stq     t2, 0(t5)
-        stq     t3, 0(t6)
-
-        bne     a3, $aligned
-        ret
-        .end put_pixels_axp_asm
diff --git a/libavcodec/alpha/idctdsp_alpha.c b/libavcodec/alpha/idctdsp_alpha.c
deleted file mode 100644
index ff770c15fd..0000000000
--- a/libavcodec/alpha/idctdsp_alpha.c
+++ /dev/null
@@ -1,127 +0,0 @@
-/*
- * Copyright (c) 2002 Falk Hueffner <falk@debian.org>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#include "libavutil/attributes.h"
-#include "libavcodec/avcodec.h"
-#include "libavcodec/idctdsp.h"
-#include "idctdsp_alpha.h"
-#include "asm.h"
-
-void put_pixels_clamped_mvi_asm(const int16_t *block, uint8_t *pixels,
-                                ptrdiff_t line_size);
-void add_pixels_clamped_mvi_asm(const int16_t *block, uint8_t *pixels,
-                                ptrdiff_t line_size);
-
-void (*put_pixels_clamped_axp_p)(const int16_t *block, uint8_t *pixels,
-                                 ptrdiff_t line_size);
-void (*add_pixels_clamped_axp_p)(const int16_t *block, uint8_t *pixels,
-                                 ptrdiff_t line_size);
-
-#if 0
-/* These functions were the base for the optimized assembler routines,
-   and remain here for documentation purposes.  */
-static void put_pixels_clamped_mvi(const int16_t *block, uint8_t *pixels,
-                                   ptrdiff_t line_size)
-{
-    int i = 8;
-    uint64_t clampmask = zap(-1, 0xaa); /* 0x00ff00ff00ff00ff */
-
-    do {
-        uint64_t shorts0, shorts1;
-
-        shorts0 = ldq(block);
-        shorts0 = maxsw4(shorts0, 0);
-        shorts0 = minsw4(shorts0, clampmask);
-        stl(pkwb(shorts0), pixels);
-
-        shorts1 = ldq(block + 4);
-        shorts1 = maxsw4(shorts1, 0);
-        shorts1 = minsw4(shorts1, clampmask);
-        stl(pkwb(shorts1), pixels + 4);
-
-        pixels += line_size;
-        block += 8;
-    } while (--i);
-}
-
-void add_pixels_clamped_mvi(const int16_t *block, uint8_t *pixels,
-                            ptrdiff_t line_size)
-{
-    int h = 8;
-    /* Keep this function a leaf function by generating the constants
-       manually (mainly for the hack value ;-).  */
-    uint64_t clampmask = zap(-1, 0xaa); /* 0x00ff00ff00ff00ff */
-    uint64_t signmask  = zap(-1, 0x33);
-    signmask ^= signmask >> 1;  /* 0x8000800080008000 */
-
-    do {
-        uint64_t shorts0, pix0, signs0;
-        uint64_t shorts1, pix1, signs1;
-
-        shorts0 = ldq(block);
-        shorts1 = ldq(block + 4);
-
-        pix0    = unpkbw(ldl(pixels));
-        /* Signed subword add (MMX paddw).  */
-        signs0  = shorts0 & signmask;
-        shorts0 &= ~signmask;
-        shorts0 += pix0;
-        shorts0 ^= signs0;
-        /* Clamp. */
-        shorts0 = maxsw4(shorts0, 0);
-        shorts0 = minsw4(shorts0, clampmask);
-
-        /* Next 4.  */
-        pix1    = unpkbw(ldl(pixels + 4));
-        signs1  = shorts1 & signmask;
-        shorts1 &= ~signmask;
-        shorts1 += pix1;
-        shorts1 ^= signs1;
-        shorts1 = maxsw4(shorts1, 0);
-        shorts1 = minsw4(shorts1, clampmask);
-
-        stl(pkwb(shorts0), pixels);
-        stl(pkwb(shorts1), pixels + 4);
-
-        pixels += line_size;
-        block += 8;
-    } while (--h);
-}
-#endif
-
-av_cold void ff_idctdsp_init_alpha(IDCTDSPContext *c, AVCodecContext *avctx,
-                                   unsigned high_bit_depth)
-{
-    /* amask clears all bits that correspond to present features.  */
-    if (amask(AMASK_MVI) == 0) {
-        c->put_pixels_clamped = put_pixels_clamped_mvi_asm;
-        c->add_pixels_clamped = add_pixels_clamped_mvi_asm;
-    }
-
-    put_pixels_clamped_axp_p = c->put_pixels_clamped;
-    add_pixels_clamped_axp_p = c->add_pixels_clamped;
-
-    if (!high_bit_depth && !avctx->lowres &&
-        (avctx->idct_algo == FF_IDCT_AUTO)) {
-        c->idct_put = ff_simple_idct_put_axp;
-        c->idct_add = ff_simple_idct_add_axp;
-        c->idct =     ff_simple_idct_axp;
-    }
-}
diff --git a/libavcodec/alpha/idctdsp_alpha.h b/libavcodec/alpha/idctdsp_alpha.h
deleted file mode 100644
index 8cc969d7de..0000000000
--- a/libavcodec/alpha/idctdsp_alpha.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVCODEC_ALPHA_IDCTDSP_ALPHA_H
-#define AVCODEC_ALPHA_IDCTDSP_ALPHA_H
-
-#include <stddef.h>
-#include <stdint.h>
-
-extern void (*put_pixels_clamped_axp_p)(const int16_t *block, uint8_t *pixels,
-                                        ptrdiff_t line_size);
-extern void (*add_pixels_clamped_axp_p)(const int16_t *block, uint8_t *pixels,
-                                        ptrdiff_t line_size);
-
-void ff_simple_idct_axp(int16_t *block);
-void ff_simple_idct_put_axp(uint8_t *dest, ptrdiff_t line_size, int16_t *block);
-void ff_simple_idct_add_axp(uint8_t *dest, ptrdiff_t line_size, int16_t *block);
-
-#endif /* AVCODEC_ALPHA_IDCTDSP_ALPHA_H */
diff --git a/libavcodec/alpha/idctdsp_alpha_asm.S b/libavcodec/alpha/idctdsp_alpha_asm.S
deleted file mode 100644
index f545df9e4f..0000000000
--- a/libavcodec/alpha/idctdsp_alpha_asm.S
+++ /dev/null
@@ -1,167 +0,0 @@
-/*
- * Alpha optimized IDCT-related routines
- * Copyright (c) 2002 Falk Hueffner <falk@debian.org>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/*
- * These functions are scheduled for pca56. They should work
- * reasonably on ev6, though.
- */
-
-#include "regdef.h"
-
-        .set noat
-        .set noreorder
-        .arch pca56
-        .text
-
-/************************************************************************
- * void put_pixels_clamped_mvi_asm(const int16_t *block, uint8_t *pixels,
- *                                 ptrdiff_t line_size)
- */
-        .align 6
-        .globl put_pixels_clamped_mvi_asm
-        .ent put_pixels_clamped_mvi_asm
-put_pixels_clamped_mvi_asm:
-        .frame sp, 0, ra
-        .prologue 0
-
-        lda     t8, -1
-        lda     t9, 8           # loop counter
-        zap     t8, 0xaa, t8    # 00ff00ff00ff00ff
-
-        .align 4
-1:      ldq     t0,  0(a0)
-        ldq     t1,  8(a0)
-        ldq     t2, 16(a0)
-        ldq     t3, 24(a0)
-
-        maxsw4  t0, zero, t0
-        subq    t9, 2, t9
-        maxsw4  t1, zero, t1
-        lda     a0, 32(a0)
-
-        maxsw4  t2, zero, t2
-        addq    a1, a2, ta
-        maxsw4  t3, zero, t3
-        minsw4  t0, t8, t0
-
-        minsw4  t1, t8, t1
-        minsw4  t2, t8, t2
-        minsw4  t3, t8, t3
-        pkwb    t0, t0
-
-        pkwb    t1, t1
-        pkwb    t2, t2
-        pkwb    t3, t3
-        stl     t0, 0(a1)
-
-        stl     t1, 4(a1)
-        addq    ta, a2, a1
-        stl     t2, 0(ta)
-        stl     t3, 4(ta)
-
-        bne     t9, 1b
-        ret
-        .end put_pixels_clamped_mvi_asm
-
-/************************************************************************
- * void add_pixels_clamped_mvi_asm(const int16_t *block, uint8_t *pixels,
- *                                 ptrdiff_t line_size)
- */
-        .align 6
-        .globl add_pixels_clamped_mvi_asm
-        .ent add_pixels_clamped_mvi_asm
-add_pixels_clamped_mvi_asm:
-        .frame sp, 0, ra
-        .prologue 0
-
-        lda     t1, -1
-        lda     th, 8
-        zap     t1, 0x33, tg
-        nop
-
-        srl     tg, 1, t0
-        xor     tg, t0, tg      # 0x8000800080008000
-        zap     t1, 0xaa, tf    # 0x00ff00ff00ff00ff
-
-        .align 4
-1:      ldl     t1, 0(a1)       # pix0 (try to hit cache line soon)
-        ldl     t4, 4(a1)       # pix1
-        addq    a1, a2, te      # pixels += line_size
-        ldq     t0, 0(a0)       # shorts0
-
-        ldl     t7, 0(te)       # pix2 (try to hit cache line soon)
-        ldl     ta, 4(te)       # pix3
-        ldq     t3, 8(a0)       # shorts1
-        ldq     t6, 16(a0)      # shorts2
-
-        ldq     t9, 24(a0)      # shorts3
-        unpkbw  t1, t1          # 0 0 (quarter/op no.)
-        and     t0, tg, t2      # 0 1
-        unpkbw  t4, t4          # 1 0
-
-        bic     t0, tg, t0      # 0 2
-        unpkbw  t7, t7          # 2 0
-        and     t3, tg, t5      # 1 1
-        addq    t0, t1, t0      # 0 3
-
-        xor     t0, t2, t0      # 0 4
-        unpkbw  ta, ta          # 3 0
-        and     t6, tg, t8      # 2 1
-        maxsw4  t0, zero, t0    # 0 5
-
-        bic     t3, tg, t3      # 1 2
-        bic     t6, tg, t6      # 2 2
-        minsw4  t0, tf, t0      # 0 6
-        addq    t3, t4, t3      # 1 3
-
-        pkwb    t0, t0          # 0 7
-        xor     t3, t5, t3      # 1 4
-        maxsw4  t3, zero, t3    # 1 5
-        addq    t6, t7, t6      # 2 3
-
-        xor     t6, t8, t6      # 2 4
-        and     t9, tg, tb      # 3 1
-        minsw4  t3, tf, t3      # 1 6
-        bic     t9, tg, t9      # 3 2
-
-        maxsw4  t6, zero, t6    # 2 5
-        addq    t9, ta, t9      # 3 3
-        stl     t0, 0(a1)       # 0 8
-        minsw4  t6, tf, t6      # 2 6
-
-        xor     t9, tb, t9      # 3 4
-        maxsw4  t9, zero, t9    # 3 5
-        lda     a0, 32(a0)      # block += 16;
-        pkwb    t3, t3          # 1 7
-
-        minsw4  t9, tf, t9      # 3 6
-        subq    th, 2, th
-        pkwb    t6, t6          # 2 7
-        pkwb    t9, t9          # 3 7
-
-        stl     t3, 4(a1)       # 1 8
-        addq    te, a2, a1      # pixels += line_size
-        stl     t6, 0(te)       # 2 8
-        stl     t9, 4(te)       # 3 8
-
-        bne     th, 1b
-        ret
-        .end add_pixels_clamped_mvi_asm
diff --git a/libavcodec/alpha/me_cmp_alpha.c b/libavcodec/alpha/me_cmp_alpha.c
deleted file mode 100644
index 0c1a4a62c5..0000000000
--- a/libavcodec/alpha/me_cmp_alpha.c
+++ /dev/null
@@ -1,279 +0,0 @@
-/*
- * Alpha optimized DSP utils
- * Copyright (c) 2002 Falk Hueffner <falk@debian.org>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#include "libavutil/attributes.h"
-#include "libavcodec/me_cmp.h"
-#include "asm.h"
-
-int pix_abs16x16_mvi_asm(struct MpegEncContext *v, const uint8_t *pix1, const uint8_t *pix2,
-                         ptrdiff_t line_size, int h);
-
-static inline uint64_t avg2(uint64_t a, uint64_t b)
-{
-    return (a | b) - (((a ^ b) & BYTE_VEC(0xfe)) >> 1);
-}
-
-static inline uint64_t avg4(uint64_t l1, uint64_t l2, uint64_t l3, uint64_t l4)
-{
-    uint64_t r1 = ((l1 & ~BYTE_VEC(0x03)) >> 2)
-                + ((l2 & ~BYTE_VEC(0x03)) >> 2)
-                + ((l3 & ~BYTE_VEC(0x03)) >> 2)
-                + ((l4 & ~BYTE_VEC(0x03)) >> 2);
-    uint64_t r2 = ((  (l1 & BYTE_VEC(0x03))
-                    + (l2 & BYTE_VEC(0x03))
-                    + (l3 & BYTE_VEC(0x03))
-                    + (l4 & BYTE_VEC(0x03))
-                    + BYTE_VEC(0x02)) >> 2) & BYTE_VEC(0x03);
-    return r1 + r2;
-}
-
-static int pix_abs8x8_mvi(struct MpegEncContext *v, const uint8_t *pix1, const uint8_t *pix2,
-                          ptrdiff_t line_size, int h)
-{
-    int result = 0;
-
-    if ((size_t) pix2 & 0x7) {
-        /* works only when pix2 is actually unaligned */
-        do {                    /* do 8 pixel a time */
-            uint64_t p1, p2;
-
-            p1  = ldq(pix1);
-            p2  = uldq(pix2);
-            result += perr(p1, p2);
-
-            pix1 += line_size;
-            pix2 += line_size;
-        } while (--h);
-    } else {
-        do {
-            uint64_t p1, p2;
-
-            p1 = ldq(pix1);
-            p2 = ldq(pix2);
-            result += perr(p1, p2);
-
-            pix1 += line_size;
-            pix2 += line_size;
-        } while (--h);
-    }
-
-    return result;
-}
-
-static int pix_abs16x16_x2_mvi(struct MpegEncContext *v, const uint8_t *pix1, const uint8_t *pix2,
-                               ptrdiff_t line_size, int h)
-{
-    int result = 0;
-    uint64_t disalign = (size_t) pix2 & 0x7;
-
-    switch (disalign) {
-    case 0:
-        do {
-            uint64_t p1_l, p1_r, p2_l, p2_r;
-            uint64_t l, r;
-
-            p1_l = ldq(pix1);
-            p1_r = ldq(pix1 + 8);
-            l    = ldq(pix2);
-            r    = ldq(pix2 + 8);
-            p2_l = avg2(l, (l >> 8) | ((uint64_t) r << 56));
-            p2_r = avg2(r, (r >> 8) | ((uint64_t) pix2[16] << 56));
-            pix1 += line_size;
-            pix2 += line_size;
-
-            result += perr(p1_l, p2_l)
-                    + perr(p1_r, p2_r);
-        } while (--h);
-        break;
-    case 7:
-        /* |.......l|lllllllr|rrrrrrr*|
-           This case is special because disalign1 would be 8, which
-           gets treated as 0 by extqh.  At least it is a bit faster
-           that way :)  */
-        do {
-            uint64_t p1_l, p1_r, p2_l, p2_r;
-            uint64_t l, m, r;
-
-            p1_l = ldq(pix1);
-            p1_r = ldq(pix1 + 8);
-            l     = ldq_u(pix2);
-            m     = ldq_u(pix2 + 8);
-            r     = ldq_u(pix2 + 16);
-            p2_l  = avg2(extql(l, disalign) | extqh(m, disalign), m);
-            p2_r  = avg2(extql(m, disalign) | extqh(r, disalign), r);
-            pix1 += line_size;
-            pix2 += line_size;
-
-            result += perr(p1_l, p2_l)
-                    + perr(p1_r, p2_r);
-        } while (--h);
-        break;
-    default:
-        do {
-            uint64_t disalign1 = disalign + 1;
-            uint64_t p1_l, p1_r, p2_l, p2_r;
-            uint64_t l, m, r;
-
-            p1_l  = ldq(pix1);
-            p1_r  = ldq(pix1 + 8);
-            l     = ldq_u(pix2);
-            m     = ldq_u(pix2 + 8);
-            r     = ldq_u(pix2 + 16);
-            p2_l  = avg2(extql(l, disalign) | extqh(m, disalign),
-                         extql(l, disalign1) | extqh(m, disalign1));
-            p2_r  = avg2(extql(m, disalign) | extqh(r, disalign),
-                         extql(m, disalign1) | extqh(r, disalign1));
-            pix1 += line_size;
-            pix2 += line_size;
-
-            result += perr(p1_l, p2_l)
-                    + perr(p1_r, p2_r);
-        } while (--h);
-        break;
-    }
-    return result;
-}
-
-static int pix_abs16x16_y2_mvi(struct MpegEncContext *v, const uint8_t *pix1, const uint8_t *pix2,
-                               ptrdiff_t line_size, int h)
-{
-    int result = 0;
-
-    if ((size_t) pix2 & 0x7) {
-        uint64_t t, p2_l, p2_r;
-        t     = ldq_u(pix2 + 8);
-        p2_l  = extql(ldq_u(pix2), pix2) | extqh(t, pix2);
-        p2_r  = extql(t, pix2) | extqh(ldq_u(pix2 + 16), pix2);
-
-        do {
-            uint64_t p1_l, p1_r, np2_l, np2_r;
-            uint64_t t;
-
-            p1_l  = ldq(pix1);
-            p1_r  = ldq(pix1 + 8);
-            pix2 += line_size;
-            t     = ldq_u(pix2 + 8);
-            np2_l = extql(ldq_u(pix2), pix2) | extqh(t, pix2);
-            np2_r = extql(t, pix2) | extqh(ldq_u(pix2 + 16), pix2);
-
-            result += perr(p1_l, avg2(p2_l, np2_l))
-                    + perr(p1_r, avg2(p2_r, np2_r));
-
-            pix1 += line_size;
-            p2_l  = np2_l;
-            p2_r  = np2_r;
-
-        } while (--h);
-    } else {
-        uint64_t p2_l, p2_r;
-        p2_l = ldq(pix2);
-        p2_r = ldq(pix2 + 8);
-        do {
-            uint64_t p1_l, p1_r, np2_l, np2_r;
-
-            p1_l = ldq(pix1);
-            p1_r = ldq(pix1 + 8);
-            pix2 += line_size;
-            np2_l = ldq(pix2);
-            np2_r = ldq(pix2 + 8);
-
-            result += perr(p1_l, avg2(p2_l, np2_l))
-                    + perr(p1_r, avg2(p2_r, np2_r));
-
-            pix1 += line_size;
-            p2_l  = np2_l;
-            p2_r  = np2_r;
-        } while (--h);
-    }
-    return result;
-}
-
-static int pix_abs16x16_xy2_mvi(struct MpegEncContext *v, const uint8_t *pix1, const uint8_t *pix2,
-                                ptrdiff_t line_size, int h)
-{
-    int result = 0;
-
-    uint64_t p1_l, p1_r;
-    uint64_t p2_l, p2_r, p2_x;
-
-    p1_l = ldq(pix1);
-    p1_r = ldq(pix1 + 8);
-
-    if ((size_t) pix2 & 0x7) { /* could be optimized a lot */
-        p2_l = uldq(pix2);
-        p2_r = uldq(pix2 + 8);
-        p2_x = (uint64_t) pix2[16] << 56;
-    } else {
-        p2_l = ldq(pix2);
-        p2_r = ldq(pix2 + 8);
-        p2_x = ldq(pix2 + 16) << 56;
-    }
-
-    do {
-        uint64_t np1_l, np1_r;
-        uint64_t np2_l, np2_r, np2_x;
-
-        pix1 += line_size;
-        pix2 += line_size;
-
-        np1_l = ldq(pix1);
-        np1_r = ldq(pix1 + 8);
-
-        if ((size_t) pix2 & 0x7) { /* could be optimized a lot */
-            np2_l = uldq(pix2);
-            np2_r = uldq(pix2 + 8);
-            np2_x = (uint64_t) pix2[16] << 56;
-        } else {
-            np2_l = ldq(pix2);
-            np2_r = ldq(pix2 + 8);
-            np2_x = ldq(pix2 + 16) << 56;
-        }
-
-        result += perr(p1_l,
-                       avg4( p2_l, ( p2_l >> 8) | ((uint64_t)  p2_r << 56),
-                            np2_l, (np2_l >> 8) | ((uint64_t) np2_r << 56)))
-                + perr(p1_r,
-                       avg4( p2_r, ( p2_r >> 8) | ((uint64_t)  p2_x),
-                            np2_r, (np2_r >> 8) | ((uint64_t) np2_x)));
-
-        p1_l = np1_l;
-        p1_r = np1_r;
-        p2_l = np2_l;
-        p2_r = np2_r;
-        p2_x = np2_x;
-    } while (--h);
-
-    return result;
-}
-
-av_cold void ff_me_cmp_init_alpha(MECmpContext *c, AVCodecContext *avctx)
-{
-    /* amask clears all bits that correspond to present features.  */
-    if (amask(AMASK_MVI) == 0) {
-        c->sad[0]           = pix_abs16x16_mvi_asm;
-        c->sad[1]           = pix_abs8x8_mvi;
-        c->pix_abs[0][0]    = pix_abs16x16_mvi_asm;
-        c->pix_abs[1][0]    = pix_abs8x8_mvi;
-        c->pix_abs[0][1]    = pix_abs16x16_x2_mvi;
-        c->pix_abs[0][2]    = pix_abs16x16_y2_mvi;
-        c->pix_abs[0][3]    = pix_abs16x16_xy2_mvi;
-    }
-}
diff --git a/libavcodec/alpha/me_cmp_mvi_asm.S b/libavcodec/alpha/me_cmp_mvi_asm.S
deleted file mode 100644
index 183feeb40c..0000000000
--- a/libavcodec/alpha/me_cmp_mvi_asm.S
+++ /dev/null
@@ -1,179 +0,0 @@
-/*
- * Alpha optimized DSP utils
- * Copyright (c) 2002 Falk Hueffner <falk@debian.org>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#include "regdef.h"
-
-/* Some nicer register names.  */
-#define ta t10
-#define tb t11
-#define tc t12
-#define td AT
-/* Danger: these overlap with the argument list and the return value */
-#define te a5
-#define tf a4
-#define tg a3
-#define th v0
-
-        .set noat
-        .set noreorder
-        .arch pca56
-        .text
-
-/*****************************************************************************
- * int pix_abs16x16_mvi_asm(const uint8_t *pix1, const uint8_t *pix2, int line_size)
- *
- * This code is written with a pca56 in mind. For ev6, one should
- * really take the increased latency of 3 cycles for MVI instructions
- * into account.
- *
- * It is important to keep the loading and first use of a register as
- * far apart as possible, because if a register is accessed before it
- * has been fetched from memory, the CPU will stall.
- */
-        .align 4
-        .globl pix_abs16x16_mvi_asm
-        .ent pix_abs16x16_mvi_asm
-pix_abs16x16_mvi_asm:
-        .frame sp, 0, ra, 0
-        .prologue 0
-
-        and     a2, 7, t0
-        clr     v0
-        beq     t0, $aligned
-        .align 4
-$unaligned:
-        /* Registers:
-           line 0:
-           t0:  left_u -> left lo -> left
-           t1:  mid
-           t2:  right_u -> right hi -> right
-           t3:  ref left
-           t4:  ref right
-           line 1:
-           t5:  left_u -> left lo -> left
-           t6:  mid
-           t7:  right_u -> right hi -> right
-           t8:  ref left
-           t9:  ref right
-           temp:
-           ta:  left hi
-           tb:  right lo
-           tc:  error left
-           td:  error right  */
-
-        /* load line 0 */
-        ldq_u   t0, 0(a2)       # left_u
-        ldq_u   t1, 8(a2)       # mid
-        ldq_u   t2, 16(a2)      # right_u
-        ldq     t3, 0(a1)       # ref left
-        ldq     t4, 8(a1)       # ref right
-        addq    a1, a3, a1      # pix1
-        addq    a2, a3, a2      # pix2
-        /* load line 1 */
-        ldq_u   t5, 0(a2)       # left_u
-        ldq_u   t6, 8(a2)       # mid
-        ldq_u   t7, 16(a2)      # right_u
-        ldq     t8, 0(a1)       # ref left
-        ldq     t9, 8(a1)       # ref right
-        addq    a1, a3, a1      # pix1
-        addq    a2, a3, a2      # pix2
-        /* calc line 0 */
-        extql   t0, a2, t0      # left lo
-        extqh   t1, a2, ta      # left hi
-        extql   t1, a2, tb      # right lo
-        or      t0, ta, t0      # left
-        extqh   t2, a2, t2      # right hi
-        perr    t3, t0, tc      # error left
-        or      t2, tb, t2      # right
-        perr    t4, t2, td      # error right
-        addq    v0, tc, v0      # add error left
-        addq    v0, td, v0      # add error left
-        /* calc line 1 */
-        extql   t5, a2, t5      # left lo
-        extqh   t6, a2, ta      # left hi
-        extql   t6, a2, tb      # right lo
-        or      t5, ta, t5      # left
-        extqh   t7, a2, t7      # right hi
-        perr    t8, t5, tc      # error left
-        or      t7, tb, t7      # right
-        perr    t9, t7, td      # error right
-        addq    v0, tc, v0      # add error left
-        addq    v0, td, v0      # add error left
-        /* loop */
-        subq    a4,  2, a4      # h -= 2
-        bne     a4, $unaligned
-        ret
-
-        .align 4
-$aligned:
-        /* load line 0 */
-        ldq     t0, 0(a2)       # left
-        ldq     t1, 8(a2)       # right
-        addq    a2, a3, a2      # pix2
-        ldq     t2, 0(a1)       # ref left
-        ldq     t3, 8(a1)       # ref right
-        addq    a1, a3, a1      # pix1
-        /* load line 1 */
-        ldq     t4, 0(a2)       # left
-        ldq     t5, 8(a2)       # right
-        addq    a2, a3, a2      # pix2
-        ldq     t6, 0(a1)       # ref left
-        ldq     t7, 8(a1)       # ref right
-        addq    a1, a3, a1      # pix1
-        /* load line 2 */
-        ldq     t8, 0(a2)       # left
-        ldq     t9, 8(a2)       # right
-        addq    a2, a3, a2      # pix2
-        ldq     ta, 0(a1)       # ref left
-        ldq     tb, 8(a1)       # ref right
-        addq    a1, a3, a1      # pix1
-        /* load line 3 */
-        ldq     tc, 0(a2)       # left
-        ldq     td, 8(a2)       # right
-        addq    a2, a3, a2      # pix2
-        ldq     te, 0(a1)       # ref left
-        ldq     a0, 8(a1)       # ref right
-        /* calc line 0 */
-        perr    t0, t2, t0      # error left
-        addq    a1, a3, a1      # pix1
-        perr    t1, t3, t1      # error right
-        addq    v0, t0, v0      # add error left
-        /* calc line 1 */
-        perr    t4, t6, t0      # error left
-        addq    v0, t1, v0      # add error right
-        perr    t5, t7, t1      # error right
-        addq    v0, t0, v0      # add error left
-        /* calc line 2 */
-        perr    t8, ta, t0      # error left
-        addq    v0, t1, v0      # add error right
-        perr    t9, tb, t1      # error right
-        addq    v0, t0, v0      # add error left
-        /* calc line 3 */
-        perr    tc, te, t0      # error left
-        addq    v0, t1, v0      # add error right
-        perr    td, a0, t1      # error right
-        addq    v0, t0, v0      # add error left
-        addq    v0, t1, v0      # add error right
-        /* loop */
-        subq    a4,  4, a4      # h -= 4
-        bne     a4, $aligned
-        ret
-        .end pix_abs16x16_mvi_asm
diff --git a/libavcodec/alpha/mpegvideo_alpha.c b/libavcodec/alpha/mpegvideo_alpha.c
deleted file mode 100644
index 126fe264a1..0000000000
--- a/libavcodec/alpha/mpegvideo_alpha.c
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * Alpha optimized DSP utils
- * Copyright (c) 2002 Falk Hueffner <falk@debian.org>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#include "libavutil/attributes.h"
-#include "libavcodec/mpegvideo.h"
-#include "asm.h"
-
-static void dct_unquantize_h263_axp(int16_t *block, int n_coeffs,
-                                    uint64_t qscale, uint64_t qadd)
-{
-    uint64_t qmul = qscale << 1;
-    uint64_t correction = WORD_VEC(qmul * 255 >> 8);
-    int i;
-
-    qadd = WORD_VEC(qadd);
-
-    for(i = 0; i <= n_coeffs; block += 4, i += 4) {
-        uint64_t levels, negmask, zeros, add, sub;
-
-        levels = ldq(block);
-        if (levels == 0)
-            continue;
-
-#ifdef __alpha_max__
-        /* I don't think the speed difference justifies runtime
-           detection.  */
-        negmask = maxsw4(levels, -1); /* negative -> ffff (-1) */
-        negmask = minsw4(negmask, 0); /* positive -> 0000 (0) */
-#else
-        negmask = cmpbge(WORD_VEC(0x7fff), levels);
-        negmask &= (negmask >> 1) | (1 << 7);
-        negmask = zap(-1, negmask);
-#endif
-
-        zeros = cmpbge(0, levels);
-        zeros &= zeros >> 1;
-        /* zeros |= zeros << 1 is not needed since qadd <= 255, so
-           zapping the lower byte suffices.  */
-
-        levels *= qmul;
-        levels -= correction & (negmask << 16);
-
-        add = qadd & ~negmask;
-        sub = qadd &  negmask;
-        /* Set qadd to 0 for levels == 0.  */
-        add = zap(add, zeros);
-        levels += add;
-        levels -= sub;
-
-        stq(levels, block);
-    }
-}
-
-static void dct_unquantize_h263_intra_axp(MpegEncContext *s, int16_t *block,
-                                    int n, int qscale)
-{
-    int n_coeffs;
-    uint64_t qadd;
-    int16_t block0 = block[0];
-
-    if (!s->h263_aic) {
-        if (n < 4)
-            block0 *= s->y_dc_scale;
-        else
-            block0 *= s->c_dc_scale;
-        qadd = (qscale - 1) | 1;
-    } else {
-        qadd = 0;
-    }
-
-    if(s->ac_pred)
-        n_coeffs = 63;
-    else
-        n_coeffs = s->inter_scantable.raster_end[s->block_last_index[n]];
-
-    dct_unquantize_h263_axp(block, n_coeffs, qscale, qadd);
-
-    block[0] = block0;
-}
-
-static void dct_unquantize_h263_inter_axp(MpegEncContext *s, int16_t *block,
-                                    int n, int qscale)
-{
-    int n_coeffs = s->inter_scantable.raster_end[s->block_last_index[n]];
-    dct_unquantize_h263_axp(block, n_coeffs, qscale, (qscale - 1) | 1);
-}
-
-av_cold void ff_mpv_common_init_axp(MpegEncContext *s)
-{
-    s->dct_unquantize_h263_intra = dct_unquantize_h263_intra_axp;
-    s->dct_unquantize_h263_inter = dct_unquantize_h263_inter_axp;
-}
diff --git a/libavcodec/alpha/pixblockdsp_alpha.c b/libavcodec/alpha/pixblockdsp_alpha.c
deleted file mode 100644
index c2f1a1d79c..0000000000
--- a/libavcodec/alpha/pixblockdsp_alpha.c
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * SIMD-optimized pixel operations
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#include "libavutil/attributes.h"
-#include "libavcodec/pixblockdsp.h"
-#include "asm.h"
-
-static void get_pixels_mvi(int16_t *restrict block,
-                           const uint8_t *restrict pixels, ptrdiff_t stride)
-{
-    int h = 8;
-
-    do {
-        uint64_t p;
-
-        p = ldq(pixels);
-        stq(unpkbw(p),       block);
-        stq(unpkbw(p >> 32), block + 4);
-
-        pixels += stride;
-        block += 8;
-    } while (--h);
-}
-
-static void diff_pixels_mvi(int16_t *block, const uint8_t *s1, const uint8_t *s2,
-                            ptrdiff_t stride)
-{
-    int h = 8;
-    uint64_t mask = 0x4040;
-
-    mask |= mask << 16;
-    mask |= mask << 32;
-    do {
-        uint64_t x, y, c, d, a;
-        uint64_t signs;
-
-        x = ldq(s1);
-        y = ldq(s2);
-        c = cmpbge(x, y);
-        d = x - y;
-        a = zap(mask, c);       /* We use 0x4040404040404040 here...  */
-        d += 4 * a;             /* ...so we can use s4addq here.      */
-        signs = zap(-1, c);
-
-        stq(unpkbw(d)       | (unpkbw(signs)       << 8), block);
-        stq(unpkbw(d >> 32) | (unpkbw(signs >> 32) << 8), block + 4);
-
-        s1 += stride;
-        s2 += stride;
-        block += 8;
-    } while (--h);
-}
-
-av_cold void ff_pixblockdsp_init_alpha(PixblockDSPContext *c, AVCodecContext *avctx,
-                                       unsigned high_bit_depth)
-{
-    if (amask(AMASK_MVI) == 0) {
-        if (!high_bit_depth)
-            c->get_pixels = get_pixels_mvi;
-        c->diff_pixels = diff_pixels_mvi;
-    }
-}
diff --git a/libavcodec/alpha/regdef.h b/libavcodec/alpha/regdef.h
deleted file mode 100644
index f05577a89b..0000000000
--- a/libavcodec/alpha/regdef.h
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * Alpha optimized DSP utils
- * copyright (c) 2002 Falk Hueffner <falk@debian.org>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/* Some BSDs don't seem to have regdef.h... sigh  */
-#ifndef AVCODEC_ALPHA_REGDEF_H
-#define AVCODEC_ALPHA_REGDEF_H
-
-#define v0      $0      /* function return value */
-
-#define t0      $1      /* temporary registers (caller-saved) */
-#define t1      $2
-#define t2      $3
-#define t3      $4
-#define t4      $5
-#define t5      $6
-#define t6      $7
-#define t7      $8
-
-#define s0      $9      /* saved-registers (callee-saved registers) */
-#define s1      $10
-#define s2      $11
-#define s3      $12
-#define s4      $13
-#define s5      $14
-#define s6      $15
-#define fp      s6      /* frame-pointer (s6 in frame-less procedures) */
-
-#define a0      $16     /* argument registers (caller-saved) */
-#define a1      $17
-#define a2      $18
-#define a3      $19
-#define a4      $20
-#define a5      $21
-
-#define t8      $22     /* more temps (caller-saved) */
-#define t9      $23
-#define t10     $24
-#define t11     $25
-#define ra      $26     /* return address register */
-#define t12     $27
-
-#define pv      t12     /* procedure-variable register */
-#define AT      $at     /* assembler temporary */
-#define gp      $29     /* global pointer */
-#define sp      $30     /* stack pointer */
-#define zero    $31     /* reads as zero, writes are noops */
-
-/* Some nicer register names.  */
-#define ta t10
-#define tb t11
-#define tc t12
-#define td AT
-/* Danger: these overlap with the argument list and the return value */
-#define te a5
-#define tf a4
-#define tg a3
-#define th v0
-
-#endif /* AVCODEC_ALPHA_REGDEF_H */
diff --git a/libavcodec/alpha/simple_idct_alpha.c b/libavcodec/alpha/simple_idct_alpha.c
deleted file mode 100644
index 6e377ef243..0000000000
--- a/libavcodec/alpha/simple_idct_alpha.c
+++ /dev/null
@@ -1,303 +0,0 @@
-/*
- * Simple IDCT (Alpha optimized)
- *
- * Copyright (c) 2001 Michael Niedermayer <michaelni@gmx.at>
- *
- * based upon some outcommented C code from mpeg2dec (idct_mmx.c
- * written by Aaron Holtzman <aholtzma@ess.engr.uvic.ca>)
- *
- * Alpha optimizations by Måns Rullgård <mans@mansr.com>
- *                     and Falk Hueffner <falk@debian.org>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#include "idctdsp_alpha.h"
-#include "asm.h"
-
-// cos(i * M_PI / 16) * sqrt(2) * (1 << 14)
-// W4 is actually exactly 16384, but using 16383 works around
-// accumulating rounding errors for some encoders
-#define W1 22725
-#define W2 21407
-#define W3 19266
-#define W4 16383
-#define W5 12873
-#define W6  8867
-#define W7  4520
-#define ROW_SHIFT 11
-#define COL_SHIFT 20
-
-/* 0: all entries 0, 1: only first entry nonzero, 2: otherwise  */
-static inline int idct_row(int16_t *row)
-{
-    int a0, a1, a2, a3, b0, b1, b2, b3, t;
-    uint64_t l, r, t2;
-    l = ldq(row);
-    r = ldq(row + 4);
-
-    if (l == 0 && r == 0)
-        return 0;
-
-    a0 = W4 * sextw(l) + (1 << (ROW_SHIFT - 1));
-
-    if (((l & ~0xffffUL) | r) == 0) {
-        a0 >>= ROW_SHIFT;
-        t2 = (uint16_t) a0;
-        t2 |= t2 << 16;
-        t2 |= t2 << 32;
-
-        stq(t2, row);
-        stq(t2, row + 4);
-        return 1;
-    }
-
-    a1 = a0;
-    a2 = a0;
-    a3 = a0;
-
-    t = extwl(l, 4);            /* row[2] */
-    if (t != 0) {
-        t = sextw(t);
-        a0 += W2 * t;
-        a1 += W6 * t;
-        a2 -= W6 * t;
-        a3 -= W2 * t;
-    }
-
-    t = extwl(r, 0);            /* row[4] */
-    if (t != 0) {
-        t = sextw(t);
-        a0 += W4 * t;
-        a1 -= W4 * t;
-        a2 -= W4 * t;
-        a3 += W4 * t;
-    }
-
-    t = extwl(r, 4);            /* row[6] */
-    if (t != 0) {
-        t = sextw(t);
-        a0 += W6 * t;
-        a1 -= W2 * t;
-        a2 += W2 * t;
-        a3 -= W6 * t;
-    }
-
-    t = extwl(l, 2);            /* row[1] */
-    if (t != 0) {
-        t = sextw(t);
-        b0 = W1 * t;
-        b1 = W3 * t;
-        b2 = W5 * t;
-        b3 = W7 * t;
-    } else {
-        b0 = 0;
-        b1 = 0;
-        b2 = 0;
-        b3 = 0;
-    }
-
-    t = extwl(l, 6);            /* row[3] */
-    if (t) {
-        t = sextw(t);
-        b0 += W3 * t;
-        b1 -= W7 * t;
-        b2 -= W1 * t;
-        b3 -= W5 * t;
-    }
-
-
-    t = extwl(r, 2);            /* row[5] */
-    if (t) {
-        t = sextw(t);
-        b0 += W5 * t;
-        b1 -= W1 * t;
-        b2 += W7 * t;
-        b3 += W3 * t;
-    }
-
-    t = extwl(r, 6);            /* row[7] */
-    if (t) {
-        t = sextw(t);
-        b0 += W7 * t;
-        b1 -= W5 * t;
-        b2 += W3 * t;
-        b3 -= W1 * t;
-    }
-
-    row[0] = (a0 + b0) >> ROW_SHIFT;
-    row[1] = (a1 + b1) >> ROW_SHIFT;
-    row[2] = (a2 + b2) >> ROW_SHIFT;
-    row[3] = (a3 + b3) >> ROW_SHIFT;
-    row[4] = (a3 - b3) >> ROW_SHIFT;
-    row[5] = (a2 - b2) >> ROW_SHIFT;
-    row[6] = (a1 - b1) >> ROW_SHIFT;
-    row[7] = (a0 - b0) >> ROW_SHIFT;
-
-    return 2;
-}
-
-static inline void idct_col(int16_t *col)
-{
-    int a0, a1, a2, a3, b0, b1, b2, b3;
-
-    col[0] += (1 << (COL_SHIFT - 1)) / W4;
-
-    a0 = W4 * col[8 * 0];
-    a1 = W4 * col[8 * 0];
-    a2 = W4 * col[8 * 0];
-    a3 = W4 * col[8 * 0];
-
-    if (col[8 * 2]) {
-        a0 += W2 * col[8 * 2];
-        a1 += W6 * col[8 * 2];
-        a2 -= W6 * col[8 * 2];
-        a3 -= W2 * col[8 * 2];
-    }
-
-    if (col[8 * 4]) {
-        a0 += W4 * col[8 * 4];
-        a1 -= W4 * col[8 * 4];
-        a2 -= W4 * col[8 * 4];
-        a3 += W4 * col[8 * 4];
-    }
-
-    if (col[8 * 6]) {
-        a0 += W6 * col[8 * 6];
-        a1 -= W2 * col[8 * 6];
-        a2 += W2 * col[8 * 6];
-        a3 -= W6 * col[8 * 6];
-    }
-
-    if (col[8 * 1]) {
-        b0 = W1 * col[8 * 1];
-        b1 = W3 * col[8 * 1];
-        b2 = W5 * col[8 * 1];
-        b3 = W7 * col[8 * 1];
-    } else {
-        b0 = 0;
-        b1 = 0;
-        b2 = 0;
-        b3 = 0;
-    }
-
-    if (col[8 * 3]) {
-        b0 += W3 * col[8 * 3];
-        b1 -= W7 * col[8 * 3];
-        b2 -= W1 * col[8 * 3];
-        b3 -= W5 * col[8 * 3];
-    }
-
-    if (col[8 * 5]) {
-        b0 += W5 * col[8 * 5];
-        b1 -= W1 * col[8 * 5];
-        b2 += W7 * col[8 * 5];
-        b3 += W3 * col[8 * 5];
-    }
-
-    if (col[8 * 7]) {
-        b0 += W7 * col[8 * 7];
-        b1 -= W5 * col[8 * 7];
-        b2 += W3 * col[8 * 7];
-        b3 -= W1 * col[8 * 7];
-    }
-
-    col[8 * 0] = (a0 + b0) >> COL_SHIFT;
-    col[8 * 7] = (a0 - b0) >> COL_SHIFT;
-    col[8 * 1] = (a1 + b1) >> COL_SHIFT;
-    col[8 * 6] = (a1 - b1) >> COL_SHIFT;
-    col[8 * 2] = (a2 + b2) >> COL_SHIFT;
-    col[8 * 5] = (a2 - b2) >> COL_SHIFT;
-    col[8 * 3] = (a3 + b3) >> COL_SHIFT;
-    col[8 * 4] = (a3 - b3) >> COL_SHIFT;
-}
-
-/* If all rows but the first one are zero after row transformation,
-   all rows will be identical after column transformation.  */
-static inline void idct_col2(int16_t *col)
-{
-    int i;
-    uint64_t l, r;
-
-    for (i = 0; i < 8; ++i) {
-        int a0 = col[i] + (1 << (COL_SHIFT - 1)) / W4;
-
-        a0 *= W4;
-        col[i] = a0 >> COL_SHIFT;
-    }
-
-    l = ldq(col + 0 * 4); r = ldq(col + 1 * 4);
-    stq(l, col +  2 * 4); stq(r, col +  3 * 4);
-    stq(l, col +  4 * 4); stq(r, col +  5 * 4);
-    stq(l, col +  6 * 4); stq(r, col +  7 * 4);
-    stq(l, col +  8 * 4); stq(r, col +  9 * 4);
-    stq(l, col + 10 * 4); stq(r, col + 11 * 4);
-    stq(l, col + 12 * 4); stq(r, col + 13 * 4);
-    stq(l, col + 14 * 4); stq(r, col + 15 * 4);
-}
-
-void ff_simple_idct_axp(int16_t *block)
-{
-
-    int i;
-    int rowsZero = 1;           /* all rows except row 0 zero */
-    int rowsConstant = 1;       /* all rows consist of a constant value */
-
-    for (i = 0; i < 8; i++) {
-        int sparseness = idct_row(block + 8 * i);
-
-        if (i > 0 && sparseness > 0)
-            rowsZero = 0;
-        if (sparseness == 2)
-            rowsConstant = 0;
-    }
-
-    if (rowsZero) {
-        idct_col2(block);
-    } else if (rowsConstant) {
-        idct_col(block);
-        for (i = 0; i < 8; i += 2) {
-            uint64_t v = (uint16_t) block[0];
-            uint64_t w = (uint16_t) block[8];
-
-            v |= v << 16;
-            w |= w << 16;
-            v |= v << 32;
-            w |= w << 32;
-            stq(v, block + 0 * 4);
-            stq(v, block + 1 * 4);
-            stq(w, block + 2 * 4);
-            stq(w, block + 3 * 4);
-            block += 4 * 4;
-        }
-    } else {
-        for (i = 0; i < 8; i++)
-            idct_col(block + i);
-    }
-}
-
-void ff_simple_idct_put_axp(uint8_t *dest, ptrdiff_t line_size, int16_t *block)
-{
-    ff_simple_idct_axp(block);
-    put_pixels_clamped_axp_p(block, dest, line_size);
-}
-
-void ff_simple_idct_add_axp(uint8_t *dest, ptrdiff_t line_size, int16_t *block)
-{
-    ff_simple_idct_axp(block);
-    add_pixels_clamped_axp_p(block, dest, line_size);
-}
diff --git a/libavcodec/blockdsp.c b/libavcodec/blockdsp.c
index 79a8814262..57ca41bd96 100644
--- a/libavcodec/blockdsp.c
+++ b/libavcodec/blockdsp.c
@@ -63,9 +63,7 @@ av_cold void ff_blockdsp_init(BlockDSPContext *c)
     c->fill_block_tab[0] = fill_block16_c;
     c->fill_block_tab[1] = fill_block8_c;
 
-#if ARCH_ALPHA
-    ff_blockdsp_init_alpha(c);
-#elif ARCH_ARM
+#if ARCH_ARM
     ff_blockdsp_init_arm(c);
 #elif ARCH_PPC
     ff_blockdsp_init_ppc(c);
diff --git a/libavcodec/hpeldsp.c b/libavcodec/hpeldsp.c
index 1ec76e7a45..80494c9749 100644
--- a/libavcodec/hpeldsp.c
+++ b/libavcodec/hpeldsp.c
@@ -357,8 +357,6 @@ av_cold void ff_hpeldsp_init(HpelDSPContext *c, int flags)
 
 #if ARCH_AARCH64
     ff_hpeldsp_init_aarch64(c, flags);
-#elif ARCH_ALPHA
-    ff_hpeldsp_init_alpha(c, flags);
 #elif ARCH_ARM
     ff_hpeldsp_init_arm(c, flags);
 #elif ARCH_PPC
diff --git a/libavcodec/idctdsp.c b/libavcodec/idctdsp.c
index de879f7302..4259a117dc 100644
--- a/libavcodec/idctdsp.c
+++ b/libavcodec/idctdsp.c
@@ -294,8 +294,6 @@ av_cold void ff_idctdsp_init(IDCTDSPContext *c, AVCodecContext *avctx)
 
 #if ARCH_AARCH64
     ff_idctdsp_init_aarch64(c, avctx, high_bit_depth);
-#elif ARCH_ALPHA
-    ff_idctdsp_init_alpha(c, avctx, high_bit_depth);
 #elif ARCH_ARM
     ff_idctdsp_init_arm(c, avctx, high_bit_depth);
 #elif ARCH_PPC
diff --git a/libavcodec/me_cmp.c b/libavcodec/me_cmp.c
index db3fb1260c..5d1ce3582d 100644
--- a/libavcodec/me_cmp.c
+++ b/libavcodec/me_cmp.c
@@ -1058,8 +1058,6 @@ av_cold void ff_me_cmp_init(MECmpContext *c, AVCodecContext *avctx)
 
 #if ARCH_AARCH64
     ff_me_cmp_init_aarch64(c, avctx);
-#elif ARCH_ALPHA
-    ff_me_cmp_init_alpha(c, avctx);
 #elif ARCH_ARM
     ff_me_cmp_init_arm(c, avctx);
 #elif ARCH_PPC
diff --git a/libavcodec/mpegvideo.c b/libavcodec/mpegvideo.c
index 7af823b8bd..2e00f18015 100644
--- a/libavcodec/mpegvideo.c
+++ b/libavcodec/mpegvideo.c
@@ -304,9 +304,7 @@ static av_cold int dct_init(MpegEncContext *s)
     ff_mpv_common_init_neon(s);
 #endif
 
-#if ARCH_ALPHA
-    ff_mpv_common_init_axp(s);
-#elif ARCH_ARM
+#if ARCH_ARM
     ff_mpv_common_init_arm(s);
 #elif ARCH_PPC
     ff_mpv_common_init_ppc(s);
diff --git a/libavcodec/pixblockdsp.c b/libavcodec/pixblockdsp.c
index 8703e5aeaf..bbbeca1618 100644
--- a/libavcodec/pixblockdsp.c
+++ b/libavcodec/pixblockdsp.c
@@ -103,8 +103,6 @@ av_cold void ff_pixblockdsp_init(PixblockDSPContext *c, AVCodecContext *avctx)
 
 #if ARCH_AARCH64
     ff_pixblockdsp_init_aarch64(c, avctx, high_bit_depth);
-#elif ARCH_ALPHA
-    ff_pixblockdsp_init_alpha(c, avctx, high_bit_depth);
 #elif ARCH_ARM
     ff_pixblockdsp_init_arm(c, avctx, high_bit_depth);
 #elif ARCH_PPC
-- 
2.39.2


[-- Attachment #3: Type: text/plain, Size: 251 bytes --]

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

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

* Re: [FFmpeg-devel] remove DEC Alpha DSP & support code
  2024-06-09 20:08 [FFmpeg-devel] remove DEC Alpha DSP & support code Sean McGovern
@ 2024-06-10 11:57 ` Michael Niedermayer
  2024-06-10 12:56   ` Rémi Denis-Courmont
  2024-06-10 12:29 ` Michael Niedermayer
  1 sibling, 1 reply; 18+ messages in thread
From: Michael Niedermayer @ 2024-06-10 11:57 UTC (permalink / raw)
  To: FFmpeg development discussions and patches


[-- Attachment #1.1: Type: text/plain, Size: 1110 bytes --]

On Sun, Jun 09, 2024 at 04:08:48PM -0400, Sean McGovern wrote:
> Hi,
> 
> Attached is a patch to do proper removal of support for the DEC Alpha.
> I hope it is not mangled.
> 
> Side note: it seems GMail now prevents sending patches directly with
> git send-email -- I really wish we could move to a CI platform like
> GitLab or Gitea.

What effect does this have on performance on an alpha ?
I mean FFmpeg will still build after this just without the removed
optimizations.
I think if optimizations are removed, that impact should be docuemnted
(this allows users to judge if they want to stay on a old ffmpeg with these
 optimizations or upgrade)

Also we have alpha fate clients:
https://fate.ffmpeg.org/?query=subarch:alpha%2F%2F

thx

[...]

-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Old school: Use the lowest level language in which you can solve the problem
            conveniently.
New school: Use the highest level language in which the latest supercomputer
            can solve the problem without the user falling asleep waiting.

[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]

[-- Attachment #2: Type: text/plain, Size: 251 bytes --]

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

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

* Re: [FFmpeg-devel] remove DEC Alpha DSP & support code
  2024-06-09 20:08 [FFmpeg-devel] remove DEC Alpha DSP & support code Sean McGovern
  2024-06-10 11:57 ` Michael Niedermayer
@ 2024-06-10 12:29 ` Michael Niedermayer
  2024-06-10 12:42   ` Vittorio Giovara
  1 sibling, 1 reply; 18+ messages in thread
From: Michael Niedermayer @ 2024-06-10 12:29 UTC (permalink / raw)
  To: FFmpeg development discussions and patches


[-- Attachment #1.1: Type: text/plain, Size: 899 bytes --]

On Sun, Jun 09, 2024 at 04:08:48PM -0400, Sean McGovern wrote:
[...]
> Side note: it seems GMail now prevents sending patches directly with
> git send-email

I have difficulty believing this, but if so, the problem is gmail
and you should contact gmails support about this.

if thats not possible or helpfull and you still want to keep
using a servivce where you and your private data is the product,
i must say iam quite impressed by how google got people in this
mindset but anyway

As there are other gmail users on this list and it should affect
others, if this is a real issue it probably is on topic for the ML
to discuss how to use gmail with git

thx


> -- I really wish we could move to a CI platform like
> GitLab or Gitea.

[...]

-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

You can kill me, but you cannot change the truth.

[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]

[-- Attachment #2: Type: text/plain, Size: 251 bytes --]

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

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

* Re: [FFmpeg-devel] remove DEC Alpha DSP & support code
  2024-06-10 12:29 ` Michael Niedermayer
@ 2024-06-10 12:42   ` Vittorio Giovara
  2024-06-11  0:17     ` Michael Niedermayer
  0 siblings, 1 reply; 18+ messages in thread
From: Vittorio Giovara @ 2024-06-10 12:42 UTC (permalink / raw)
  To: FFmpeg development discussions and patches

On Mon, Jun 10, 2024 at 2:29 PM Michael Niedermayer <michael@niedermayer.cc>
wrote:

> On Sun, Jun 09, 2024 at 04:08:48PM -0400, Sean McGovern wrote:
> [...]
> > Side note: it seems GMail now prevents sending patches directly with
> > git send-email
>
> I have difficulty believing this, but if so, the problem is gmail
> and you should contact gmails support about this.
>

There is no such thing.


> if thats not possible or helpfull and you still want to keep
> using a servivce where you and your private data is the product,
> i must say iam quite impressed by how google got people in this
> mindset but anyway
>

Some people prefer convenience over privacy, it's been the technology trend
in the last decade or so.
As ffmpeg developers we should encourage contributions, not making people
feel bad at their setup because they use a system we don't like (and
hopefully pave the way to remove barriers, like with gitlab or gitead or
whatever).

As there are other gmail users on this list and it should affect
> others, if this is a real issue it probably is on topic for the ML
> to discuss how to use gmail with git


Just to clarify, gmail requires the use of an app password with less secure
email channels (such as through git send-email) - it's complicated and
cumbersome (
https://stackoverflow.com/questions/68238912/how-to-configure-and-use-git-send-email-to-work-with-gmail-to-email-patches-to)
but not an unreasonable expectation.
-- 
Vittorio
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

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

* Re: [FFmpeg-devel] remove DEC Alpha DSP & support code
  2024-06-10 11:57 ` Michael Niedermayer
@ 2024-06-10 12:56   ` Rémi Denis-Courmont
  2024-06-10 13:07     ` Andreas Rheinhardt
  2024-06-11  9:35     ` Michael Niedermayer
  0 siblings, 2 replies; 18+ messages in thread
From: Rémi Denis-Courmont @ 2024-06-10 12:56 UTC (permalink / raw)
  To: FFmpeg development discussions and patches



Le 10 juin 2024 14:57:29 GMT+03:00, Michael Niedermayer <michael@niedermayer.cc> a écrit :
>Also we have alpha fate clients:
>https://fate.ffmpeg.org/?query=subarch:alpha%2F%2F

Are there? I only see Ubuntu 22.04 builds which must be cross-compiled since Ubuntu 22.04 doesn't support DEC Alpha, not even as a port.

So I guess the tests are run on user-mode QEMU? For the sake of the argument and to answer your performance question, SIMD on QEMU is in my experience much *slower* than scalar C, due to limitations of TCG. So if that's the goal post, then removing the optimisations is actually a performance win.

Realistically though, Alpha was dropped for good by its vendor in 2007, with ongoing general commercial support ending in 2012.
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

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

* Re: [FFmpeg-devel] remove DEC Alpha DSP & support code
  2024-06-10 12:56   ` Rémi Denis-Courmont
@ 2024-06-10 13:07     ` Andreas Rheinhardt
  2024-06-10 13:14       ` Rémi Denis-Courmont
  2024-06-11  9:35     ` Michael Niedermayer
  1 sibling, 1 reply; 18+ messages in thread
From: Andreas Rheinhardt @ 2024-06-10 13:07 UTC (permalink / raw)
  To: ffmpeg-devel

Rémi Denis-Courmont:
> 
> 
> Le 10 juin 2024 14:57:29 GMT+03:00, Michael Niedermayer <michael@niedermayer.cc> a écrit :
>> Also we have alpha fate clients:
>> https://fate.ffmpeg.org/?query=subarch:alpha%2F%2F
> 
> Are there? I only see Ubuntu 22.04 builds which must be cross-compiled since Ubuntu 22.04 doesn't support DEC Alpha, not even as a port.
> 
> So I guess the tests are run on user-mode QEMU? For the sake of the argument and to answer your performance question, SIMD on QEMU is in my experience much *slower* than scalar C, due to limitations of TCG. So if that's the goal post, then removing the optimisations is actually a performance win.
> 

I doubt that the same can be said about removing the fast 64bit and clz
flags.

- Andreas

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

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

* Re: [FFmpeg-devel] remove DEC Alpha DSP & support code
  2024-06-10 13:07     ` Andreas Rheinhardt
@ 2024-06-10 13:14       ` Rémi Denis-Courmont
  0 siblings, 0 replies; 18+ messages in thread
From: Rémi Denis-Courmont @ 2024-06-10 13:14 UTC (permalink / raw)
  To: FFmpeg development discussions and patches



Le 10 juin 2024 16:07:14 GMT+03:00, Andreas Rheinhardt <andreas.rheinhardt@outlook.com> a écrit :
>Rémi Denis-Courmont:
>> 
>> 
>> Le 10 juin 2024 14:57:29 GMT+03:00, Michael Niedermayer <michael@niedermayer.cc> a écrit :
>>> Also we have alpha fate clients:
>>> https://fate.ffmpeg.org/?query=subarch:alpha%2F%2F
>> 
>> Are there? I only see Ubuntu 22.04 builds which must be cross-compiled since Ubuntu 22.04 doesn't support DEC Alpha, not even as a port.
>> 
>> So I guess the tests are run on user-mode QEMU? For the sake of the argument and to answer your performance question, SIMD on QEMU is in my experience much *slower* than scalar C, due to limitations of TCG. So if that's the goal post, then removing the optimisations is actually a performance win.
>> 
>
>I doubt that the same can be said about removing the fast 64bit and clz
>flags.

Sure. TCG has express support for CLZ and CTZ. We could default to the GCC built-ins on Clang and GCC regardless of fast CLZ though.

IMO the fast 64-bit detection should use some default heuristic for unknown platforms though. We could at least check if UINTPTR_MAX is larger or equal to UINT64_MAX (won't work for 64-bit ILP32 ABIs, but I don't think Alpha has ever had one).

In any case, this may be relevant for some platforms but probably not for Alpha as of 2024.
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

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

* Re: [FFmpeg-devel] remove DEC Alpha DSP & support code
  2024-06-10 12:42   ` Vittorio Giovara
@ 2024-06-11  0:17     ` Michael Niedermayer
  2024-06-11  0:52       ` Sean McGovern
  0 siblings, 1 reply; 18+ messages in thread
From: Michael Niedermayer @ 2024-06-11  0:17 UTC (permalink / raw)
  To: FFmpeg development discussions and patches


[-- Attachment #1.1: Type: text/plain, Size: 1470 bytes --]

On Mon, Jun 10, 2024 at 02:42:16PM +0200, Vittorio Giovara wrote:
> On Mon, Jun 10, 2024 at 2:29 PM Michael Niedermayer <michael@niedermayer.cc>
> wrote:
> 
> > On Sun, Jun 09, 2024 at 04:08:48PM -0400, Sean McGovern wrote:
[...]
> > if thats not possible or helpfull and you still want to keep
> > using a servivce where you and your private data is the product,
> > i must say iam quite impressed by how google got people in this
> > mindset but anyway
> >
> 
> Some people prefer convenience over privacy,

"no privacy", "no support", "convenience" , ok


> it's been the technology trend
> in the last decade or so.

yeah,
theres a real need for a "convenient" and "private" solution


> As ffmpeg developers we should encourage contributions,

yes


> not making people
> feel bad at their setup

<humor>

What a beautifull and convenient setup, ohh i wish i too could have my
private data given away (NOT SOLD) so companies can bid in auctions on
me (as i AM the PRODUCT).
People, please dont feel bad about your setup


> because they use a system we don't like

You dont like gmail? Why ?!
But then i see you use gmail, ... confused

</humor>

thx

[...]

-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Into a blind darkness they enter who follow after the Ignorance,
they as if into a greater darkness enter who devote themselves
to the Knowledge alone. -- Isha Upanishad

[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]

[-- Attachment #2: Type: text/plain, Size: 251 bytes --]

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

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

* Re: [FFmpeg-devel] remove DEC Alpha DSP & support code
  2024-06-11  0:17     ` Michael Niedermayer
@ 2024-06-11  0:52       ` Sean McGovern
  2024-06-11  9:59         ` Michael Niedermayer
  0 siblings, 1 reply; 18+ messages in thread
From: Sean McGovern @ 2024-06-11  0:52 UTC (permalink / raw)
  To: FFmpeg development discussions and patches

Hi,

On Mon, Jun 10, 2024 at 8:17 PM Michael Niedermayer
<michael@niedermayer.cc> wrote:
>
> On Mon, Jun 10, 2024 at 02:42:16PM +0200, Vittorio Giovara wrote:
> > On Mon, Jun 10, 2024 at 2:29 PM Michael Niedermayer <michael@niedermayer.cc>
> > wrote:
> >
> > > On Sun, Jun 09, 2024 at 04:08:48PM -0400, Sean McGovern wrote:
> [...]
> > > if thats not possible or helpfull and you still want to keep
> > > using a servivce where you and your private data is the product,
> > > i must say iam quite impressed by how google got people in this
> > > mindset but anyway
> > >
> >
> > Some people prefer convenience over privacy,
>
> "no privacy", "no support", "convenience" , ok
>
>
> > it's been the technology trend
> > in the last decade or so.
>
> yeah,
> theres a real need for a "convenient" and "private" solution
>
>
> > As ffmpeg developers we should encourage contributions,
>
> yes
>
>
> > not making people
> > feel bad at their setup
>
> <humor>
>
> What a beautifull and convenient setup, ohh i wish i too could have my
> private data given away (NOT SOLD) so companies can bid in auctions on
> me (as i AM the PRODUCT).
> People, please dont feel bad about your setup
>
>
> > because they use a system we don't like
>
> You dont like gmail? Why ?!
> But then i see you use gmail, ... confused
>
> </humor>
>
> thx
>
> [...]
>
> --
> Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
>
> Into a blind darkness they enter who follow after the Ignorance,
> they as if into a greater darkness enter who devote themselves
> to the Knowledge alone. -- Isha Upanishad
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

I'm really frustrated about what this has done to my workflow, but
lets please move this to another thread if we want to continue on.

Are there any real concerns about the Alpha removal itself?
People still wanting to use FFmpeg for hardware that old can stick
with 7.0 (and fork it if they like -- that's the beauty of FOSS).
It is worth mentioning that even Debian hasn't supported Alpha (along
with several other architectures) since release 8.0 in June 2018.

-- Sean McGovern
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

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

* Re: [FFmpeg-devel] remove DEC Alpha DSP & support code
  2024-06-10 12:56   ` Rémi Denis-Courmont
  2024-06-10 13:07     ` Andreas Rheinhardt
@ 2024-06-11  9:35     ` Michael Niedermayer
  1 sibling, 0 replies; 18+ messages in thread
From: Michael Niedermayer @ 2024-06-11  9:35 UTC (permalink / raw)
  To: FFmpeg development discussions and patches


[-- Attachment #1.1: Type: text/plain, Size: 1176 bytes --]

On Mon, Jun 10, 2024 at 03:56:46PM +0300, Rémi Denis-Courmont wrote:
> 
> 
> Le 10 juin 2024 14:57:29 GMT+03:00, Michael Niedermayer <michael@niedermayer.cc> a écrit :
> >Also we have alpha fate clients:
> >https://fate.ffmpeg.org/?query=subarch:alpha%2F%2F
> 
> Are there? I only see Ubuntu 22.04 builds which must be cross-compiled since Ubuntu 22.04 doesn't support DEC Alpha, not even as a port.
> 
> So I guess the tests are run on user-mode QEMU? For the sake of the argument and to answer your performance question, SIMD on QEMU is in my experience much *slower* than scalar C, due to limitations of TCG. So if that's the goal post, then removing the optimisations is actually a performance win.

My performance question was not related to the fate clients. (though they could be affected too)
As i wrote "(this allows users to judge if they want to stay on a old ffmpeg with these optimizations or upgrade)"

The fate clients are not real users nor am i

thx

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Asymptotically faster algorithms should always be preferred if you have
asymptotical amounts of data

[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]

[-- Attachment #2: Type: text/plain, Size: 251 bytes --]

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

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

* Re: [FFmpeg-devel] remove DEC Alpha DSP & support code
  2024-06-11  0:52       ` Sean McGovern
@ 2024-06-11  9:59         ` Michael Niedermayer
  2024-06-11 11:26           ` Rémi Denis-Courmont
  0 siblings, 1 reply; 18+ messages in thread
From: Michael Niedermayer @ 2024-06-11  9:59 UTC (permalink / raw)
  To: FFmpeg development discussions and patches


[-- Attachment #1.1: Type: text/plain, Size: 1080 bytes --]

On Mon, Jun 10, 2024 at 08:52:08PM -0400, Sean McGovern wrote:
[...]
> Are there any real concerns about the Alpha removal itself?
> People still wanting to use FFmpeg for hardware that old can stick
> with 7.0 (and fork it if they like -- that's the beauty of FOSS).

Loosing security support, sounds not viable, so if alpha is removed
the question what that would do to users (aka performance and does it
work/build after the patchset) is still an open question ...

Also theres the question about how few people would be affected and what
we gain from this?


> It is worth mentioning that even Debian hasn't supported Alpha (along
> with several other architectures) since release 8.0 in June 2018.

I think debian dropped alpha from the officially supported architectures
but it seems there is still some inofficial support:
https://cdimage.debian.org/cdimage/ports/12.0/alpha/

thx

[...]

-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

There will always be a question for which you do not know the correct answer.

[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]

[-- Attachment #2: Type: text/plain, Size: 251 bytes --]

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

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

* Re: [FFmpeg-devel] remove DEC Alpha DSP & support code
  2024-06-11  9:59         ` Michael Niedermayer
@ 2024-06-11 11:26           ` Rémi Denis-Courmont
  2024-06-11 13:39             ` Michael Niedermayer
  0 siblings, 1 reply; 18+ messages in thread
From: Rémi Denis-Courmont @ 2024-06-11 11:26 UTC (permalink / raw)
  To: FFmpeg development discussions and patches



Le 11 juin 2024 12:59:23 GMT+03:00, Michael Niedermayer <michael@niedermayer.cc> a écrit :
>On Mon, Jun 10, 2024 at 08:52:08PM -0400, Sean McGovern wrote:
>[...]
>> Are there any real concerns about the Alpha removal itself?
>> People still wanting to use FFmpeg for hardware that old can stick
>> with 7.0 (and fork it if they like -- that's the beauty of FOSS).
>
>Loosing security support, sounds not viable, so if alpha is removed
>the question what that would do to users (aka performance and does it
>work/build after the patchset) is still an open question ...

What supported distribution would people even be getting security support from? None of the mainstream distributions support Alpha anymore. So if (generic) you care about security support that architecture simply isn't viable, regardless of FFmpeg.

Also if security really is the concern, then using the supported plain C code of FFmpeg seems safer than using unmaintained SIMD optimisations.

>Also theres the question about how few people would be affected and what
>we gain from this?

Most likely zero people are affected. Unfortunately, I guess that the only way to know for sure is to remove the support and see if anyone complains about it then.

Another option is to post on the website news that Alpha will be removed if nobody steps up.  I don't think that's a very good use of the website's attention though.

>> It is worth mentioning that even Debian hasn't supported Alpha (along
>> with several other architectures) since release 8.0 in June 2018.
>
>I think debian dropped alpha from the officially supported architectures
>but it seems there is still some inofficial support:
>https://cdimage.debian.org/cdimage/ports/12.0/alpha/

To be precise, Alpha and HPPA were moved to Debian Ports in 2018 after they were dropped from the official archives. They have remained with only unstable support since then, which indicates that they are essentially moribund. Re-emerging from ports is infeasible for a purely legacy architecture.
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

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

* Re: [FFmpeg-devel] remove DEC Alpha DSP & support code
  2024-06-11 11:26           ` Rémi Denis-Courmont
@ 2024-06-11 13:39             ` Michael Niedermayer
  2024-06-11 14:08               ` Sebastian Ramacher
  2024-06-11 14:15               ` Vittorio Giovara
  0 siblings, 2 replies; 18+ messages in thread
From: Michael Niedermayer @ 2024-06-11 13:39 UTC (permalink / raw)
  To: FFmpeg development discussions and patches


[-- Attachment #1.1: Type: text/plain, Size: 3209 bytes --]

On Tue, Jun 11, 2024 at 02:26:37PM +0300, Rémi Denis-Courmont wrote:
> 
> 
> Le 11 juin 2024 12:59:23 GMT+03:00, Michael Niedermayer <michael@niedermayer.cc> a écrit :
> >On Mon, Jun 10, 2024 at 08:52:08PM -0400, Sean McGovern wrote:
> >[...]
> >> Are there any real concerns about the Alpha removal itself?
> >> People still wanting to use FFmpeg for hardware that old can stick
> >> with 7.0 (and fork it if they like -- that's the beauty of FOSS).
> >
> >Loosing security support, sounds not viable, so if alpha is removed
> >the question what that would do to users (aka performance and does it
> >work/build after the patchset) is still an open question ...
> 
> What supported distribution would people even be getting security support from? None of the mainstream distributions support Alpha anymore. So if (generic) you care about security support that architecture simply isn't viable, regardless of FFmpeg.
>

> Also if security really is the concern, then using the supported plain C code of FFmpeg seems safer than using unmaintained SIMD optimisations.

security wise, the risk for something like alpha is generic
architecture unspecific attacks. The probability of an attack specific to alpha SIMD is
very low even if there is an issue in that code, which in itself isnt that likely
because its unlikely anyone will design an attack specific for ffmpeg SIMD on alpha


> 
> >Also theres the question about how few people would be affected and what
> >we gain from this?
> 
> Most likely zero people are affected. Unfortunately, I guess that the only way to know for sure is to remove the support and see if anyone complains about it then.

I doubt thats a reliable way to get feedback


> 
> Another option is to post on the website news that Alpha will be removed if nobody steps up.  I don't think that's a very good use of the website's attention though.

If we want reliable statistics, it would be needed to have at build or runtime
a question to the user if they are ok with a "ping" to the server for usage
statistics. This could be limited to architectures we intend to remove

That said, did configure print any removal warning before this ?


> 
> >> It is worth mentioning that even Debian hasn't supported Alpha (along
> >> with several other architectures) since release 8.0 in June 2018.
> >
> >I think debian dropped alpha from the officially supported architectures
> >but it seems there is still some inofficial support:
> >https://cdimage.debian.org/cdimage/ports/12.0/alpha/
> 
> To be precise, Alpha and HPPA were moved to Debian Ports in 2018 after they were dropped from the official archives. They have remained with only unstable support since then, which indicates that they are essentially moribund. Re-emerging from ports is infeasible for a purely legacy architecture.

I dont know what the file is but it says
debian-12.0.0-alpha-NETINST-1.iso	2023-05-16 09:04

debian 12 is the latest release of debian AFAIK

thx

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

It is a danger to trust the dream we wish for rather than
the science we have, -- Dr. Kenneth Brown

[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]

[-- Attachment #2: Type: text/plain, Size: 251 bytes --]

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

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

* Re: [FFmpeg-devel] remove DEC Alpha DSP & support code
  2024-06-11 13:39             ` Michael Niedermayer
@ 2024-06-11 14:08               ` Sebastian Ramacher
  2024-06-11 14:15               ` Vittorio Giovara
  1 sibling, 0 replies; 18+ messages in thread
From: Sebastian Ramacher @ 2024-06-11 14:08 UTC (permalink / raw)
  To: ffmpeg-devel

On 2024-06-11 15:39:52 +0200, Michael Niedermayer wrote:
> > >> It is worth mentioning that even Debian hasn't supported Alpha (along
> > >> with several other architectures) since release 8.0 in June 2018.
> > >
> > >I think debian dropped alpha from the officially supported architectures
> > >but it seems there is still some inofficial support:
> > >https://cdimage.debian.org/cdimage/ports/12.0/alpha/
> > 
> > To be precise, Alpha and HPPA were moved to Debian Ports in 2018 after they were dropped from the official archives. They have remained with only unstable support since then, which indicates that they are essentially moribund. Re-emerging from ports is infeasible for a purely legacy architecture.
> 
> I dont know what the file is but it says
> debian-12.0.0-alpha-NETINST-1.iso	2023-05-16 09:04
> 
> debian 12 is the latest release of debian AFAIK

That does not render alpha to be a release architecture of Debian or to
be part of Debian. It is only available on ports which means no stable
releases, no security support, nothing. Architectures moving to ports
never made it back as an official supported architecture (at least
during the last 10 years that I was involved with the project).

Cheers
-- 
Sebastian Ramacher
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

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

* Re: [FFmpeg-devel] remove DEC Alpha DSP & support code
  2024-06-11 13:39             ` Michael Niedermayer
  2024-06-11 14:08               ` Sebastian Ramacher
@ 2024-06-11 14:15               ` Vittorio Giovara
  2024-06-13 16:32                 ` Sean McGovern
  2024-06-14  6:26                 ` Rémi Denis-Courmont
  1 sibling, 2 replies; 18+ messages in thread
From: Vittorio Giovara @ 2024-06-11 14:15 UTC (permalink / raw)
  To: FFmpeg development discussions and patches

On Tue, Jun 11, 2024 at 3:49 PM Michael Niedermayer <michael@niedermayer.cc>
wrote:

> On Tue, Jun 11, 2024 at 02:26:37PM +0300, Rémi Denis-Courmont wrote:
> >
> >
> > Le 11 juin 2024 12:59:23 GMT+03:00, Michael Niedermayer <
> michael@niedermayer.cc> a écrit :
> > >On Mon, Jun 10, 2024 at 08:52:08PM -0400, Sean McGovern wrote:
> > >[...]
> > >> Are there any real concerns about the Alpha removal itself?
> > >> People still wanting to use FFmpeg for hardware that old can stick
> > >> with 7.0 (and fork it if they like -- that's the beauty of FOSS).
> > >
> > >Loosing security support, sounds not viable, so if alpha is removed
> > >the question what that would do to users (aka performance and does it
> > >work/build after the patchset) is still an open question ...
> >
> > What supported distribution would people even be getting security
> support from? None of the mainstream distributions support Alpha anymore.
> So if (generic) you care about security support that architecture simply
> isn't viable, regardless of FFmpeg.
> >
>
> > Also if security really is the concern, then using the supported plain C
> code of FFmpeg seems safer than using unmaintained SIMD optimisations.
>
> security wise, the risk for something like alpha is generic
> architecture unspecific attacks. The probability of an attack specific to
> alpha SIMD is
> very low even if there is an issue in that code, which in itself isnt that
> likely
> because its unlikely anyone will design an attack specific for ffmpeg SIMD
> on alpha
>

Is there anyone actively vouching for this old arch? it's not the first
time that stuff gets removed and this won't be the last.
We should really be more proactive at removing cruft rather than dying on
hills about omgsecurity and omgusers (within reason of course).
-- 
Vittorio
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

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

* Re: [FFmpeg-devel] remove DEC Alpha DSP & support code
  2024-06-11 14:15               ` Vittorio Giovara
@ 2024-06-13 16:32                 ` Sean McGovern
  2024-06-13 21:17                   ` Vittorio Giovara
  2024-06-14  6:26                 ` Rémi Denis-Courmont
  1 sibling, 1 reply; 18+ messages in thread
From: Sean McGovern @ 2024-06-13 16:32 UTC (permalink / raw)
  To: FFmpeg development discussions and patches

On Tue, Jun 11, 2024, 10:15 Vittorio Giovara <vittorio.giovara@gmail.com>
wrote:

> On Tue, Jun 11, 2024 at 3:49 PM Michael Niedermayer <
> michael@niedermayer.cc>
> wrote:
>
> > On Tue, Jun 11, 2024 at 02:26:37PM +0300, Rémi Denis-Courmont wrote:
> > >
> > >
> > > Le 11 juin 2024 12:59:23 GMT+03:00, Michael Niedermayer <
> > michael@niedermayer.cc> a écrit :
> > > >On Mon, Jun 10, 2024 at 08:52:08PM -0400, Sean McGovern wrote:
> > > >[...]
> > > >> Are there any real concerns about the Alpha removal itself?
> > > >> People still wanting to use FFmpeg for hardware that old can stick
> > > >> with 7.0 (and fork it if they like -- that's the beauty of FOSS).
> > > >
> > > >Loosing security support, sounds not viable, so if alpha is removed
> > > >the question what that would do to users (aka performance and does it
> > > >work/build after the patchset) is still an open question ...
> > >
> > > What supported distribution would people even be getting security
> > support from? None of the mainstream distributions support Alpha anymore.
> > So if (generic) you care about security support that architecture simply
> > isn't viable, regardless of FFmpeg.
> > >
> >
> > > Also if security really is the concern, then using the supported plain
> C
> > code of FFmpeg seems safer than using unmaintained SIMD optimisations.
> >
> > security wise, the risk for something like alpha is generic
> > architecture unspecific attacks. The probability of an attack specific to
> > alpha SIMD is
> > very low even if there is an issue in that code, which in itself isnt
> that
> > likely
> > because its unlikely anyone will design an attack specific for ffmpeg
> SIMD
> > on alpha
> >
>
> Is there anyone actively vouching for this old arch? it's not the first
> time that stuff gets removed and this won't be the last.
> We should really be more proactive at removing cruft rather than dying on
> hills about omgsecurity and omgusers (within reason of course).
> --
> Vittorio
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
>

Ping.

-- Sean McGovern

>
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

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

* Re: [FFmpeg-devel] remove DEC Alpha DSP & support code
  2024-06-13 16:32                 ` Sean McGovern
@ 2024-06-13 21:17                   ` Vittorio Giovara
  0 siblings, 0 replies; 18+ messages in thread
From: Vittorio Giovara @ 2024-06-13 21:17 UTC (permalink / raw)
  To: FFmpeg development discussions and patches

On Thu, Jun 13, 2024 at 6:32 PM Sean McGovern <gseanmcg@gmail.com> wrote:

> On Tue, Jun 11, 2024, 10:15 Vittorio Giovara <vittorio.giovara@gmail.com>
> wrote:
>
> > On Tue, Jun 11, 2024 at 3:49 PM Michael Niedermayer <
> > michael@niedermayer.cc>
> > wrote:
> >
> > > On Tue, Jun 11, 2024 at 02:26:37PM +0300, Rémi Denis-Courmont wrote:
> > > >
> > > >
> > > > Le 11 juin 2024 12:59:23 GMT+03:00, Michael Niedermayer <
> > > michael@niedermayer.cc> a écrit :
> > > > >On Mon, Jun 10, 2024 at 08:52:08PM -0400, Sean McGovern wrote:
> > > > >[...]
> > > > >> Are there any real concerns about the Alpha removal itself?
> > > > >> People still wanting to use FFmpeg for hardware that old can stick
> > > > >> with 7.0 (and fork it if they like -- that's the beauty of FOSS).
> > > > >
> > > > >Loosing security support, sounds not viable, so if alpha is removed
> > > > >the question what that would do to users (aka performance and does
> it
> > > > >work/build after the patchset) is still an open question ...
> > > >
> > > > What supported distribution would people even be getting security
> > > support from? None of the mainstream distributions support Alpha
> anymore.
> > > So if (generic) you care about security support that architecture
> simply
> > > isn't viable, regardless of FFmpeg.
> > > >
> > >
> > > > Also if security really is the concern, then using the supported
> plain
> > C
> > > code of FFmpeg seems safer than using unmaintained SIMD optimisations.
> > >
> > > security wise, the risk for something like alpha is generic
> > > architecture unspecific attacks. The probability of an attack specific
> to
> > > alpha SIMD is
> > > very low even if there is an issue in that code, which in itself isnt
> > that
> > > likely
> > > because its unlikely anyone will design an attack specific for ffmpeg
> > SIMD
> > > on alpha
> > >
> >
> > Is there anyone actively vouching for this old arch? it's not the first
> > time that stuff gets removed and this won't be the last.
> > We should really be more proactive at removing cruft rather than dying on
> > hills about omgsecurity and omgusers (within reason of course).
> > --
> > Vittorio
> > _______________________________________________
> > ffmpeg-devel mailing list
> > ffmpeg-devel@ffmpeg.org
> > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> >
> > To unsubscribe, visit link above, or email
> > ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
> >
>
> Ping.
>
> -- Sean McGovern
>

Pushed, thanks.
-- 
Vittorio
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

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

* Re: [FFmpeg-devel] remove DEC Alpha DSP & support code
  2024-06-11 14:15               ` Vittorio Giovara
  2024-06-13 16:32                 ` Sean McGovern
@ 2024-06-14  6:26                 ` Rémi Denis-Courmont
  1 sibling, 0 replies; 18+ messages in thread
From: Rémi Denis-Courmont @ 2024-06-14  6:26 UTC (permalink / raw)
  To: FFmpeg development discussions and patches



Le 11 juin 2024 17:15:11 GMT+03:00, Vittorio Giovara <vittorio.giovara@gmail.com> a écrit :
>Is there anyone actively vouching for this old arch?

The architecture does not participate in the common libavutil CPU detection code, and therefore also can't get tested by checkasm. So nobody can credibly vouch for this.

FWIW, it seems that the original author has moved on from OSS, having notably stepped down from Debian.
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

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

end of thread, other threads:[~2024-06-14  6:27 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-06-09 20:08 [FFmpeg-devel] remove DEC Alpha DSP & support code Sean McGovern
2024-06-10 11:57 ` Michael Niedermayer
2024-06-10 12:56   ` Rémi Denis-Courmont
2024-06-10 13:07     ` Andreas Rheinhardt
2024-06-10 13:14       ` Rémi Denis-Courmont
2024-06-11  9:35     ` Michael Niedermayer
2024-06-10 12:29 ` Michael Niedermayer
2024-06-10 12:42   ` Vittorio Giovara
2024-06-11  0:17     ` Michael Niedermayer
2024-06-11  0:52       ` Sean McGovern
2024-06-11  9:59         ` Michael Niedermayer
2024-06-11 11:26           ` Rémi Denis-Courmont
2024-06-11 13:39             ` Michael Niedermayer
2024-06-11 14:08               ` Sebastian Ramacher
2024-06-11 14:15               ` Vittorio Giovara
2024-06-13 16:32                 ` Sean McGovern
2024-06-13 21:17                   ` Vittorio Giovara
2024-06-14  6:26                 ` Rémi Denis-Courmont

Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \
		ffmpegdev@gitmailbox.com
	public-inbox-index ffmpegdev

Example config snippet for mirrors.


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git