[FFmpeg-cvslog] Merge commit '0871e2337777d9161e7f3554bcad19dabc9e15e1'

James Almer git at videolan.org
Mon Oct 23 21:40:02 EEST 2017


ffmpeg | branch: master | James Almer <jamrial at gmail.com> | Mon Oct 23 15:04:19 2017 -0300| [c381f6a483e00ab8bfa4f777284b89acdad6dd94] | committer: James Almer

Merge commit '0871e2337777d9161e7f3554bcad19dabc9e15e1'

* commit '0871e2337777d9161e7f3554bcad19dabc9e15e1':
  lavc: Drop deprecated architectures symbols

Merged-by: James Almer <jamrial at gmail.com>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=c381f6a483e00ab8bfa4f777284b89acdad6dd94
---

 libavcodec/alpha/idctdsp_alpha.c | 3 +--
 libavcodec/avcodec.h             | 9 ---------
 libavcodec/avdct.c               | 6 ------
 libavcodec/options_table.h       | 6 ------
 libavcodec/version.h             | 9 ---------
 5 files changed, 1 insertion(+), 32 deletions(-)

diff --git a/libavcodec/alpha/idctdsp_alpha.c b/libavcodec/alpha/idctdsp_alpha.c
index 1923ebbc5f..bd43842535 100644
--- a/libavcodec/alpha/idctdsp_alpha.c
+++ b/libavcodec/alpha/idctdsp_alpha.c
@@ -118,8 +118,7 @@ av_cold void ff_idctdsp_init_alpha(IDCTDSPContext *c, AVCodecContext *avctx,
     add_pixels_clamped_axp_p = c->add_pixels_clamped;
 
     if (!high_bit_depth && !avctx->lowres &&
-        (avctx->idct_algo == FF_IDCT_AUTO ||
-         avctx->idct_algo == FF_IDCT_SIMPLEALPHA)) {
+        (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/avcodec.h b/libavcodec/avcodec.h
index 9581bffd20..c1090456f5 100644
--- a/libavcodec/avcodec.h
+++ b/libavcodec/avcodec.h
@@ -3097,9 +3097,6 @@ typedef struct AVCodecContext {
 #define FF_IDCT_SIMPLEMMX     3
 #define FF_IDCT_ARM           7
 #define FF_IDCT_ALTIVEC       8
-#if FF_API_ARCH_SH4
-#define FF_IDCT_SH4           9
-#endif
 #define FF_IDCT_SIMPLEARM     10
 #if FF_API_UNUSED_MEMBERS
 #define FF_IDCT_IPP           13
@@ -3110,14 +3107,8 @@ typedef struct AVCodecContext {
 #endif /* FF_API_IDCT_XVIDMMX */
 #define FF_IDCT_SIMPLEARMV5TE 16
 #define FF_IDCT_SIMPLEARMV6   17
-#if FF_API_ARCH_SPARC
-#define FF_IDCT_SIMPLEVIS     18
-#endif
 #define FF_IDCT_FAAN          20
 #define FF_IDCT_SIMPLENEON    22
-#if FF_API_ARCH_ALPHA
-#define FF_IDCT_SIMPLEALPHA   23
-#endif
 #define FF_IDCT_NONE          24 /* Used by XvMC to extract IDCT coefficients with FF_IDCT_PERM_NONE */
 #define FF_IDCT_SIMPLEAUTO    128
 
diff --git a/libavcodec/avdct.c b/libavcodec/avdct.c
index 80aca8872b..a9a43cc18a 100644
--- a/libavcodec/avdct.c
+++ b/libavcodec/avdct.c
@@ -48,16 +48,10 @@ static const AVOption avdct_options[] = {
 {"simplemmx", "experimental / for debugging", 0, AV_OPT_TYPE_CONST, {.i64 = FF_IDCT_SIMPLEMMX }, INT_MIN, INT_MAX, V|E|D, "idct"},
 {"arm", "experimental / for debugging", 0, AV_OPT_TYPE_CONST, {.i64 = FF_IDCT_ARM }, INT_MIN, INT_MAX, V|E|D, "idct"},
 {"altivec", "experimental / for debugging", 0, AV_OPT_TYPE_CONST, {.i64 = FF_IDCT_ALTIVEC }, INT_MIN, INT_MAX, V|E|D, "idct"},
-#if FF_API_ARCH_SH4
-{"sh4", "experimental / for debugging", 0, AV_OPT_TYPE_CONST, {.i64 = FF_IDCT_SH4 }, INT_MIN, INT_MAX, V|E|D, "idct"},
-#endif
 {"simplearm", "experimental / for debugging", 0, AV_OPT_TYPE_CONST, {.i64 = FF_IDCT_SIMPLEARM }, INT_MIN, INT_MAX, V|E|D, "idct"},
 {"simplearmv5te", "experimental / for debugging", 0, AV_OPT_TYPE_CONST, {.i64 = FF_IDCT_SIMPLEARMV5TE }, INT_MIN, INT_MAX, V|E|D, "idct"},
 {"simplearmv6", "experimental / for debugging", 0, AV_OPT_TYPE_CONST, {.i64 = FF_IDCT_SIMPLEARMV6 }, INT_MIN, INT_MAX, V|E|D, "idct"},
 {"simpleneon", "experimental / for debugging", 0, AV_OPT_TYPE_CONST, {.i64 = FF_IDCT_SIMPLENEON }, INT_MIN, INT_MAX, V|E|D, "idct"},
-#if FF_API_ARCH_ALPHA
-{"simplealpha", "experimental / for debugging", 0, AV_OPT_TYPE_CONST, {.i64 = FF_IDCT_SIMPLEALPHA }, INT_MIN, INT_MAX, V|E|D, "idct"},
-#endif
 #if FF_API_UNUSED_MEMBERS
 {"ipp", "experimental / for debugging", 0, AV_OPT_TYPE_CONST, {.i64 = FF_IDCT_IPP }, INT_MIN, INT_MAX, V|E|D, "idct"},
 #endif
diff --git a/libavcodec/options_table.h b/libavcodec/options_table.h
index 7a3e765d88..c40b3e61b4 100644
--- a/libavcodec/options_table.h
+++ b/libavcodec/options_table.h
@@ -219,16 +219,10 @@ static const AVOption avcodec_options[] = {
 {"simplemmx", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = FF_IDCT_SIMPLEMMX }, INT_MIN, INT_MAX, V|E|D, "idct"},
 {"arm", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = FF_IDCT_ARM }, INT_MIN, INT_MAX, V|E|D, "idct"},
 {"altivec", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = FF_IDCT_ALTIVEC }, INT_MIN, INT_MAX, V|E|D, "idct"},
-#if FF_API_ARCH_SH4
-{"sh4", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = FF_IDCT_SH4 }, INT_MIN, INT_MAX, V|E|D, "idct"},
-#endif
 {"simplearm", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = FF_IDCT_SIMPLEARM }, 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"},
 {"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"},
-#endif
 #if FF_API_UNUSED_MEMBERS
 {"ipp", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = FF_IDCT_IPP }, INT_MIN, INT_MAX, V|E|D, "idct"},
 #endif /* FF_API_UNUSED_MEMBERS */
diff --git a/libavcodec/version.h b/libavcodec/version.h
index 59f8d3c7cd..2d85e25a26 100644
--- a/libavcodec/version.h
+++ b/libavcodec/version.h
@@ -57,9 +57,6 @@
 #ifndef FF_API_DEBUG_MV
 #define FF_API_DEBUG_MV          (LIBAVCODEC_VERSION_MAJOR < 58)
 #endif
-#ifndef FF_API_ARCH_ALPHA
-#define FF_API_ARCH_ALPHA        (LIBAVCODEC_VERSION_MAJOR < 58)
-#endif
 #ifndef FF_API_XVMC
 #define FF_API_XVMC              (LIBAVCODEC_VERSION_MAJOR < 58)
 #endif
@@ -81,12 +78,6 @@
 #ifndef FF_API_EMU_EDGE
 #define FF_API_EMU_EDGE          (LIBAVCODEC_VERSION_MAJOR < 58)
 #endif
-#ifndef FF_API_ARCH_SH4
-#define FF_API_ARCH_SH4          (LIBAVCODEC_VERSION_MAJOR < 58)
-#endif
-#ifndef FF_API_ARCH_SPARC
-#define FF_API_ARCH_SPARC        (LIBAVCODEC_VERSION_MAJOR < 58)
-#endif
 #ifndef FF_API_UNUSED_MEMBERS
 #define FF_API_UNUSED_MEMBERS    (LIBAVCODEC_VERSION_MAJOR < 58)
 #endif


======================================================================

diff --cc libavcodec/alpha/idctdsp_alpha.c
index 1923ebbc5f,0000000000..bd43842535
mode 100644,000000..100644
--- a/libavcodec/alpha/idctdsp_alpha.c
+++ b/libavcodec/alpha/idctdsp_alpha.c
@@@ -1,127 -1,0 +1,126 @@@
 +/*
 + * Copyright (c) 2002 Falk Hueffner <falk at 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/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 ||
-          avctx->idct_algo == FF_IDCT_SIMPLEALPHA)) {
++        (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 --cc libavcodec/avcodec.h
index 9581bffd20,1eb3ac6f4a..c1090456f5
--- a/libavcodec/avcodec.h
+++ b/libavcodec/avcodec.h
@@@ -3110,16 -2744,8 +3107,10 @@@ typedef struct AVCodecContext 
  #endif /* FF_API_IDCT_XVIDMMX */
  #define FF_IDCT_SIMPLEARMV5TE 16
  #define FF_IDCT_SIMPLEARMV6   17
- #if FF_API_ARCH_SPARC
- #define FF_IDCT_SIMPLEVIS     18
- #endif
  #define FF_IDCT_FAAN          20
  #define FF_IDCT_SIMPLENEON    22
- #if FF_API_ARCH_ALPHA
- #define FF_IDCT_SIMPLEALPHA   23
- #endif
 +#define FF_IDCT_NONE          24 /* Used by XvMC to extract IDCT coefficients with FF_IDCT_PERM_NONE */
 +#define FF_IDCT_SIMPLEAUTO    128
  
      /**
       * bits per sample/pixel from the demuxer (needed for huffyuv).
diff --cc libavcodec/avdct.c
index 80aca8872b,0000000000..a9a43cc18a
mode 100644,000000..100644
--- a/libavcodec/avdct.c
+++ b/libavcodec/avdct.c
@@@ -1,139 -1,0 +1,133 @@@
 +/*
 + * Copyright (c) 2014 Michael Niedermayer <michaelni at gmx.at>
 + *
 + * 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 "avcodec.h"
 +#include "idctdsp.h"
 +#include "fdctdsp.h"
 +#include "pixblockdsp.h"
 +#include "avdct.h"
 +
 +#define OFFSET(x) offsetof(AVDCT,x)
 +#define DEFAULT 0 //should be NAN but it does not work as it is not a constant in glibc as required by ANSI/ISO C
 +//these names are too long to be readable
 +#define V AV_OPT_FLAG_VIDEO_PARAM
 +#define A AV_OPT_FLAG_AUDIO_PARAM
 +#define E AV_OPT_FLAG_ENCODING_PARAM
 +#define D AV_OPT_FLAG_DECODING_PARAM
 +
 +static const AVOption avdct_options[] = {
 +{"dct", "DCT algorithm", OFFSET(dct_algo), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, 0, INT_MAX, V|E, "dct"},
 +{"auto", "autoselect a good one", 0, AV_OPT_TYPE_CONST, {.i64 = FF_DCT_AUTO }, INT_MIN, INT_MAX, V|E, "dct"},
 +{"fastint", "fast integer (experimental / for debugging)", 0, AV_OPT_TYPE_CONST, {.i64 = FF_DCT_FASTINT }, INT_MIN, INT_MAX, V|E, "dct"},
 +{"int", "accurate integer", 0, AV_OPT_TYPE_CONST, {.i64 = FF_DCT_INT }, INT_MIN, INT_MAX, V|E, "dct"},
 +{"mmx", "experimental / for debugging", 0, AV_OPT_TYPE_CONST, {.i64 = FF_DCT_MMX }, INT_MIN, INT_MAX, V|E, "dct"},
 +{"altivec", "experimental / for debugging", 0, AV_OPT_TYPE_CONST, {.i64 = FF_DCT_ALTIVEC }, INT_MIN, INT_MAX, V|E, "dct"},
 +{"faan", "floating point AAN DCT (experimental / for debugging)", 0, AV_OPT_TYPE_CONST, {.i64 = FF_DCT_FAAN }, INT_MIN, INT_MAX, V|E, "dct"},
 +
 +{"idct", "select IDCT implementation", OFFSET(idct_algo), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, 0, INT_MAX, V|E|D, "idct"},
 +{"auto", "autoselect a good one", 0, AV_OPT_TYPE_CONST, {.i64 = FF_IDCT_AUTO }, INT_MIN, INT_MAX, V|E|D, "idct"},
 +{"int", "experimental / for debugging", 0, AV_OPT_TYPE_CONST, {.i64 = FF_IDCT_INT }, INT_MIN, INT_MAX, V|E|D, "idct"},
 +{"simple", "experimental / for debugging", 0, AV_OPT_TYPE_CONST, {.i64 = FF_IDCT_SIMPLE }, INT_MIN, INT_MAX, V|E|D, "idct"},
 +{"simplemmx", "experimental / for debugging", 0, AV_OPT_TYPE_CONST, {.i64 = FF_IDCT_SIMPLEMMX }, INT_MIN, INT_MAX, V|E|D, "idct"},
 +{"arm", "experimental / for debugging", 0, AV_OPT_TYPE_CONST, {.i64 = FF_IDCT_ARM }, INT_MIN, INT_MAX, V|E|D, "idct"},
 +{"altivec", "experimental / for debugging", 0, AV_OPT_TYPE_CONST, {.i64 = FF_IDCT_ALTIVEC }, INT_MIN, INT_MAX, V|E|D, "idct"},
- #if FF_API_ARCH_SH4
- {"sh4", "experimental / for debugging", 0, AV_OPT_TYPE_CONST, {.i64 = FF_IDCT_SH4 }, INT_MIN, INT_MAX, V|E|D, "idct"},
- #endif
 +{"simplearm", "experimental / for debugging", 0, AV_OPT_TYPE_CONST, {.i64 = FF_IDCT_SIMPLEARM }, INT_MIN, INT_MAX, V|E|D, "idct"},
 +{"simplearmv5te", "experimental / for debugging", 0, AV_OPT_TYPE_CONST, {.i64 = FF_IDCT_SIMPLEARMV5TE }, INT_MIN, INT_MAX, V|E|D, "idct"},
 +{"simplearmv6", "experimental / for debugging", 0, AV_OPT_TYPE_CONST, {.i64 = FF_IDCT_SIMPLEARMV6 }, INT_MIN, INT_MAX, V|E|D, "idct"},
 +{"simpleneon", "experimental / for debugging", 0, AV_OPT_TYPE_CONST, {.i64 = FF_IDCT_SIMPLENEON }, INT_MIN, INT_MAX, V|E|D, "idct"},
- #if FF_API_ARCH_ALPHA
- {"simplealpha", "experimental / for debugging", 0, AV_OPT_TYPE_CONST, {.i64 = FF_IDCT_SIMPLEALPHA }, INT_MIN, INT_MAX, V|E|D, "idct"},
- #endif
 +#if FF_API_UNUSED_MEMBERS
 +{"ipp", "experimental / for debugging", 0, AV_OPT_TYPE_CONST, {.i64 = FF_IDCT_IPP }, INT_MIN, INT_MAX, V|E|D, "idct"},
 +#endif
 +{"xvid", "experimental / for debugging", 0, AV_OPT_TYPE_CONST, {.i64 = FF_IDCT_XVID }, INT_MIN, INT_MAX, V|E|D, "idct"},
 +{"xvidmmx", "experimental / for debugging", 0, AV_OPT_TYPE_CONST, {.i64 = FF_IDCT_XVID }, INT_MIN, INT_MAX, V|E|D, "idct"},
 +{"faani", "floating point AAN IDCT (experimental / for debugging)", 0, AV_OPT_TYPE_CONST, {.i64 = FF_IDCT_FAAN }, INT_MIN, INT_MAX, V|D|E, "idct"},
 +{"simpleauto", "experimental / for debugging", 0, AV_OPT_TYPE_CONST, {.i64 = FF_IDCT_SIMPLEAUTO }, INT_MIN, INT_MAX, V|E|D, "idct"},
 +
 +{"bits_per_sample", "", OFFSET(bits_per_sample), AV_OPT_TYPE_INT, {.i64 = 8 }, 0, 14, 0,},
 +{NULL},
 +};
 +
 +static const AVClass avdct_class = {
 +    .class_name              = "AVDCT",
 +    .option                  = avdct_options,
 +    .version                 = LIBAVUTIL_VERSION_INT,
 +};
 +
 +const AVClass *avcodec_dct_get_class(void)
 +{
 +    return &avdct_class;
 +}
 +
 +AVDCT *avcodec_dct_alloc(void)
 +{
 +    AVDCT *dsp = av_mallocz(sizeof(AVDCT));
 +
 +    if (!dsp)
 +        return NULL;
 +
 +    dsp->av_class = &avdct_class;
 +    av_opt_set_defaults(dsp);
 +
 +    return dsp;
 +}
 +
 +int avcodec_dct_init(AVDCT *dsp)
 +{
 +    AVCodecContext *avctx = avcodec_alloc_context3(NULL);
 +
 +    if (!avctx)
 +        return AVERROR(ENOMEM);
 +
 +    avctx->idct_algo = dsp->idct_algo;
 +    avctx->dct_algo  = dsp->dct_algo;
 +    avctx->bits_per_raw_sample = dsp->bits_per_sample;
 +
 +#define COPY(src, name) memcpy(&dsp->name, &src.name, sizeof(dsp->name))
 +
 +#if CONFIG_IDCTDSP
 +    {
 +        IDCTDSPContext idsp;
 +        ff_idctdsp_init(&idsp, avctx);
 +        COPY(idsp, idct);
 +        COPY(idsp, idct_permutation);
 +    }
 +#endif
 +
 +#if CONFIG_FDCTDSP
 +    {
 +        FDCTDSPContext fdsp;
 +        ff_fdctdsp_init(&fdsp, avctx);
 +        COPY(fdsp, fdct);
 +    }
 +#endif
 +
 +#if CONFIG_PIXBLOCKDSP
 +    {
 +        PixblockDSPContext pdsp;
 +        ff_pixblockdsp_init(&pdsp, avctx);
 +        COPY(pdsp, get_pixels);
 +    }
 +#endif
 +
 +    avcodec_close(avctx);
 +    av_free(avctx);
 +
 +    return 0;
 +}
diff --cc libavcodec/version.h
index 59f8d3c7cd,6f69f2d59c..2d85e25a26
--- a/libavcodec/version.h
+++ b/libavcodec/version.h
@@@ -45,21 -45,8 +45,18 @@@
   * FF_API_* defines may be placed below to indicate public API that will be
   * dropped at a future version bump. The defines themselves are not part of
   * the public API and may change, break or disappear at any time.
 + *
 + * @note, when bumping the major version it is recommended to manually
 + * disable each FF_API_* in its own commit instead of disabling them all
 + * at once through the bump. This improves the git bisect-ability of the change.
   */
  
 +#ifndef FF_API_LOWRES
 +#define FF_API_LOWRES            (LIBAVCODEC_VERSION_MAJOR < 59)
 +#endif
 +#ifndef FF_API_DEBUG_MV
 +#define FF_API_DEBUG_MV          (LIBAVCODEC_VERSION_MAJOR < 58)
 +#endif
- #ifndef FF_API_ARCH_ALPHA
- #define FF_API_ARCH_ALPHA        (LIBAVCODEC_VERSION_MAJOR < 58)
- #endif
  #ifndef FF_API_XVMC
  #define FF_API_XVMC              (LIBAVCODEC_VERSION_MAJOR < 58)
  #endif



More information about the ffmpeg-cvslog mailing list