Merge commit 'ed9625eb62be1e1c44cecdd73ea0d80077a15d48'
authorMichael Niedermayer <michaelni@gmx.at>
Thu, 13 Mar 2014 22:25:21 +0000 (23:25 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Thu, 13 Mar 2014 22:30:43 +0000 (23:30 +0100)
* commit 'ed9625eb62be1e1c44cecdd73ea0d80077a15d48':
  dsputil: Move intreadwrite.h #include from header file to .c files

Merged-by: Michael Niedermayer <michaelni@gmx.at>
1  2 
libavcodec/dsputil.h
libavcodec/h264pred_template.c
libavcodec/h264qpel_template.c
libavcodec/nuv.c
libavcodec/vc1dsp.c
libavcodec/vp3dsp.c
libavcodec/vp8dsp.c

Simple merge
Simple merge
Simple merge
Simple merge
   *
   */
  
 +#include "libavutil/avassert.h"
  #include "libavutil/common.h"
++#include "libavutil/intreadwrite.h"
  #include "h264chroma.h"
 +#include "rnd_avg.h"
  #include "vc1dsp.h"
  
  /* Apply overlap transform to horizontal edge */
Simple merge
  #include "dsputil.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;