Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(14)

Side by Side Diff: source/patched-ffmpeg-mt/libavcodec/dsputil.c

Issue 3384002: ffmpeg source update for sep 09 (Closed) Base URL: svn://chrome-svn/chrome/trunk/deps/third_party/ffmpeg/
Patch Set: Created 10 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « source/patched-ffmpeg-mt/libavcodec/dsputil.h ('k') | source/patched-ffmpeg-mt/libavcodec/dv.c » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * DSP utils 2 * DSP utils
3 * Copyright (c) 2000, 2001 Fabrice Bellard 3 * Copyright (c) 2000, 2001 Fabrice Bellard
4 * Copyright (c) 2002-2004 Michael Niedermayer <michaelni@gmx.at> 4 * Copyright (c) 2002-2004 Michael Niedermayer <michaelni@gmx.at>
5 * 5 *
6 * gmc & q-pel & 32/64 bit based MC by Michael Niedermayer <michaelni@gmx.at> 6 * gmc & q-pel & 32/64 bit based MC by Michael Niedermayer <michaelni@gmx.at>
7 * 7 *
8 * This file is part of FFmpeg. 8 * This file is part of FFmpeg.
9 * 9 *
10 * FFmpeg is free software; you can redistribute it and/or 10 * FFmpeg is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU Lesser General Public 11 * modify it under the terms of the GNU Lesser General Public
12 * License as published by the Free Software Foundation; either 12 * License as published by the Free Software Foundation; either
13 * version 2.1 of the License, or (at your option) any later version. 13 * version 2.1 of the License, or (at your option) any later version.
14 * 14 *
15 * FFmpeg is distributed in the hope that it will be useful, 15 * FFmpeg is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 * Lesser General Public License for more details. 18 * Lesser General Public License for more details.
19 * 19 *
20 * You should have received a copy of the GNU Lesser General Public 20 * You should have received a copy of the GNU Lesser General Public
21 * License along with FFmpeg; if not, write to the Free Software 21 * License along with FFmpeg; if not, write to the Free Software
22 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 22 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
23 */ 23 */
24 24
25 /** 25 /**
26 * @file 26 * @file
27 * DSP utils 27 * DSP utils
28 */ 28 */
29 29
30 #include "libavcore/imgutils.h"
30 #include "avcodec.h" 31 #include "avcodec.h"
31 #include "dsputil.h" 32 #include "dsputil.h"
32 #include "simple_idct.h" 33 #include "simple_idct.h"
33 #include "faandct.h" 34 #include "faandct.h"
34 #include "faanidct.h" 35 #include "faanidct.h"
35 #include "mathops.h" 36 #include "mathops.h"
36 #include "mpegvideo.h" 37 #include "mpegvideo.h"
37 #include "config.h" 38 #include "config.h"
38 #include "lpc.h" 39 #include "lpc.h"
39 #include "ac3dec.h" 40 #include "ac3dec.h"
(...skipping 1119 matching lines...) Expand 10 before | Expand all | Expand 10 after
1159 }\ 1160 }\
1160 pixels+=4-line_size*(h+1);\ 1161 pixels+=4-line_size*(h+1);\
1161 block +=4-line_size*h;\ 1162 block +=4-line_size*h;\
1162 }\ 1163 }\
1163 }\ 1164 }\
1164 \ 1165 \
1165 CALL_2X_PIXELS(OPNAME ## _pixels16_c , OPNAME ## _pixels8_c , 8)\ 1166 CALL_2X_PIXELS(OPNAME ## _pixels16_c , OPNAME ## _pixels8_c , 8)\
1166 CALL_2X_PIXELS(OPNAME ## _pixels16_x2_c , OPNAME ## _pixels8_x2_c , 8)\ 1167 CALL_2X_PIXELS(OPNAME ## _pixels16_x2_c , OPNAME ## _pixels8_x2_c , 8)\
1167 CALL_2X_PIXELS(OPNAME ## _pixels16_y2_c , OPNAME ## _pixels8_y2_c , 8)\ 1168 CALL_2X_PIXELS(OPNAME ## _pixels16_y2_c , OPNAME ## _pixels8_y2_c , 8)\
1168 CALL_2X_PIXELS(OPNAME ## _pixels16_xy2_c, OPNAME ## _pixels8_xy2_c, 8)\ 1169 CALL_2X_PIXELS(OPNAME ## _pixels16_xy2_c, OPNAME ## _pixels8_xy2_c, 8)\
1169 CALL_2X_PIXELS(OPNAME ## _no_rnd_pixels16_c , OPNAME ## _pixels8_c , 8) \ 1170 av_unused CALL_2X_PIXELS(OPNAME ## _no_rnd_pixels16_c , OPNAME ## _pixels8_c , 8)\
1170 CALL_2X_PIXELS(OPNAME ## _no_rnd_pixels16_x2_c , OPNAME ## _no_rnd_pixels8_x2_c , 8)\ 1171 CALL_2X_PIXELS(OPNAME ## _no_rnd_pixels16_x2_c , OPNAME ## _no_rnd_pixels8_x2_c , 8)\
1171 CALL_2X_PIXELS(OPNAME ## _no_rnd_pixels16_y2_c , OPNAME ## _no_rnd_pixels8_y2_c , 8)\ 1172 CALL_2X_PIXELS(OPNAME ## _no_rnd_pixels16_y2_c , OPNAME ## _no_rnd_pixels8_y2_c , 8)\
1172 CALL_2X_PIXELS(OPNAME ## _no_rnd_pixels16_xy2_c, OPNAME ## _no_rnd_pixels8_xy2_c , 8)\ 1173 CALL_2X_PIXELS(OPNAME ## _no_rnd_pixels16_xy2_c, OPNAME ## _no_rnd_pixels8_xy2_c , 8)\
1173 1174
1174 #define op_avg(a, b) a = rnd_avg32(a, b) 1175 #define op_avg(a, b) a = rnd_avg32(a, b)
1175 #endif 1176 #endif
1176 #define op_put(a, b) a = b 1177 #define op_put(a, b) a = b
1177 1178
1178 PIXOP2(avg, op_avg) 1179 PIXOP2(avg, op_avg)
1179 PIXOP2(put, op_put) 1180 PIXOP2(put, op_put)
1180 #undef op_avg 1181 #undef op_avg
1181 #undef op_put 1182 #undef op_put
1182 1183
1184 #define put_no_rnd_pixels8_c put_pixels8_c
1185 #define put_no_rnd_pixels16_c put_pixels16_c
1186
1183 #define avg2(a,b) ((a+b+1)>>1) 1187 #define avg2(a,b) ((a+b+1)>>1)
1184 #define avg4(a,b,c,d) ((a+b+c+d+2)>>2) 1188 #define avg4(a,b,c,d) ((a+b+c+d+2)>>2)
1185 1189
1186 static void put_no_rnd_pixels16_l2_c(uint8_t *dst, const uint8_t *a, const uint8 _t *b, int stride, int h){ 1190 static void put_no_rnd_pixels16_l2_c(uint8_t *dst, const uint8_t *a, const uint8 _t *b, int stride, int h){
1187 put_no_rnd_pixels16_l2(dst, a, b, stride, stride, stride, h); 1191 put_no_rnd_pixels16_l2(dst, a, b, stride, stride, stride, h);
1188 } 1192 }
1189 1193
1190 static void put_no_rnd_pixels8_l2_c(uint8_t *dst, const uint8_t *a, const uint8_ t *b, int stride, int h){ 1194 static void put_no_rnd_pixels8_l2_c(uint8_t *dst, const uint8_t *a, const uint8_ t *b, int stride, int h){
1191 put_no_rnd_pixels8_l2(dst, a, b, stride, stride, stride, h); 1195 put_no_rnd_pixels8_l2(dst, a, b, stride, stride, stride, h);
1192 } 1196 }
(...skipping 562 matching lines...) Expand 10 before | Expand all | Expand 10 after
1755 OP(dst[11*dstStride], (src11+src12)*20 - (src10+src13)*6 + (src9 +src14) *3 - (src8 +src15));\ 1759 OP(dst[11*dstStride], (src11+src12)*20 - (src10+src13)*6 + (src9 +src14) *3 - (src8 +src15));\
1756 OP(dst[12*dstStride], (src12+src13)*20 - (src11+src14)*6 + (src10+src15) *3 - (src9 +src16));\ 1760 OP(dst[12*dstStride], (src12+src13)*20 - (src11+src14)*6 + (src10+src15) *3 - (src9 +src16));\
1757 OP(dst[13*dstStride], (src13+src14)*20 - (src12+src15)*6 + (src11+src16) *3 - (src10+src16));\ 1761 OP(dst[13*dstStride], (src13+src14)*20 - (src12+src15)*6 + (src11+src16) *3 - (src10+src16));\
1758 OP(dst[14*dstStride], (src14+src15)*20 - (src13+src16)*6 + (src12+src16) *3 - (src11+src15));\ 1762 OP(dst[14*dstStride], (src14+src15)*20 - (src13+src16)*6 + (src12+src16) *3 - (src11+src15));\
1759 OP(dst[15*dstStride], (src15+src16)*20 - (src14+src16)*6 + (src13+src15) *3 - (src12+src14));\ 1763 OP(dst[15*dstStride], (src15+src16)*20 - (src14+src16)*6 + (src13+src15) *3 - (src12+src14));\
1760 dst++;\ 1764 dst++;\
1761 src++;\ 1765 src++;\
1762 }\ 1766 }\
1763 }\ 1767 }\
1764 \ 1768 \
1765 static void OPNAME ## qpel8_mc00_c (uint8_t *dst, uint8_t *src, int stride){\
1766 OPNAME ## pixels8_c(dst, src, stride, 8);\
1767 }\
1768 \
1769 static void OPNAME ## qpel8_mc10_c(uint8_t *dst, uint8_t *src, int stride){\ 1769 static void OPNAME ## qpel8_mc10_c(uint8_t *dst, uint8_t *src, int stride){\
1770 uint8_t half[64];\ 1770 uint8_t half[64];\
1771 put ## RND ## mpeg4_qpel8_h_lowpass(half, src, 8, stride, 8);\ 1771 put ## RND ## mpeg4_qpel8_h_lowpass(half, src, 8, stride, 8);\
1772 OPNAME ## pixels8_l2(dst, src, half, stride, stride, 8, 8);\ 1772 OPNAME ## pixels8_l2(dst, src, half, stride, stride, 8, 8);\
1773 }\ 1773 }\
1774 \ 1774 \
1775 static void OPNAME ## qpel8_mc20_c(uint8_t *dst, uint8_t *src, int stride){\ 1775 static void OPNAME ## qpel8_mc20_c(uint8_t *dst, uint8_t *src, int stride){\
1776 OPNAME ## mpeg4_qpel8_h_lowpass(dst, src, stride, stride, 8);\ 1776 OPNAME ## mpeg4_qpel8_h_lowpass(dst, src, stride, stride, 8);\
1777 }\ 1777 }\
1778 \ 1778 \
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after
1937 copy_block9(full, src, 16, stride, 9);\ 1937 copy_block9(full, src, 16, stride, 9);\
1938 put ## RND ## mpeg4_qpel8_h_lowpass(halfH, full, 8, 16, 9);\ 1938 put ## RND ## mpeg4_qpel8_h_lowpass(halfH, full, 8, 16, 9);\
1939 put ## RND ## pixels8_l2(halfH, halfH, full+1, 8, 8, 16, 9);\ 1939 put ## RND ## pixels8_l2(halfH, halfH, full+1, 8, 8, 16, 9);\
1940 OPNAME ## mpeg4_qpel8_v_lowpass(dst, halfH, stride, 8);\ 1940 OPNAME ## mpeg4_qpel8_v_lowpass(dst, halfH, stride, 8);\
1941 }\ 1941 }\
1942 static void OPNAME ## qpel8_mc22_c(uint8_t *dst, uint8_t *src, int stride){\ 1942 static void OPNAME ## qpel8_mc22_c(uint8_t *dst, uint8_t *src, int stride){\
1943 uint8_t halfH[72];\ 1943 uint8_t halfH[72];\
1944 put ## RND ## mpeg4_qpel8_h_lowpass(halfH, src, 8, stride, 9);\ 1944 put ## RND ## mpeg4_qpel8_h_lowpass(halfH, src, 8, stride, 9);\
1945 OPNAME ## mpeg4_qpel8_v_lowpass(dst, halfH, stride, 8);\ 1945 OPNAME ## mpeg4_qpel8_v_lowpass(dst, halfH, stride, 8);\
1946 }\ 1946 }\
1947 static void OPNAME ## qpel16_mc00_c (uint8_t *dst, uint8_t *src, int stride){\
1948 OPNAME ## pixels16_c(dst, src, stride, 16);\
1949 }\
1950 \ 1947 \
1951 static void OPNAME ## qpel16_mc10_c(uint8_t *dst, uint8_t *src, int stride){\ 1948 static void OPNAME ## qpel16_mc10_c(uint8_t *dst, uint8_t *src, int stride){\
1952 uint8_t half[256];\ 1949 uint8_t half[256];\
1953 put ## RND ## mpeg4_qpel16_h_lowpass(half, src, 16, stride, 16);\ 1950 put ## RND ## mpeg4_qpel16_h_lowpass(half, src, 16, stride, 16);\
1954 OPNAME ## pixels16_l2(dst, src, half, stride, stride, 16, 16);\ 1951 OPNAME ## pixels16_l2(dst, src, half, stride, stride, 16, 16);\
1955 }\ 1952 }\
1956 \ 1953 \
1957 static void OPNAME ## qpel16_mc20_c(uint8_t *dst, uint8_t *src, int stride){\ 1954 static void OPNAME ## qpel16_mc20_c(uint8_t *dst, uint8_t *src, int stride){\
1958 OPNAME ## mpeg4_qpel16_h_lowpass(dst, src, stride, stride, 16);\ 1955 OPNAME ## mpeg4_qpel16_h_lowpass(dst, src, stride, stride, 16);\
1959 }\ 1956 }\
(...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after
2134 2131
2135 QPEL_MC(0, put_ , _ , op_put) 2132 QPEL_MC(0, put_ , _ , op_put)
2136 QPEL_MC(1, put_no_rnd_, _no_rnd_, op_put_no_rnd) 2133 QPEL_MC(1, put_no_rnd_, _no_rnd_, op_put_no_rnd)
2137 QPEL_MC(0, avg_ , _ , op_avg) 2134 QPEL_MC(0, avg_ , _ , op_avg)
2138 //QPEL_MC(1, avg_no_rnd , _ , op_avg) 2135 //QPEL_MC(1, avg_no_rnd , _ , op_avg)
2139 #undef op_avg 2136 #undef op_avg
2140 #undef op_avg_no_rnd 2137 #undef op_avg_no_rnd
2141 #undef op_put 2138 #undef op_put
2142 #undef op_put_no_rnd 2139 #undef op_put_no_rnd
2143 2140
2141 #define put_qpel8_mc00_c ff_put_pixels8x8_c
2142 #define avg_qpel8_mc00_c ff_avg_pixels8x8_c
2143 #define put_qpel16_mc00_c ff_put_pixels16x16_c
2144 #define avg_qpel16_mc00_c ff_avg_pixels16x16_c
2145 #define put_no_rnd_qpel8_mc00_c ff_put_pixels8x8_c
2146 #define put_no_rnd_qpel16_mc00_c ff_put_pixels16x16_c
2147
2144 #if 1 2148 #if 1
2145 #define H264_LOWPASS(OPNAME, OP, OP2) \ 2149 #define H264_LOWPASS(OPNAME, OP, OP2) \
2146 static av_unused void OPNAME ## h264_qpel2_h_lowpass(uint8_t *dst, uint8_t *src, int dstStride, int srcStride){\ 2150 static av_unused void OPNAME ## h264_qpel2_h_lowpass(uint8_t *dst, uint8_t *src, int dstStride, int srcStride){\
2147 const int h=2;\ 2151 const int h=2;\
2148 uint8_t *cm = ff_cropTbl + MAX_NEG_CROP;\ 2152 uint8_t *cm = ff_cropTbl + MAX_NEG_CROP;\
2149 int i;\ 2153 int i;\
2150 for(i=0; i<h; i++)\ 2154 for(i=0; i<h; i++)\
2151 {\ 2155 {\
2152 OP(dst[0], (src[0]+src[1])*20 - (src[-1]+src[2])*5 + (src[-2]+src[3]));\ 2156 OP(dst[0], (src[0]+src[1])*20 - (src[-1]+src[2])*5 + (src[-2]+src[3]));\
2153 OP(dst[1], (src[1]+src[2])*20 - (src[0 ]+src[3])*5 + (src[-1]+src[4]));\ 2157 OP(dst[1], (src[1]+src[2])*20 - (src[0 ]+src[3])*5 + (src[-1]+src[4]));\
(...skipping 246 matching lines...) Expand 10 before | Expand all | Expand 10 after
2400 static void OPNAME ## h264_qpel16_hv_lowpass(uint8_t *dst, int16_t *tmp, uint8_t *src, int dstStride, int tmpStride, int srcStride){\ 2404 static void OPNAME ## h264_qpel16_hv_lowpass(uint8_t *dst, int16_t *tmp, uint8_t *src, int dstStride, int tmpStride, int srcStride){\
2401 OPNAME ## h264_qpel8_hv_lowpass(dst , tmp , src , dstStride, tmpStride, s rcStride);\ 2405 OPNAME ## h264_qpel8_hv_lowpass(dst , tmp , src , dstStride, tmpStride, s rcStride);\
2402 OPNAME ## h264_qpel8_hv_lowpass(dst+8, tmp+8, src+8, dstStride, tmpStride, s rcStride);\ 2406 OPNAME ## h264_qpel8_hv_lowpass(dst+8, tmp+8, src+8, dstStride, tmpStride, s rcStride);\
2403 src += 8*srcStride;\ 2407 src += 8*srcStride;\
2404 dst += 8*dstStride;\ 2408 dst += 8*dstStride;\
2405 OPNAME ## h264_qpel8_hv_lowpass(dst , tmp , src , dstStride, tmpStride, s rcStride);\ 2409 OPNAME ## h264_qpel8_hv_lowpass(dst , tmp , src , dstStride, tmpStride, s rcStride);\
2406 OPNAME ## h264_qpel8_hv_lowpass(dst+8, tmp+8, src+8, dstStride, tmpStride, s rcStride);\ 2410 OPNAME ## h264_qpel8_hv_lowpass(dst+8, tmp+8, src+8, dstStride, tmpStride, s rcStride);\
2407 }\ 2411 }\
2408 2412
2409 #define H264_MC(OPNAME, SIZE) \ 2413 #define H264_MC(OPNAME, SIZE) \
2410 static void OPNAME ## h264_qpel ## SIZE ## _mc00_c (uint8_t *dst, uint8_t *src, int stride){\ 2414 static av_unused void OPNAME ## h264_qpel ## SIZE ## _mc00_c (uint8_t *dst, uint 8_t *src, int stride){\
2411 OPNAME ## pixels ## SIZE ## _c(dst, src, stride, SIZE);\ 2415 OPNAME ## pixels ## SIZE ## _c(dst, src, stride, SIZE);\
2412 }\ 2416 }\
2413 \ 2417 \
2414 static void OPNAME ## h264_qpel ## SIZE ## _mc10_c(uint8_t *dst, uint8_t *src, i nt stride){\ 2418 static void OPNAME ## h264_qpel ## SIZE ## _mc10_c(uint8_t *dst, uint8_t *src, i nt stride){\
2415 uint8_t half[SIZE*SIZE];\ 2419 uint8_t half[SIZE*SIZE];\
2416 put_h264_qpel ## SIZE ## _h_lowpass(half, src, SIZE, stride);\ 2420 put_h264_qpel ## SIZE ## _h_lowpass(half, src, SIZE, stride);\
2417 OPNAME ## pixels ## SIZE ## _l2(dst, src, half, stride, stride, SIZE, SIZE); \ 2421 OPNAME ## pixels ## SIZE ## _l2(dst, src, half, stride, stride, SIZE, SIZE); \
2418 }\ 2422 }\
2419 \ 2423 \
2420 static void OPNAME ## h264_qpel ## SIZE ## _mc20_c(uint8_t *dst, uint8_t *src, i nt stride){\ 2424 static void OPNAME ## h264_qpel ## SIZE ## _mc20_c(uint8_t *dst, uint8_t *src, i nt stride){\
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after
2558 H264_MC(avg_, 4) 2562 H264_MC(avg_, 4)
2559 H264_MC(avg_, 8) 2563 H264_MC(avg_, 8)
2560 H264_MC(avg_, 16) 2564 H264_MC(avg_, 16)
2561 2565
2562 #undef op_avg 2566 #undef op_avg
2563 #undef op_put 2567 #undef op_put
2564 #undef op2_avg 2568 #undef op2_avg
2565 #undef op2_put 2569 #undef op2_put
2566 #endif 2570 #endif
2567 2571
2572 #define put_h264_qpel8_mc00_c ff_put_pixels8x8_c
2573 #define avg_h264_qpel8_mc00_c ff_avg_pixels8x8_c
2574 #define put_h264_qpel16_mc00_c ff_put_pixels16x16_c
2575 #define avg_h264_qpel16_mc00_c ff_avg_pixels16x16_c
2576
2568 static void wmv2_mspel8_h_lowpass(uint8_t *dst, uint8_t *src, int dstStride, int srcStride, int h){ 2577 static void wmv2_mspel8_h_lowpass(uint8_t *dst, uint8_t *src, int dstStride, int srcStride, int h){
2569 uint8_t *cm = ff_cropTbl + MAX_NEG_CROP; 2578 uint8_t *cm = ff_cropTbl + MAX_NEG_CROP;
2570 int i; 2579 int i;
2571 2580
2572 for(i=0; i<h; i++){ 2581 for(i=0; i<h; i++){
2573 dst[0]= cm[(9*(src[0] + src[1]) - (src[-1] + src[2]) + 8)>>4]; 2582 dst[0]= cm[(9*(src[0] + src[1]) - (src[-1] + src[2]) + 8)>>4];
2574 dst[1]= cm[(9*(src[1] + src[2]) - (src[ 0] + src[3]) + 8)>>4]; 2583 dst[1]= cm[(9*(src[1] + src[2]) - (src[ 0] + src[3]) + 8)>>4];
2575 dst[2]= cm[(9*(src[2] + src[3]) - (src[ 1] + src[4]) + 8)>>4]; 2584 dst[2]= cm[(9*(src[2] + src[3]) - (src[ 1] + src[4]) + 8)>>4];
2576 dst[3]= cm[(9*(src[3] + src[4]) - (src[ 2] + src[5]) + 8)>>4]; 2585 dst[3]= cm[(9*(src[3] + src[4]) - (src[ 2] + src[5]) + 8)>>4];
2577 dst[4]= cm[(9*(src[4] + src[5]) - (src[ 3] + src[6]) + 8)>>4]; 2586 dst[4]= cm[(9*(src[4] + src[5]) - (src[ 3] + src[6]) + 8)>>4];
2578 dst[5]= cm[(9*(src[5] + src[6]) - (src[ 4] + src[7]) + 8)>>4]; 2587 dst[5]= cm[(9*(src[5] + src[6]) - (src[ 4] + src[7]) + 8)>>4];
2579 dst[6]= cm[(9*(src[6] + src[7]) - (src[ 5] + src[8]) + 8)>>4]; 2588 dst[6]= cm[(9*(src[6] + src[7]) - (src[ 5] + src[8]) + 8)>>4];
2580 dst[7]= cm[(9*(src[7] + src[8]) - (src[ 6] + src[9]) + 8)>>4]; 2589 dst[7]= cm[(9*(src[7] + src[8]) - (src[ 6] + src[9]) + 8)>>4];
2581 dst+=dstStride; 2590 dst+=dstStride;
2582 src+=srcStride; 2591 src+=srcStride;
2583 } 2592 }
2584 } 2593 }
2585 2594
2586 #if CONFIG_CAVS_DECODER 2595 void ff_put_pixels8x8_c(uint8_t *dst, uint8_t *src, int stride) {
2587 /* AVS specific */
2588 void ff_put_cavs_qpel8_mc00_c(uint8_t *dst, uint8_t *src, int stride) {
2589 put_pixels8_c(dst, src, stride, 8); 2596 put_pixels8_c(dst, src, stride, 8);
2590 } 2597 }
2591 void ff_avg_cavs_qpel8_mc00_c(uint8_t *dst, uint8_t *src, int stride) { 2598 void ff_avg_pixels8x8_c(uint8_t *dst, uint8_t *src, int stride) {
2592 avg_pixels8_c(dst, src, stride, 8); 2599 avg_pixels8_c(dst, src, stride, 8);
2593 } 2600 }
2594 void ff_put_cavs_qpel16_mc00_c(uint8_t *dst, uint8_t *src, int stride) { 2601 void ff_put_pixels16x16_c(uint8_t *dst, uint8_t *src, int stride) {
2595 put_pixels16_c(dst, src, stride, 16); 2602 put_pixels16_c(dst, src, stride, 16);
2596 } 2603 }
2597 void ff_avg_cavs_qpel16_mc00_c(uint8_t *dst, uint8_t *src, int stride) { 2604 void ff_avg_pixels16x16_c(uint8_t *dst, uint8_t *src, int stride) {
2598 avg_pixels16_c(dst, src, stride, 16); 2605 avg_pixels16_c(dst, src, stride, 16);
2599 } 2606 }
2600 #endif /* CONFIG_CAVS_DECODER */
2601
2602 #if CONFIG_VC1_DECODER
2603 /* VC-1 specific */
2604 void ff_put_vc1_mspel_mc00_c(uint8_t *dst, const uint8_t *src, int stride, int r nd) {
2605 put_pixels8_c(dst, src, stride, 8);
2606 }
2607 void ff_avg_vc1_mspel_mc00_c(uint8_t *dst, const uint8_t *src, int stride, int r nd) {
2608 avg_pixels8_c(dst, src, stride, 8);
2609 }
2610 #endif /* CONFIG_VC1_DECODER */
2611 2607
2612 #if CONFIG_RV40_DECODER 2608 #if CONFIG_RV40_DECODER
2613 static void put_rv40_qpel16_mc33_c(uint8_t *dst, uint8_t *src, int stride){ 2609 static void put_rv40_qpel16_mc33_c(uint8_t *dst, uint8_t *src, int stride){
2614 put_pixels16_xy2_c(dst, src, stride, 16); 2610 put_pixels16_xy2_c(dst, src, stride, 16);
2615 } 2611 }
2616 static void avg_rv40_qpel16_mc33_c(uint8_t *dst, uint8_t *src, int stride){ 2612 static void avg_rv40_qpel16_mc33_c(uint8_t *dst, uint8_t *src, int stride){
2617 avg_pixels16_xy2_c(dst, src, stride, 16); 2613 avg_pixels16_xy2_c(dst, src, stride, 16);
2618 } 2614 }
2619 static void put_rv40_qpel8_mc33_c(uint8_t *dst, uint8_t *src, int stride){ 2615 static void put_rv40_qpel8_mc33_c(uint8_t *dst, uint8_t *src, int stride){
2620 put_pixels8_xy2_c(dst, src, stride, 8); 2616 put_pixels8_xy2_c(dst, src, stride, 8);
(...skipping 25 matching lines...) Expand all
2646 dst[3*dstStride]= cm[(9*(src3 + src4) - (src2 + src5) + 8)>>4]; 2642 dst[3*dstStride]= cm[(9*(src3 + src4) - (src2 + src5) + 8)>>4];
2647 dst[4*dstStride]= cm[(9*(src4 + src5) - (src3 + src6) + 8)>>4]; 2643 dst[4*dstStride]= cm[(9*(src4 + src5) - (src3 + src6) + 8)>>4];
2648 dst[5*dstStride]= cm[(9*(src5 + src6) - (src4 + src7) + 8)>>4]; 2644 dst[5*dstStride]= cm[(9*(src5 + src6) - (src4 + src7) + 8)>>4];
2649 dst[6*dstStride]= cm[(9*(src6 + src7) - (src5 + src8) + 8)>>4]; 2645 dst[6*dstStride]= cm[(9*(src6 + src7) - (src5 + src8) + 8)>>4];
2650 dst[7*dstStride]= cm[(9*(src7 + src8) - (src6 + src9) + 8)>>4]; 2646 dst[7*dstStride]= cm[(9*(src7 + src8) - (src6 + src9) + 8)>>4];
2651 src++; 2647 src++;
2652 dst++; 2648 dst++;
2653 } 2649 }
2654 } 2650 }
2655 2651
2656 static void put_mspel8_mc00_c (uint8_t *dst, uint8_t *src, int stride){
2657 put_pixels8_c(dst, src, stride, 8);
2658 }
2659
2660 static void put_mspel8_mc10_c(uint8_t *dst, uint8_t *src, int stride){ 2652 static void put_mspel8_mc10_c(uint8_t *dst, uint8_t *src, int stride){
2661 uint8_t half[64]; 2653 uint8_t half[64];
2662 wmv2_mspel8_h_lowpass(half, src, 8, stride, 8); 2654 wmv2_mspel8_h_lowpass(half, src, 8, stride, 8);
2663 put_pixels8_l2(dst, src, half, stride, stride, 8, 8); 2655 put_pixels8_l2(dst, src, half, stride, stride, 8, 8);
2664 } 2656 }
2665 2657
2666 static void put_mspel8_mc20_c(uint8_t *dst, uint8_t *src, int stride){ 2658 static void put_mspel8_mc20_c(uint8_t *dst, uint8_t *src, int stride){
2667 wmv2_mspel8_h_lowpass(dst, src, stride, stride, 8); 2659 wmv2_mspel8_h_lowpass(dst, src, stride, stride, 8);
2668 } 2660 }
2669 2661
(...skipping 1691 matching lines...) Expand 10 before | Expand all | Expand 10 after
4361 ff_rv30dsp_init(c,avctx); 4353 ff_rv30dsp_init(c,avctx);
4362 #endif 4354 #endif
4363 #if CONFIG_RV40_DECODER 4355 #if CONFIG_RV40_DECODER
4364 ff_rv40dsp_init(c,avctx); 4356 ff_rv40dsp_init(c,avctx);
4365 c->put_rv40_qpel_pixels_tab[0][15] = put_rv40_qpel16_mc33_c; 4357 c->put_rv40_qpel_pixels_tab[0][15] = put_rv40_qpel16_mc33_c;
4366 c->avg_rv40_qpel_pixels_tab[0][15] = avg_rv40_qpel16_mc33_c; 4358 c->avg_rv40_qpel_pixels_tab[0][15] = avg_rv40_qpel16_mc33_c;
4367 c->put_rv40_qpel_pixels_tab[1][15] = put_rv40_qpel8_mc33_c; 4359 c->put_rv40_qpel_pixels_tab[1][15] = put_rv40_qpel8_mc33_c;
4368 c->avg_rv40_qpel_pixels_tab[1][15] = avg_rv40_qpel8_mc33_c; 4360 c->avg_rv40_qpel_pixels_tab[1][15] = avg_rv40_qpel8_mc33_c;
4369 #endif 4361 #endif
4370 4362
4371 c->put_mspel_pixels_tab[0]= put_mspel8_mc00_c; 4363 c->put_mspel_pixels_tab[0]= ff_put_pixels8x8_c;
4372 c->put_mspel_pixels_tab[1]= put_mspel8_mc10_c; 4364 c->put_mspel_pixels_tab[1]= put_mspel8_mc10_c;
4373 c->put_mspel_pixels_tab[2]= put_mspel8_mc20_c; 4365 c->put_mspel_pixels_tab[2]= put_mspel8_mc20_c;
4374 c->put_mspel_pixels_tab[3]= put_mspel8_mc30_c; 4366 c->put_mspel_pixels_tab[3]= put_mspel8_mc30_c;
4375 c->put_mspel_pixels_tab[4]= put_mspel8_mc02_c; 4367 c->put_mspel_pixels_tab[4]= put_mspel8_mc02_c;
4376 c->put_mspel_pixels_tab[5]= put_mspel8_mc12_c; 4368 c->put_mspel_pixels_tab[5]= put_mspel8_mc12_c;
4377 c->put_mspel_pixels_tab[6]= put_mspel8_mc22_c; 4369 c->put_mspel_pixels_tab[6]= put_mspel8_mc22_c;
4378 c->put_mspel_pixels_tab[7]= put_mspel8_mc32_c; 4370 c->put_mspel_pixels_tab[7]= put_mspel8_mc32_c;
4379 4371
4380 #define SET_CMP_FUNC(name) \ 4372 #define SET_CMP_FUNC(name) \
4381 c->name[0]= name ## 16_c;\ 4373 c->name[0]= name ## 16_c;\
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
4426 if (CONFIG_H263_DECODER || CONFIG_H263_ENCODER) { 4418 if (CONFIG_H263_DECODER || CONFIG_H263_ENCODER) {
4427 c->h263_h_loop_filter= h263_h_loop_filter_c; 4419 c->h263_h_loop_filter= h263_h_loop_filter_c;
4428 c->h263_v_loop_filter= h263_v_loop_filter_c; 4420 c->h263_v_loop_filter= h263_v_loop_filter_c;
4429 } 4421 }
4430 4422
4431 if (CONFIG_VP3_DECODER) { 4423 if (CONFIG_VP3_DECODER) {
4432 c->vp3_h_loop_filter= ff_vp3_h_loop_filter_c; 4424 c->vp3_h_loop_filter= ff_vp3_h_loop_filter_c;
4433 c->vp3_v_loop_filter= ff_vp3_v_loop_filter_c; 4425 c->vp3_v_loop_filter= ff_vp3_v_loop_filter_c;
4434 c->vp3_idct_dc_add= ff_vp3_idct_dc_add_c; 4426 c->vp3_idct_dc_add= ff_vp3_idct_dc_add_c;
4435 } 4427 }
4436 if (CONFIG_VP6_DECODER) {
4437 c->vp6_filter_diag4= ff_vp6_filter_diag4_c;
4438 }
4439 4428
4440 c->h261_loop_filter= h261_loop_filter_c; 4429 c->h261_loop_filter= h261_loop_filter_c;
4441 4430
4442 c->try_8x8basis= try_8x8basis_c; 4431 c->try_8x8basis= try_8x8basis_c;
4443 c->add_8x8basis= add_8x8basis_c; 4432 c->add_8x8basis= add_8x8basis_c;
4444 4433
4445 #if CONFIG_VORBIS_DECODER 4434 #if CONFIG_VORBIS_DECODER
4446 c->vorbis_inverse_coupling = vorbis_inverse_coupling; 4435 c->vorbis_inverse_coupling = vorbis_inverse_coupling;
4447 #endif 4436 #endif
4448 #if CONFIG_AC3_DECODER 4437 #if CONFIG_AC3_DECODER
(...skipping 15 matching lines...) Expand all
4464 c->scalarproduct_float = scalarproduct_float_c; 4453 c->scalarproduct_float = scalarproduct_float_c;
4465 c->butterflies_float = butterflies_float_c; 4454 c->butterflies_float = butterflies_float_c;
4466 c->vector_fmul_scalar = vector_fmul_scalar_c; 4455 c->vector_fmul_scalar = vector_fmul_scalar_c;
4467 4456
4468 c->vector_fmul_sv_scalar[0] = vector_fmul_sv_scalar_2_c; 4457 c->vector_fmul_sv_scalar[0] = vector_fmul_sv_scalar_2_c;
4469 c->vector_fmul_sv_scalar[1] = vector_fmul_sv_scalar_4_c; 4458 c->vector_fmul_sv_scalar[1] = vector_fmul_sv_scalar_4_c;
4470 4459
4471 c->sv_fmul_scalar[0] = sv_fmul_scalar_2_c; 4460 c->sv_fmul_scalar[0] = sv_fmul_scalar_2_c;
4472 c->sv_fmul_scalar[1] = sv_fmul_scalar_4_c; 4461 c->sv_fmul_scalar[1] = sv_fmul_scalar_4_c;
4473 4462
4474 c->shrink[0]= ff_img_copy_plane; 4463 c->shrink[0]= av_image_copy_plane;
4475 c->shrink[1]= ff_shrink22; 4464 c->shrink[1]= ff_shrink22;
4476 c->shrink[2]= ff_shrink44; 4465 c->shrink[2]= ff_shrink44;
4477 c->shrink[3]= ff_shrink88; 4466 c->shrink[3]= ff_shrink88;
4478 4467
4479 c->prefetch= just_return; 4468 c->prefetch= just_return;
4480 4469
4481 memset(c->put_2tap_qpel_pixels_tab, 0, sizeof(c->put_2tap_qpel_pixels_tab)); 4470 memset(c->put_2tap_qpel_pixels_tab, 0, sizeof(c->put_2tap_qpel_pixels_tab));
4482 memset(c->avg_2tap_qpel_pixels_tab, 0, sizeof(c->avg_2tap_qpel_pixels_tab)); 4471 memset(c->avg_2tap_qpel_pixels_tab, 0, sizeof(c->avg_2tap_qpel_pixels_tab));
4483 4472
4484 if (HAVE_MMX) dsputil_init_mmx (c, avctx); 4473 if (HAVE_MMX) dsputil_init_mmx (c, avctx);
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
4531 break; 4520 break;
4532 case FF_SSE2_IDCT_PERM: 4521 case FF_SSE2_IDCT_PERM:
4533 for(i=0; i<64; i++) 4522 for(i=0; i<64; i++)
4534 c->idct_permutation[i]= (i&0x38) | idct_sse2_row_perm[i&7]; 4523 c->idct_permutation[i]= (i&0x38) | idct_sse2_row_perm[i&7];
4535 break; 4524 break;
4536 default: 4525 default:
4537 av_log(avctx, AV_LOG_ERROR, "Internal error, IDCT permutation not set\n" ); 4526 av_log(avctx, AV_LOG_ERROR, "Internal error, IDCT permutation not set\n" );
4538 } 4527 }
4539 } 4528 }
4540 4529
OLDNEW
« no previous file with comments | « source/patched-ffmpeg-mt/libavcodec/dsputil.h ('k') | source/patched-ffmpeg-mt/libavcodec/dv.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698