Merge commit 'f9279ee74936b4990fc46287c27816ef828cc06c'
authorMichael Niedermayer <michaelni@gmx.at>
Sat, 22 Mar 2014 21:23:04 +0000 (22:23 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Sat, 22 Mar 2014 21:23:04 +0000 (22:23 +0100)
* commit 'f9279ee74936b4990fc46287c27816ef828cc06c':
  dsputil: Move ff_zigzag_direct and ff_crop_tab declarations to mathops.h

Conflicts:
libavcodec/imgconvert.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
14 files changed:
1  2 
libavcodec/bfin/vp3dsp_init.c
libavcodec/bit_depth_template.c
libavcodec/cavsdsp.c
libavcodec/dsputil.h
libavcodec/imgconvert.c
libavcodec/indeo4data.h
libavcodec/mathops.h
libavcodec/mathtables.c
libavcodec/mss3.c
libavcodec/pgssubdec.c
libavcodec/rv30dsp.c
libavcodec/rv40dsp.c
libavcodec/vp3.c
libavcodec/vp8dsp.c

Simple merge
@@@ -16,8 -16,8 +16,9 @@@
   * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
   */
  
+ #include "mathops.h"
  #include "rnd_avg.h"
 +#include "libavutil/intreadwrite.h"
  
  #ifndef BIT_DEPTH
  #define BIT_DEPTH 8
Simple merge
Simple merge
   */
  
  #include "avcodec.h"
- #include "dsputil.h"
  #include "imgconvert.h"
  #include "internal.h"
+ #include "mathops.h"
 +#include "libavutil/avassert.h"
  #include "libavutil/colorspace.h"
  #include "libavutil/common.h"
  #include "libavutil/pixdesc.h"
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
@@@ -26,8 -26,8 +26,9 @@@
  
  #include "avcodec.h"
  #include "h264qpel.h"
+ #include "mathops.h"
  #include "rv34dsp.h"
 +#include "libavutil/avassert.h"
  #include "libavutil/common.h"
  
  #define RV40_LOWPASS(OPNAME, OP) \
Simple merge
   * VP8 compatible video decoder
   */
  
- #include "dsputil.h"
+ #include "mathops.h"
  #include "vp8dsp.h"
  #include "libavutil/common.h"
 +#include "libavutil/intreadwrite.h"
 +
 +#define MK_IDCT_DC_ADD4_C(name) \
 +static void name ## _idct_dc_add4uv_c(uint8_t *dst, int16_t block[4][16], ptrdiff_t stride)\
 +{\
 +    name ## _idct_dc_add_c(dst+stride*0+0, block[0], stride);\
 +    name ## _idct_dc_add_c(dst+stride*0+4, block[1], stride);\
 +    name ## _idct_dc_add_c(dst+stride*4+0, block[2], stride);\
 +    name ## _idct_dc_add_c(dst+stride*4+4, block[3], stride);\
 +}\
 +\
 +static void name ## _idct_dc_add4y_c(uint8_t *dst, int16_t block[4][16], ptrdiff_t stride)\
 +{\
 +    name ## _idct_dc_add_c(dst+ 0, block[0], stride);\
 +    name ## _idct_dc_add_c(dst+ 4, block[1], stride);\
 +    name ## _idct_dc_add_c(dst+ 8, block[2], stride);\
 +    name ## _idct_dc_add_c(dst+12, block[3], stride);\
 +}
 +
 +#if CONFIG_VP7_DECODER
 +static void vp7_luma_dc_wht_c(int16_t block[4][4][16], int16_t dc[16])
 +{
 +    int i, a1, b1, c1, d1;
 +    int16_t tmp[16];
 +
 +    for (i = 0; i < 4; i++) {
 +        a1 = (dc[i*4+0] + dc[i*4+2]) * 23170;
 +        b1 = (dc[i*4+0] - dc[i*4+2]) * 23170;
 +        c1 = dc[i*4+1] * 12540 - dc[i*4+3] * 30274;
 +        d1 = dc[i*4+1] * 30274 + dc[i*4+3] * 12540;
 +        tmp[i*4+0] = (a1 + d1) >> 14;
 +        tmp[i*4+3] = (a1 - d1) >> 14;
 +        tmp[i*4+1] = (b1 + c1) >> 14;
 +        tmp[i*4+2] = (b1 - c1) >> 14;
 +    }
 +
 +    for (i = 0; i < 4; i++) {
 +        a1 = (tmp[i + 0] + tmp[i + 8]) * 23170;
 +        b1 = (tmp[i + 0] - tmp[i + 8]) * 23170;
 +        c1 = tmp[i + 4] * 12540 - tmp[i + 12] * 30274;
 +        d1 = tmp[i + 4] * 30274 + tmp[i + 12] * 12540;
 +        AV_ZERO64(dc + i*4);
 +        block[0][i][0] = (a1 + d1 + 0x20000) >> 18;
 +        block[3][i][0] = (a1 - d1 + 0x20000) >> 18;
 +        block[1][i][0] = (b1 + c1 + 0x20000) >> 18;
 +        block[2][i][0] = (b1 - c1 + 0x20000) >> 18;
 +    }
 +}
 +
 +static void vp7_luma_dc_wht_dc_c(int16_t block[4][4][16], int16_t dc[16])
 +{
 +    int i, val = (23170 * (23170 * dc[0] >> 14) + 0x20000) >> 18;
 +    dc[0] = 0;
 +
 +    for (i = 0; i < 4; i++) {
 +        block[i][0][0] = val;
 +        block[i][1][0] = val;
 +        block[i][2][0] = val;
 +        block[i][3][0] = val;
 +    }
 +}
 +
 +static void vp7_idct_add_c(uint8_t *dst, int16_t block[16], ptrdiff_t stride)
 +{
 +    int i, a1, b1, c1, d1;
 +    int16_t tmp[16];
 +
 +    for (i = 0; i < 4; i++) {
 +        a1 = (block[i*4+0] + block[i*4+2]) * 23170;
 +        b1 = (block[i*4+0] - block[i*4+2]) * 23170;
 +        c1 = block[i*4+1] * 12540 - block[i*4+3] * 30274;
 +        d1 = block[i*4+1] * 30274 + block[i*4+3] * 12540;
 +        AV_ZERO64(block + i*4);
 +        tmp[i*4+0] = (a1 + d1) >> 14;
 +        tmp[i*4+3] = (a1 - d1) >> 14;
 +        tmp[i*4+1] = (b1 + c1) >> 14;
 +        tmp[i*4+2] = (b1 - c1) >> 14;
 +    }
 +
 +    for (i = 0; i < 4; i++) {
 +        a1 = (tmp[i + 0] + tmp[i + 8]) * 23170;
 +        b1 = (tmp[i + 0] - tmp[i + 8]) * 23170;
 +        c1 = tmp[i + 4] * 12540 - tmp[i + 12] * 30274;
 +        d1 = tmp[i + 4] * 30274 + tmp[i + 12] * 12540;
 +        dst[0*stride+i] = av_clip_uint8(dst[0*stride+i] + ((a1 + d1 + 0x20000) >> 18));
 +        dst[3*stride+i] = av_clip_uint8(dst[3*stride+i] + ((a1 - d1 + 0x20000) >> 18));
 +        dst[1*stride+i] = av_clip_uint8(dst[1*stride+i] + ((b1 + c1 + 0x20000) >> 18));
 +        dst[2*stride+i] = av_clip_uint8(dst[2*stride+i] + ((b1 - c1 + 0x20000) >> 18));
 +    }
 +}
 +
 +static void vp7_idct_dc_add_c(uint8_t *dst, int16_t block[16], ptrdiff_t stride)
 +{
 +    int i, dc = (23170 * (23170 * block[0] >> 14) + 0x20000) >> 18;
 +    block[0] = 0;
 +
 +    for (i = 0; i < 4; i++) {
 +        dst[0] = av_clip_uint8(dst[0] + dc);
 +        dst[1] = av_clip_uint8(dst[1] + dc);
 +        dst[2] = av_clip_uint8(dst[2] + dc);
 +        dst[3] = av_clip_uint8(dst[3] + dc);
 +        dst += stride;
 +    }
 +}
 +
 +MK_IDCT_DC_ADD4_C(vp7)
 +#endif
  
  // TODO: Maybe add dequant
 +#if CONFIG_VP8_DECODER
  static void vp8_luma_dc_wht_c(int16_t block[4][4][16], int16_t dc[16])
  {
      int i, t0, t1, t2, t3;