Merge commit '256da0770e495176d1b2699ec6e9c7993c2a6d7b'
authorMichael Niedermayer <michaelni@gmx.at>
Thu, 29 May 2014 22:42:36 +0000 (00:42 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Thu, 29 May 2014 22:42:36 +0000 (00:42 +0200)
* commit '256da0770e495176d1b2699ec6e9c7993c2a6d7b':
  dsputil: Move mspel_pixels_tab to the only place it is used

Conflicts:
libavcodec/dsputil.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
1  2 
libavcodec/dsputil.c
libavcodec/dsputil.h
libavcodec/wmv2.c
libavcodec/wmv2dsp.c
libavcodec/wmv2dsp.h

@@@ -1255,160 -1191,14 +1255,59 @@@ void ff_avg_pixels16x16_c(uint8_t *dst
  #define put_no_rnd_qpel8_mc00_c  ff_put_pixels8x8_c
  #define put_no_rnd_qpel16_mc00_c ff_put_pixels16x16_c
  
- static void wmv2_mspel8_h_lowpass(uint8_t *dst, uint8_t *src,
-                                   int dstStride, int srcStride, int h)
+ void ff_put_pixels8_l2_8(uint8_t *dst, const uint8_t *src1, const uint8_t *src2,
+                          int dst_stride, int src_stride1, int src_stride2,
+                          int h)
  {
-     const uint8_t *cm = ff_crop_tab + MAX_NEG_CROP;
-     int i;
+     put_pixels8_l2_8(dst, src1, src2, dst_stride, src_stride1, src_stride2, h);
  
-     for (i = 0; i < h; i++) {
-         dst[0] = cm[(9 * (src[0] + src[1]) - (src[-1] + src[2]) + 8) >> 4];
-         dst[1] = cm[(9 * (src[1] + src[2]) - (src[0]  + src[3]) + 8) >> 4];
-         dst[2] = cm[(9 * (src[2] + src[3]) - (src[1]  + src[4]) + 8) >> 4];
-         dst[3] = cm[(9 * (src[3] + src[4]) - (src[2]  + src[5]) + 8) >> 4];
-         dst[4] = cm[(9 * (src[4] + src[5]) - (src[3]  + src[6]) + 8) >> 4];
-         dst[5] = cm[(9 * (src[5] + src[6]) - (src[4]  + src[7]) + 8) >> 4];
-         dst[6] = cm[(9 * (src[6] + src[7]) - (src[5]  + src[8]) + 8) >> 4];
-         dst[7] = cm[(9 * (src[7] + src[8]) - (src[6]  + src[9]) + 8) >> 4];
-         dst   += dstStride;
-         src   += srcStride;
-     }
  }
  
- static void wmv2_mspel8_v_lowpass(uint8_t *dst, uint8_t *src,
-                                   int dstStride, int srcStride, int w)
- {
-     const uint8_t *cm = ff_crop_tab + MAX_NEG_CROP;
-     int i;
-     for (i = 0; i < w; i++) {
-         const int src_1 = src[-srcStride];
-         const int src0  = src[0];
-         const int src1  = src[srcStride];
-         const int src2  = src[2 * srcStride];
-         const int src3  = src[3 * srcStride];
-         const int src4  = src[4 * srcStride];
-         const int src5  = src[5 * srcStride];
-         const int src6  = src[6 * srcStride];
-         const int src7  = src[7 * srcStride];
-         const int src8  = src[8 * srcStride];
-         const int src9  = src[9 * srcStride];
-         dst[0 * dstStride] = cm[(9 * (src0 + src1) - (src_1 + src2) + 8) >> 4];
-         dst[1 * dstStride] = cm[(9 * (src1 + src2) - (src0  + src3) + 8) >> 4];
-         dst[2 * dstStride] = cm[(9 * (src2 + src3) - (src1  + src4) + 8) >> 4];
-         dst[3 * dstStride] = cm[(9 * (src3 + src4) - (src2  + src5) + 8) >> 4];
-         dst[4 * dstStride] = cm[(9 * (src4 + src5) - (src3  + src6) + 8) >> 4];
-         dst[5 * dstStride] = cm[(9 * (src5 + src6) - (src4  + src7) + 8) >> 4];
-         dst[6 * dstStride] = cm[(9 * (src6 + src7) - (src5  + src8) + 8) >> 4];
-         dst[7 * dstStride] = cm[(9 * (src7 + src8) - (src6  + src9) + 8) >> 4];
-         src++;
-         dst++;
-     }
- }
- static void put_mspel8_mc10_c(uint8_t *dst, uint8_t *src, ptrdiff_t stride)
- {
-     uint8_t half[64];
-     wmv2_mspel8_h_lowpass(half, src, 8, stride, 8);
-     put_pixels8_l2_8(dst, src, half, stride, stride, 8, 8);
- }
- static void put_mspel8_mc20_c(uint8_t *dst, uint8_t *src, ptrdiff_t stride)
- {
-     wmv2_mspel8_h_lowpass(dst, src, stride, stride, 8);
- }
- static void put_mspel8_mc30_c(uint8_t *dst, uint8_t *src, ptrdiff_t stride)
- {
-     uint8_t half[64];
-     wmv2_mspel8_h_lowpass(half, src, 8, stride, 8);
-     put_pixels8_l2_8(dst, src + 1, half, stride, stride, 8, 8);
- }
- static void put_mspel8_mc02_c(uint8_t *dst, uint8_t *src, ptrdiff_t stride)
- {
-     wmv2_mspel8_v_lowpass(dst, src, stride, stride, 8);
- }
- static void put_mspel8_mc12_c(uint8_t *dst, uint8_t *src, ptrdiff_t stride)
- {
-     uint8_t halfH[88];
-     uint8_t halfV[64];
-     uint8_t halfHV[64];
-     wmv2_mspel8_h_lowpass(halfH, src - stride, 8, stride, 11);
-     wmv2_mspel8_v_lowpass(halfV, src, 8, stride, 8);
-     wmv2_mspel8_v_lowpass(halfHV, halfH + 8, 8, 8, 8);
-     put_pixels8_l2_8(dst, halfV, halfHV, stride, 8, 8, 8);
- }
- static void put_mspel8_mc32_c(uint8_t *dst, uint8_t *src, ptrdiff_t stride)
- {
-     uint8_t halfH[88];
-     uint8_t halfV[64];
-     uint8_t halfHV[64];
-     wmv2_mspel8_h_lowpass(halfH, src - stride, 8, stride, 11);
-     wmv2_mspel8_v_lowpass(halfV, src + 1, 8, stride, 8);
-     wmv2_mspel8_v_lowpass(halfHV, halfH + 8, 8, 8, 8);
-     put_pixels8_l2_8(dst, halfV, halfHV, stride, 8, 8, 8);
- }
- static void put_mspel8_mc22_c(uint8_t *dst, uint8_t *src, ptrdiff_t stride)
- {
-     uint8_t halfH[88];
-     wmv2_mspel8_h_lowpass(halfH, src - stride, 8, stride, 11);
-     wmv2_mspel8_v_lowpass(dst, halfH + 8, stride, 8, 8);
- }
 +#if CONFIG_DIRAC_DECODER
 +#define DIRAC_MC(OPNAME)\
 +void ff_ ## OPNAME ## _dirac_pixels8_c(uint8_t *dst, const uint8_t *src[5], int stride, int h)\
 +{\
 +     OPNAME ## _pixels8_8_c(dst, src[0], stride, h);\
 +}\
 +void ff_ ## OPNAME ## _dirac_pixels16_c(uint8_t *dst, const uint8_t *src[5], int stride, int h)\
 +{\
 +    OPNAME ## _pixels16_8_c(dst, src[0], stride, h);\
 +}\
 +void ff_ ## OPNAME ## _dirac_pixels32_c(uint8_t *dst, const uint8_t *src[5], int stride, int h)\
 +{\
 +    OPNAME ## _pixels16_8_c(dst   , src[0]   , stride, h);\
 +    OPNAME ## _pixels16_8_c(dst+16, src[0]+16, stride, h);\
 +}\
 +void ff_ ## OPNAME ## _dirac_pixels8_l2_c(uint8_t *dst, const uint8_t *src[5], int stride, int h)\
 +{\
 +    OPNAME ## _pixels8_l2_8(dst, src[0], src[1], stride, stride, stride, h);\
 +}\
 +void ff_ ## OPNAME ## _dirac_pixels16_l2_c(uint8_t *dst, const uint8_t *src[5], int stride, int h)\
 +{\
 +    OPNAME ## _pixels16_l2_8(dst, src[0], src[1], stride, stride, stride, h);\
 +}\
 +void ff_ ## OPNAME ## _dirac_pixels32_l2_c(uint8_t *dst, const uint8_t *src[5], int stride, int h)\
 +{\
 +    OPNAME ## _pixels16_l2_8(dst   , src[0]   , src[1]   , stride, stride, stride, h);\
 +    OPNAME ## _pixels16_l2_8(dst+16, src[0]+16, src[1]+16, stride, stride, stride, h);\
 +}\
 +void ff_ ## OPNAME ## _dirac_pixels8_l4_c(uint8_t *dst, const uint8_t *src[5], int stride, int h)\
 +{\
 +    OPNAME ## _pixels8_l4_8(dst, src[0], src[1], src[2], src[3], stride, stride, stride, stride, stride, h);\
 +}\
 +void ff_ ## OPNAME ## _dirac_pixels16_l4_c(uint8_t *dst, const uint8_t *src[5], int stride, int h)\
 +{\
 +    OPNAME ## _pixels16_l4_8(dst, src[0], src[1], src[2], src[3], stride, stride, stride, stride, stride, h);\
 +}\
 +void ff_ ## OPNAME ## _dirac_pixels32_l4_c(uint8_t *dst, const uint8_t *src[5], int stride, int h)\
 +{\
 +    OPNAME ## _pixels16_l4_8(dst   , src[0]   , src[1]   , src[2]   , src[3]   , stride, stride, stride, stride, stride, h);\
 +    OPNAME ## _pixels16_l4_8(dst+16, src[0]+16, src[1]+16, src[2]+16, src[3]+16, stride, stride, stride, stride, stride, h);\
 +}
 +DIRAC_MC(put)
 +DIRAC_MC(avg)
 +#endif
 +
  static inline int pix_abs16_c(MpegEncContext *v, uint8_t *pix1, uint8_t *pix2,
                                int line_size, int h)
  {
Simple merge
Simple merge
Simple merge
Simple merge