~medibuntu-maintainers/mplayer/medibuntu.precise

« back to all changes in this revision

Viewing changes to ffmpeg/libavcodec/rv30dsp.c

  • Committer: Package Import Robot
  • Author(s): Reinhard Tartler
  • Date: 2012-01-12 22:23:28 UTC
  • mfrom: (0.4.7 sid)
  • mto: This revision was merged to the branch mainline in revision 76.
  • Revision ID: package-import@ubuntu.com-20120112222328-8jqdyodym3p84ygu
Tags: 2:1.0~rc4.dfsg1+svn34540-1
* New upstream snapshot
* upload to unstable

Show diffs side-by-side

added added

removed removed

Lines of Context:
26
26
 
27
27
#include "avcodec.h"
28
28
#include "dsputil.h"
 
29
#include "rv34dsp.h"
29
30
 
30
31
#define RV30_LOWPASS(OPNAME, OP) \
31
32
static av_unused void OPNAME ## rv30_tpel8_h_lowpass(uint8_t *dst, uint8_t *src, int dstStride, int srcStride, const int C1, const int C2){\
32
 
    const int h=8;\
 
33
    const int h = 8;\
33
34
    uint8_t *cm = ff_cropTbl + MAX_NEG_CROP;\
34
35
    int i;\
35
 
    for(i=0; i<h; i++)\
 
36
    for(i = 0; i < h; i++)\
36
37
    {\
37
38
        OP(dst[0], (-(src[-1]+src[2]) + src[0]*C1 + src[1]*C2 + 8)>>4);\
38
39
        OP(dst[1], (-(src[ 0]+src[3]) + src[1]*C1 + src[2]*C2 + 8)>>4);\
42
43
        OP(dst[5], (-(src[ 4]+src[7]) + src[5]*C1 + src[6]*C2 + 8)>>4);\
43
44
        OP(dst[6], (-(src[ 5]+src[8]) + src[6]*C1 + src[7]*C2 + 8)>>4);\
44
45
        OP(dst[7], (-(src[ 6]+src[9]) + src[7]*C1 + src[8]*C2 + 8)>>4);\
45
 
        dst+=dstStride;\
46
 
        src+=srcStride;\
 
46
        dst += dstStride;\
 
47
        src += srcStride;\
47
48
    }\
48
49
}\
49
50
\
50
51
static void OPNAME ## rv30_tpel8_v_lowpass(uint8_t *dst, uint8_t *src, int dstStride, int srcStride, const int C1, const int C2){\
51
 
    const int w=8;\
 
52
    const int w = 8;\
52
53
    uint8_t *cm = ff_cropTbl + MAX_NEG_CROP;\
53
54
    int i;\
54
 
    for(i=0; i<w; i++)\
 
55
    for(i = 0; i < w; i++)\
55
56
    {\
56
 
        const int srcA= src[-1*srcStride];\
57
 
        const int src0= src[0 *srcStride];\
58
 
        const int src1= src[1 *srcStride];\
59
 
        const int src2= src[2 *srcStride];\
60
 
        const int src3= src[3 *srcStride];\
61
 
        const int src4= src[4 *srcStride];\
62
 
        const int src5= src[5 *srcStride];\
63
 
        const int src6= src[6 *srcStride];\
64
 
        const int src7= src[7 *srcStride];\
65
 
        const int src8= src[8 *srcStride];\
66
 
        const int src9= src[9 *srcStride];\
 
57
        const int srcA = src[-1*srcStride];\
 
58
        const int src0 = src[0 *srcStride];\
 
59
        const int src1 = src[1 *srcStride];\
 
60
        const int src2 = src[2 *srcStride];\
 
61
        const int src3 = src[3 *srcStride];\
 
62
        const int src4 = src[4 *srcStride];\
 
63
        const int src5 = src[5 *srcStride];\
 
64
        const int src6 = src[6 *srcStride];\
 
65
        const int src7 = src[7 *srcStride];\
 
66
        const int src8 = src[8 *srcStride];\
 
67
        const int src9 = src[9 *srcStride];\
67
68
        OP(dst[0*dstStride], (-(srcA+src2) + src0*C1 + src1*C2 + 8)>>4);\
68
69
        OP(dst[1*dstStride], (-(src0+src3) + src1*C1 + src2*C2 + 8)>>4);\
69
70
        OP(dst[2*dstStride], (-(src1+src4) + src2*C1 + src3*C2 + 8)>>4);\
251
252
RV30_MC(avg_, 8)
252
253
RV30_MC(avg_, 16)
253
254
 
254
 
av_cold void ff_rv30dsp_init(DSPContext* c, AVCodecContext *avctx) {
255
 
    c->put_rv30_tpel_pixels_tab[0][ 0] = c->put_h264_qpel_pixels_tab[0][0];
256
 
    c->put_rv30_tpel_pixels_tab[0][ 1] = put_rv30_tpel16_mc10_c;
257
 
    c->put_rv30_tpel_pixels_tab[0][ 2] = put_rv30_tpel16_mc20_c;
258
 
    c->put_rv30_tpel_pixels_tab[0][ 4] = put_rv30_tpel16_mc01_c;
259
 
    c->put_rv30_tpel_pixels_tab[0][ 5] = put_rv30_tpel16_mc11_c;
260
 
    c->put_rv30_tpel_pixels_tab[0][ 6] = put_rv30_tpel16_mc21_c;
261
 
    c->put_rv30_tpel_pixels_tab[0][ 8] = put_rv30_tpel16_mc02_c;
262
 
    c->put_rv30_tpel_pixels_tab[0][ 9] = put_rv30_tpel16_mc12_c;
263
 
    c->put_rv30_tpel_pixels_tab[0][10] = put_rv30_tpel16_mc22_c;
264
 
    c->avg_rv30_tpel_pixels_tab[0][ 0] = c->avg_h264_qpel_pixels_tab[0][0];
265
 
    c->avg_rv30_tpel_pixels_tab[0][ 1] = avg_rv30_tpel16_mc10_c;
266
 
    c->avg_rv30_tpel_pixels_tab[0][ 2] = avg_rv30_tpel16_mc20_c;
267
 
    c->avg_rv30_tpel_pixels_tab[0][ 4] = avg_rv30_tpel16_mc01_c;
268
 
    c->avg_rv30_tpel_pixels_tab[0][ 5] = avg_rv30_tpel16_mc11_c;
269
 
    c->avg_rv30_tpel_pixels_tab[0][ 6] = avg_rv30_tpel16_mc21_c;
270
 
    c->avg_rv30_tpel_pixels_tab[0][ 8] = avg_rv30_tpel16_mc02_c;
271
 
    c->avg_rv30_tpel_pixels_tab[0][ 9] = avg_rv30_tpel16_mc12_c;
272
 
    c->avg_rv30_tpel_pixels_tab[0][10] = avg_rv30_tpel16_mc22_c;
273
 
    c->put_rv30_tpel_pixels_tab[1][ 0] = c->put_h264_qpel_pixels_tab[1][0];
274
 
    c->put_rv30_tpel_pixels_tab[1][ 1] = put_rv30_tpel8_mc10_c;
275
 
    c->put_rv30_tpel_pixels_tab[1][ 2] = put_rv30_tpel8_mc20_c;
276
 
    c->put_rv30_tpel_pixels_tab[1][ 4] = put_rv30_tpel8_mc01_c;
277
 
    c->put_rv30_tpel_pixels_tab[1][ 5] = put_rv30_tpel8_mc11_c;
278
 
    c->put_rv30_tpel_pixels_tab[1][ 6] = put_rv30_tpel8_mc21_c;
279
 
    c->put_rv30_tpel_pixels_tab[1][ 8] = put_rv30_tpel8_mc02_c;
280
 
    c->put_rv30_tpel_pixels_tab[1][ 9] = put_rv30_tpel8_mc12_c;
281
 
    c->put_rv30_tpel_pixels_tab[1][10] = put_rv30_tpel8_mc22_c;
282
 
    c->avg_rv30_tpel_pixels_tab[1][ 0] = c->avg_h264_qpel_pixels_tab[1][0];
283
 
    c->avg_rv30_tpel_pixels_tab[1][ 1] = avg_rv30_tpel8_mc10_c;
284
 
    c->avg_rv30_tpel_pixels_tab[1][ 2] = avg_rv30_tpel8_mc20_c;
285
 
    c->avg_rv30_tpel_pixels_tab[1][ 4] = avg_rv30_tpel8_mc01_c;
286
 
    c->avg_rv30_tpel_pixels_tab[1][ 5] = avg_rv30_tpel8_mc11_c;
287
 
    c->avg_rv30_tpel_pixels_tab[1][ 6] = avg_rv30_tpel8_mc21_c;
288
 
    c->avg_rv30_tpel_pixels_tab[1][ 8] = avg_rv30_tpel8_mc02_c;
289
 
    c->avg_rv30_tpel_pixels_tab[1][ 9] = avg_rv30_tpel8_mc12_c;
290
 
    c->avg_rv30_tpel_pixels_tab[1][10] = avg_rv30_tpel8_mc22_c;
 
255
av_cold void ff_rv30dsp_init(RV34DSPContext *c, DSPContext* dsp) {
 
256
 
 
257
    ff_rv34dsp_init(c, dsp);
 
258
 
 
259
    c->put_pixels_tab[0][ 0] = dsp->put_h264_qpel_pixels_tab[0][0];
 
260
    c->put_pixels_tab[0][ 1] = put_rv30_tpel16_mc10_c;
 
261
    c->put_pixels_tab[0][ 2] = put_rv30_tpel16_mc20_c;
 
262
    c->put_pixels_tab[0][ 4] = put_rv30_tpel16_mc01_c;
 
263
    c->put_pixels_tab[0][ 5] = put_rv30_tpel16_mc11_c;
 
264
    c->put_pixels_tab[0][ 6] = put_rv30_tpel16_mc21_c;
 
265
    c->put_pixels_tab[0][ 8] = put_rv30_tpel16_mc02_c;
 
266
    c->put_pixels_tab[0][ 9] = put_rv30_tpel16_mc12_c;
 
267
    c->put_pixels_tab[0][10] = put_rv30_tpel16_mc22_c;
 
268
    c->avg_pixels_tab[0][ 0] = dsp->avg_h264_qpel_pixels_tab[0][0];
 
269
    c->avg_pixels_tab[0][ 1] = avg_rv30_tpel16_mc10_c;
 
270
    c->avg_pixels_tab[0][ 2] = avg_rv30_tpel16_mc20_c;
 
271
    c->avg_pixels_tab[0][ 4] = avg_rv30_tpel16_mc01_c;
 
272
    c->avg_pixels_tab[0][ 5] = avg_rv30_tpel16_mc11_c;
 
273
    c->avg_pixels_tab[0][ 6] = avg_rv30_tpel16_mc21_c;
 
274
    c->avg_pixels_tab[0][ 8] = avg_rv30_tpel16_mc02_c;
 
275
    c->avg_pixels_tab[0][ 9] = avg_rv30_tpel16_mc12_c;
 
276
    c->avg_pixels_tab[0][10] = avg_rv30_tpel16_mc22_c;
 
277
    c->put_pixels_tab[1][ 0] = dsp->put_h264_qpel_pixels_tab[1][0];
 
278
    c->put_pixels_tab[1][ 1] = put_rv30_tpel8_mc10_c;
 
279
    c->put_pixels_tab[1][ 2] = put_rv30_tpel8_mc20_c;
 
280
    c->put_pixels_tab[1][ 4] = put_rv30_tpel8_mc01_c;
 
281
    c->put_pixels_tab[1][ 5] = put_rv30_tpel8_mc11_c;
 
282
    c->put_pixels_tab[1][ 6] = put_rv30_tpel8_mc21_c;
 
283
    c->put_pixels_tab[1][ 8] = put_rv30_tpel8_mc02_c;
 
284
    c->put_pixels_tab[1][ 9] = put_rv30_tpel8_mc12_c;
 
285
    c->put_pixels_tab[1][10] = put_rv30_tpel8_mc22_c;
 
286
    c->avg_pixels_tab[1][ 0] = dsp->avg_h264_qpel_pixels_tab[1][0];
 
287
    c->avg_pixels_tab[1][ 1] = avg_rv30_tpel8_mc10_c;
 
288
    c->avg_pixels_tab[1][ 2] = avg_rv30_tpel8_mc20_c;
 
289
    c->avg_pixels_tab[1][ 4] = avg_rv30_tpel8_mc01_c;
 
290
    c->avg_pixels_tab[1][ 5] = avg_rv30_tpel8_mc11_c;
 
291
    c->avg_pixels_tab[1][ 6] = avg_rv30_tpel8_mc21_c;
 
292
    c->avg_pixels_tab[1][ 8] = avg_rv30_tpel8_mc02_c;
 
293
    c->avg_pixels_tab[1][ 9] = avg_rv30_tpel8_mc12_c;
 
294
    c->avg_pixels_tab[1][10] = avg_rv30_tpel8_mc22_c;
 
295
 
 
296
    c->put_chroma_pixels_tab[0] = dsp->put_h264_chroma_pixels_tab[0];
 
297
    c->put_chroma_pixels_tab[1] = dsp->put_h264_chroma_pixels_tab[1];
 
298
    c->avg_chroma_pixels_tab[0] = dsp->avg_h264_chroma_pixels_tab[0];
 
299
    c->avg_chroma_pixels_tab[1] = dsp->avg_h264_chroma_pixels_tab[1];
291
300
}