Merge commit 'c7f7bfc9e3a3150ba72bc34366c13fb2210c66ac'

* commit 'c7f7bfc9e3a3150ba72bc34366c13fb2210c66ac':
  Remove all Alpha architecture optimizations

Conflicts:
	libavcodec/alpha/asm.h
	libavcodec/alpha/dsputil_alpha.c
	libavcodec/alpha/dsputil_alpha.h
	libavcodec/alpha/dsputil_alpha_asm.S
	libavcodec/alpha/hpeldsp_alpha.c
	libavcodec/alpha/hpeldsp_alpha.h
	libavcodec/alpha/hpeldsp_alpha_asm.S
	libavcodec/alpha/motion_est_alpha.c
	libavcodec/alpha/motion_est_mvi_asm.S
	libavcodec/alpha/mpegvideo_alpha.c
	libavcodec/alpha/regdef.h
	libavcodec/alpha/simple_idct_alpha.c

We have a qemu based fate alpha client. And various failures
on alpha have previously pointed to issues in generic C code.
Thus IMHO it makes sense to keep alpha code as long as someone
is willing to do the little bit of maintaince it needs

Merged-by: Michael Niedermayer <michaelni@gmx.at>
pull/48/head
Michael Niedermayer 11 years ago
commit e25ed2608c
  1. 2
      libavcodec/avcodec.h
  2. 6
      libavcodec/dct-test.c
  3. 5
      libavcodec/msmpeg4.c
  4. 2
      libavcodec/options_table.h
  5. 3
      libavcodec/version.h

@ -2589,7 +2589,9 @@ typedef struct AVCodecContext {
#define FF_IDCT_SIMPLEVIS 18 #define FF_IDCT_SIMPLEVIS 18
#define FF_IDCT_FAAN 20 #define FF_IDCT_FAAN 20
#define FF_IDCT_SIMPLENEON 22 #define FF_IDCT_SIMPLENEON 22
#if FF_API_ARCH_ALPHA
#define FF_IDCT_SIMPLEALPHA 23 #define FF_IDCT_SIMPLEALPHA 23
#endif
/** /**
* bits per sample/pixel from the demuxer (needed for huffyuv). * bits per sample/pixel from the demuxer (needed for huffyuv).

@ -61,8 +61,6 @@ void ff_simple_idct_armv5te(int16_t *data);
void ff_simple_idct_armv6(int16_t *data); void ff_simple_idct_armv6(int16_t *data);
void ff_simple_idct_neon(int16_t *data); void ff_simple_idct_neon(int16_t *data);
void ff_simple_idct_axp(int16_t *data);
struct algo { struct algo {
const char *name; const char *name;
void (*func)(int16_t *block); void (*func)(int16_t *block);
@ -156,10 +154,6 @@ static const struct algo idct_tab[] = {
{ "SIMPLE-NEON", ff_simple_idct_neon, PARTTRANS_PERM, AV_CPU_FLAG_NEON }, { "SIMPLE-NEON", ff_simple_idct_neon, PARTTRANS_PERM, AV_CPU_FLAG_NEON },
#endif #endif
#if ARCH_ALPHA
{ "SIMPLE-ALPHA", ff_simple_idct_axp, NO_PERM },
#endif
{ 0 } { 0 }
}; };

@ -240,10 +240,7 @@ int ff_msmpeg4_pred_dc(MpegEncContext *s, int n,
: "%eax", "%edx" : "%eax", "%edx"
); );
#else #else
/* #elif ARCH_ALPHA */ /* Divisions are costly everywhere; optimize the most common case. */
/* Divisions are extremely costly on Alpha; optimize the most
common case. But they are costly everywhere...
*/
if (scale == 8) { if (scale == 8) {
a = (a + (8 >> 1)) / 8; a = (a + (8 >> 1)) / 8;
b = (b + (8 >> 1)) / 8; b = (b + (8 >> 1)) / 8;

@ -201,7 +201,9 @@ static const AVOption avcodec_options[] = {
{"simplearmv5te", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = FF_IDCT_SIMPLEARMV5TE }, INT_MIN, INT_MAX, V|E|D, "idct"}, {"simplearmv5te", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = FF_IDCT_SIMPLEARMV5TE }, INT_MIN, INT_MAX, V|E|D, "idct"},
{"simplearmv6", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = FF_IDCT_SIMPLEARMV6 }, INT_MIN, INT_MAX, V|E|D, "idct"}, {"simplearmv6", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = FF_IDCT_SIMPLEARMV6 }, INT_MIN, INT_MAX, V|E|D, "idct"},
{"simpleneon", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = FF_IDCT_SIMPLENEON }, INT_MIN, INT_MAX, V|E|D, "idct"}, {"simpleneon", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = FF_IDCT_SIMPLENEON }, INT_MIN, INT_MAX, V|E|D, "idct"},
#if FF_API_ARCH_ALPHA
{"simplealpha", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = FF_IDCT_SIMPLEALPHA }, INT_MIN, INT_MAX, V|E|D, "idct"}, {"simplealpha", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = FF_IDCT_SIMPLEALPHA }, INT_MIN, INT_MAX, V|E|D, "idct"},
#endif
{"ipp", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = FF_IDCT_IPP }, INT_MIN, INT_MAX, V|E|D, "idct"}, {"ipp", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = FF_IDCT_IPP }, INT_MIN, INT_MAX, V|E|D, "idct"},
{"xvidmmx", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = FF_IDCT_XVIDMMX }, INT_MIN, INT_MAX, V|E|D, "idct"}, {"xvidmmx", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = FF_IDCT_XVIDMMX }, INT_MIN, INT_MAX, V|E|D, "idct"},
{"faani", "floating point AAN IDCT", 0, AV_OPT_TYPE_CONST, {.i64 = FF_IDCT_FAAN }, INT_MIN, INT_MAX, V|D|E, "idct"}, {"faani", "floating point AAN IDCT", 0, AV_OPT_TYPE_CONST, {.i64 = FF_IDCT_FAAN }, INT_MIN, INT_MAX, V|D|E, "idct"},

@ -114,5 +114,8 @@
#ifndef FF_API_CODEC_PKT #ifndef FF_API_CODEC_PKT
#define FF_API_CODEC_PKT (LIBAVCODEC_VERSION_MAJOR < 56) #define FF_API_CODEC_PKT (LIBAVCODEC_VERSION_MAJOR < 56)
#endif #endif
#ifndef FF_API_ARCH_ALPHA
#define FF_API_ARCH_ALPHA (LIBAVCODEC_VERSION_MAJOR < 56)
#endif
#endif /* AVCODEC_VERSION_H */ #endif /* AVCODEC_VERSION_H */

Loading…
Cancel
Save