diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2012-10-30 17:41:17 +0100 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2012-10-30 17:47:36 +0100 |
commit | a201639a01284003a055f195f4e850a0cf3fc2d5 (patch) | |
tree | 959d66dc788f6d76941e646bbb49dea93209b231 /libavcodec/h264pred.c | |
parent | 788afee86e283535f37fdcb649b2f180ad305f75 (diff) | |
parent | 7658295ba353b8bedb3af904f46cfb1ba0cea86a (diff) | |
download | ffmpeg-a201639a01284003a055f195f4e850a0cf3fc2d5.tar.gz |
Merge remote-tracking branch 'qatar/master'
* qatar/master:
pixfmt: support more yuva formats
swscale: support gray to 9bit and 10bit formats
configure: rewrite print_config() function using awk
FATE: fix (AD)PCM test dependencies broken in e519990
Use ptrdiff_t instead of int for intra pred "stride" function parameter.
x86: use PRED4x4/8x8/8x8L/16x16 macros to declare intrapred prototypes.
Conflicts:
libavcodec/h264pred.c
libavcodec/h264pred_template.c
libavutil/pixfmt.h
libswscale/swscale_unscaled.c
tests/ref/lavfi/pixdesc
tests/ref/lavfi/pixfmts_copy
tests/ref/lavfi/pixfmts_null
tests/ref/lavfi/pixfmts_scale
tests/ref/lavfi/pixfmts_vflip
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec/h264pred.c')
-rw-r--r-- | libavcodec/h264pred.c | 79 |
1 files changed, 58 insertions, 21 deletions
diff --git a/libavcodec/h264pred.c b/libavcodec/h264pred.c index 5619efd109..f83924da34 100644 --- a/libavcodec/h264pred.c +++ b/libavcodec/h264pred.c @@ -48,7 +48,9 @@ #include "h264pred_template.c" #undef BIT_DEPTH -static void pred4x4_vertical_vp8_c(uint8_t *src, const uint8_t *topright, int stride){ +static void pred4x4_vertical_vp8_c(uint8_t *src, const uint8_t *topright, + ptrdiff_t stride) +{ const unsigned lt = src[-1-1*stride]; LOAD_TOP_EDGE LOAD_TOP_RIGHT_EDGE @@ -63,7 +65,9 @@ static void pred4x4_vertical_vp8_c(uint8_t *src, const uint8_t *topright, int st AV_WN32A(src+3*stride, v); } -static void pred4x4_horizontal_vp8_c(uint8_t *src, const uint8_t *topright, int stride){ +static void pred4x4_horizontal_vp8_c(uint8_t *src, const uint8_t *topright, + ptrdiff_t stride) +{ const unsigned lt = src[-1-1*stride]; LOAD_LEFT_EDGE @@ -73,7 +77,9 @@ static void pred4x4_horizontal_vp8_c(uint8_t *src, const uint8_t *topright, int AV_WN32A(src+3*stride, ((l2 + 2*l3 + l3 + 2) >> 2)*0x01010101); } -static void pred4x4_down_left_svq3_c(uint8_t *src, const uint8_t *topright, int stride){ +static void pred4x4_down_left_svq3_c(uint8_t *src, const uint8_t *topright, + ptrdiff_t stride) +{ LOAD_TOP_EDGE LOAD_LEFT_EDGE @@ -95,7 +101,9 @@ static void pred4x4_down_left_svq3_c(uint8_t *src, const uint8_t *topright, int src[3+3*stride]=(l3 + t3)>>1; } -static void pred4x4_down_left_rv40_c(uint8_t *src, const uint8_t *topright, int stride){ +static void pred4x4_down_left_rv40_c(uint8_t *src, const uint8_t *topright, + ptrdiff_t stride) +{ LOAD_TOP_EDGE LOAD_TOP_RIGHT_EDGE LOAD_LEFT_EDGE @@ -119,7 +127,10 @@ static void pred4x4_down_left_rv40_c(uint8_t *src, const uint8_t *topright, int src[3+3*stride]=(t6 + t7 + 1 + l6 + l7 + 1)>>2; } -static void pred4x4_down_left_rv40_nodown_c(uint8_t *src, const uint8_t *topright, int stride){ +static void pred4x4_down_left_rv40_nodown_c(uint8_t *src, + const uint8_t *topright, + ptrdiff_t stride) +{ LOAD_TOP_EDGE LOAD_TOP_RIGHT_EDGE LOAD_LEFT_EDGE @@ -142,8 +153,11 @@ static void pred4x4_down_left_rv40_nodown_c(uint8_t *src, const uint8_t *toprigh src[3+3*stride]=(t6 + t7 + 1 + 2*l3 + 1)>>2; } -static void pred4x4_vertical_left_rv40(uint8_t *src, const uint8_t *topright, int stride, - const int l0, const int l1, const int l2, const int l3, const int l4){ +static void pred4x4_vertical_left_rv40(uint8_t *src, const uint8_t *topright, + ptrdiff_t stride, + const int l0, const int l1, const int l2, + const int l3, const int l4) +{ LOAD_TOP_EDGE LOAD_TOP_RIGHT_EDGE @@ -165,20 +179,27 @@ static void pred4x4_vertical_left_rv40(uint8_t *src, const uint8_t *topright, in src[3+3*stride]=(t4 + 2*t5 + t6 + 2)>>2; } -static void pred4x4_vertical_left_rv40_c(uint8_t *src, const uint8_t *topright, int stride){ +static void pred4x4_vertical_left_rv40_c(uint8_t *src, const uint8_t *topright, + ptrdiff_t stride) +{ LOAD_LEFT_EDGE LOAD_DOWN_LEFT_EDGE pred4x4_vertical_left_rv40(src, topright, stride, l0, l1, l2, l3, l4); } -static void pred4x4_vertical_left_rv40_nodown_c(uint8_t *src, const uint8_t *topright, int stride){ +static void pred4x4_vertical_left_rv40_nodown_c(uint8_t *src, + const uint8_t *topright, + ptrdiff_t stride) +{ LOAD_LEFT_EDGE pred4x4_vertical_left_rv40(src, topright, stride, l0, l1, l2, l3, l3); } -static void pred4x4_vertical_left_vp8_c(uint8_t *src, const uint8_t *topright, int stride){ +static void pred4x4_vertical_left_vp8_c(uint8_t *src, const uint8_t *topright, + ptrdiff_t stride) +{ LOAD_TOP_EDGE LOAD_TOP_RIGHT_EDGE @@ -200,7 +221,9 @@ static void pred4x4_vertical_left_vp8_c(uint8_t *src, const uint8_t *topright, i src[3+3*stride]=(t5 + 2*t6 + t7 + 2)>>2; } -static void pred4x4_horizontal_up_rv40_c(uint8_t *src, const uint8_t *topright, int stride){ +static void pred4x4_horizontal_up_rv40_c(uint8_t *src, const uint8_t *topright, + ptrdiff_t stride) +{ LOAD_LEFT_EDGE LOAD_DOWN_LEFT_EDGE LOAD_TOP_EDGE @@ -224,7 +247,10 @@ static void pred4x4_horizontal_up_rv40_c(uint8_t *src, const uint8_t *topright, src[3+3*stride]=(l4 + 2*l5 + l6 + 2)>>2; } -static void pred4x4_horizontal_up_rv40_nodown_c(uint8_t *src, const uint8_t *topright, int stride){ +static void pred4x4_horizontal_up_rv40_nodown_c(uint8_t *src, + const uint8_t *topright, + ptrdiff_t stride) +{ LOAD_LEFT_EDGE LOAD_TOP_EDGE LOAD_TOP_RIGHT_EDGE @@ -247,7 +273,9 @@ static void pred4x4_horizontal_up_rv40_nodown_c(uint8_t *src, const uint8_t *top src[3+3*stride]=l3; } -static void pred4x4_tm_vp8_c(uint8_t *src, const uint8_t *topright, int stride){ +static void pred4x4_tm_vp8_c(uint8_t *src, const uint8_t *topright, + ptrdiff_t stride) +{ uint8_t *cm = ff_cropTbl + MAX_NEG_CROP - src[-1-stride]; uint8_t *top = src-stride; int y; @@ -262,15 +290,18 @@ static void pred4x4_tm_vp8_c(uint8_t *src, const uint8_t *topright, int stride){ } } -static void pred16x16_plane_svq3_c(uint8_t *src, int stride){ +static void pred16x16_plane_svq3_c(uint8_t *src, ptrdiff_t stride) +{ pred16x16_plane_compat_8_c(src, stride, 1, 0); } -static void pred16x16_plane_rv40_c(uint8_t *src, int stride){ +static void pred16x16_plane_rv40_c(uint8_t *src, ptrdiff_t stride) +{ pred16x16_plane_compat_8_c(src, stride, 0, 1); } -static void pred16x16_tm_vp8_c(uint8_t *src, int stride){ +static void pred16x16_tm_vp8_c(uint8_t *src, ptrdiff_t stride) +{ uint8_t *cm = ff_cropTbl + MAX_NEG_CROP - src[-1-stride]; uint8_t *top = src-stride; int y; @@ -297,7 +328,8 @@ static void pred16x16_tm_vp8_c(uint8_t *src, int stride){ } } -static void pred8x8_left_dc_rv40_c(uint8_t *src, int stride){ +static void pred8x8_left_dc_rv40_c(uint8_t *src, ptrdiff_t stride) +{ int i; unsigned dc0; @@ -312,7 +344,8 @@ static void pred8x8_left_dc_rv40_c(uint8_t *src, int stride){ } } -static void pred8x8_top_dc_rv40_c(uint8_t *src, int stride){ +static void pred8x8_top_dc_rv40_c(uint8_t *src, ptrdiff_t stride) +{ int i; unsigned dc0; @@ -327,7 +360,8 @@ static void pred8x8_top_dc_rv40_c(uint8_t *src, int stride){ } } -static void pred8x8_dc_rv40_c(uint8_t *src, int stride){ +static void pred8x8_dc_rv40_c(uint8_t *src, ptrdiff_t stride) +{ int i; unsigned dc0 = 0; @@ -348,7 +382,8 @@ static void pred8x8_dc_rv40_c(uint8_t *src, int stride){ } } -static void pred8x8_tm_vp8_c(uint8_t *src, int stride){ +static void pred8x8_tm_vp8_c(uint8_t *src, ptrdiff_t stride) +{ uint8_t *cm = ff_cropTbl + MAX_NEG_CROP - src[-1-stride]; uint8_t *top = src-stride; int y; @@ -370,7 +405,9 @@ static void pred8x8_tm_vp8_c(uint8_t *src, int stride){ /** * Set the intra prediction function pointers. */ -void ff_h264_pred_init(H264PredContext *h, int codec_id, const int bit_depth, const int chroma_format_idc){ +void ff_h264_pred_init(H264PredContext *h, int codec_id, const int bit_depth, + const int chroma_format_idc) +{ // MpegEncContext * const s = &h->s; #undef FUNC |