* commit '82bb3048013201c0095d2853d4623633d912252f': dsputil: Use correct type in me_cmp_func function pointer
Unified · Split
| @@ -23,6 +23,7 @@ · 22 unmodified lines | |||
| 23 | #include "libavutil/attributes.h" | 23 | #include "libavutil/attributes.h" |
| 24 | #include "libavcodec/avcodec.h" | 24 | #include "libavcodec/avcodec.h" |
| 25 | #include "libavcodec/dsputil.h" | 25 | #include "libavcodec/dsputil.h" |
| 26 | #include "libavcodec/mpegvideo.h" | ||
| 26 | #include "dsputil_arm.h" | 27 | #include "dsputil_arm.h" |
| 27 | 28 | ||
| 28 | void ff_simple_idct_armv6(int16_t *data); | 29 | void ff_simple_idct_armv6(int16_t *data); |
| @@ -36,17 +37,17 @@ void ff_get_pixels_armv6(int16_t *block, const uint8_t *pixels, int stride); · 7 unmodified lines | |||
| 36 | void ff_diff_pixels_armv6(int16_t *block, const uint8_t *s1, | 37 | void ff_diff_pixels_armv6(int16_t *block, const uint8_t *s1, |
| 37 | const uint8_t *s2, int stride); | 38 | const uint8_t *s2, int stride); |
| 38 | 39 | ||
| 39 | int ff_pix_abs16_armv6(void *s, uint8_t *blk1, uint8_t *blk2, | 40 | int ff_pix_abs16_armv6(MpegEncContext *s, uint8_t *blk1, uint8_t *blk2, |
| 40 | int line_size, int h); | 41 | int line_size, int h); |
| 41 | int ff_pix_abs16_x2_armv6(void *s, uint8_t *blk1, uint8_t *blk2, | 42 | int ff_pix_abs16_x2_armv6(MpegEncContext *s, uint8_t *blk1, uint8_t *blk2, |
| 42 | int line_size, int h); | 43 | int line_size, int h); |
| 43 | int ff_pix_abs16_y2_armv6(void *s, uint8_t *blk1, uint8_t *blk2, | 44 | int ff_pix_abs16_y2_armv6(MpegEncContext *s, uint8_t *blk1, uint8_t *blk2, |
| 44 | int line_size, int h); | 45 | int line_size, int h); |
| 45 | 46 | ||
| 46 | int ff_pix_abs8_armv6(void *s, uint8_t *blk1, uint8_t *blk2, | 47 | int ff_pix_abs8_armv6(MpegEncContext *s, uint8_t *blk1, uint8_t *blk2, |
| 47 | int line_size, int h); | 48 | int line_size, int h); |
| 48 | 49 | ||
| 49 | int ff_sse16_armv6(void *s, uint8_t *blk1, uint8_t *blk2, | 50 | int ff_sse16_armv6(MpegEncContext *s, uint8_t *blk1, uint8_t *blk2, |
| 50 | int line_size, int h); | 51 | int line_size, int h); |
| 51 | 52 | ||
| 52 | int ff_pix_norm1_armv6(uint8_t *pix, int line_size); | 53 | int ff_pix_norm1_armv6(uint8_t *pix, int line_size); |
| @@ -28,6 +28,7 @@ · 27 unmodified lines | |||
| 28 | #include "libavutil/bfin/attributes.h" | 28 | #include "libavutil/bfin/attributes.h" |
| 29 | #include "libavcodec/avcodec.h" | 29 | #include "libavcodec/avcodec.h" |
| 30 | #include "libavcodec/dsputil.h" | 30 | #include "libavcodec/dsputil.h" |
| 31 | #include "libavcodec/mpegvideo.h" | ||
| 31 | 32 | ||
| 32 | void ff_bfin_idct(int16_t *block) attribute_l1_text; | 33 | void ff_bfin_idct(int16_t *block) attribute_l1_text; |
| 33 | void ff_bfin_fdct(int16_t *block) attribute_l1_text; | 34 | void ff_bfin_fdct(int16_t *block) attribute_l1_text; |
| @@ -50,11 +51,11 @@ int ff_bfin_z_sad8x8(uint8_t *blk1, uint8_t *blk2, int dsz, · 16 unmodified lines | |||
| 50 | int ff_bfin_z_sad16x16(uint8_t *blk1, uint8_t *blk2, int dsz, | 51 | int ff_bfin_z_sad16x16(uint8_t *blk1, uint8_t *blk2, int dsz, |
| 51 | int line_size, int h) attribute_l1_text; | 52 | int line_size, int h) attribute_l1_text; |
| 52 | 53 | ||
| 53 | int ff_bfin_sse4(void *v, uint8_t *pix1, uint8_t *pix2, | 54 | int ff_bfin_sse4(MpegEncContext *v, uint8_t *pix1, uint8_t *pix2, |
| 54 | int line_size, int h) attribute_l1_text; | 55 | int line_size, int h) attribute_l1_text; |
| 55 | int ff_bfin_sse8(void *v, uint8_t *pix1, uint8_t *pix2, | 56 | int ff_bfin_sse8(MpegEncContext *v, uint8_t *pix1, uint8_t *pix2, |
| 56 | int line_size, int h) attribute_l1_text; | 57 | int line_size, int h) attribute_l1_text; |
| 57 | int ff_bfin_sse16(void *v, uint8_t *pix1, uint8_t *pix2, | 58 | int ff_bfin_sse16(MpegEncContext *v, uint8_t *pix1, uint8_t *pix2, |
| 58 | int line_size, int h) attribute_l1_text; | 59 | int line_size, int h) attribute_l1_text; |
| 59 | 60 | ||
| 60 | static void bfin_idct_add(uint8_t *dest, int line_size, int16_t *block) | 61 | static void bfin_idct_add(uint8_t *dest, int line_size, int16_t *block) |
| @@ -81,7 +82,7 @@ static void bfin_clear_blocks(int16_t *blocks) · 20 unmodified lines | |||
| 81 | ::"a" (blocks) : "P0", "I0", "R0"); | 82 | ::"a" (blocks) : "P0", "I0", "R0"); |
| 82 | } | 83 | } |
| 83 | 84 | ||
| 84 | static int bfin_pix_abs16(void *c, uint8_t *blk1, uint8_t *blk2, | 85 | static int bfin_pix_abs16(MpegEncContext *c, uint8_t *blk1, uint8_t *blk2, |
| 85 | int line_size, int h) | 86 | int line_size, int h) |
| 86 | { | 87 | { |
| 87 | return ff_bfin_z_sad16x16(blk1, blk2, line_size, line_size, h); | 88 | return ff_bfin_z_sad16x16(blk1, blk2, line_size, line_size, h); |
| @@ -89,48 +90,48 @@ static int bfin_pix_abs16(void *c, uint8_t *blk1, uint8_t *blk2, · 1 unmodified line | |||
| 89 | 90 | ||
| 90 | static uint8_t vtmp_blk[256] attribute_l1_data_b; | 91 | static uint8_t vtmp_blk[256] attribute_l1_data_b; |
| 91 | 92 | ||
| 92 | static int bfin_pix_abs16_x2(void *c, uint8_t *blk1, uint8_t *blk2, | 93 | static int bfin_pix_abs16_x2(MpegEncContext *c, uint8_t *blk1, uint8_t *blk2, |
| 93 | int line_size, int h) | 94 | int line_size, int h) |
| 94 | { | 95 | { |
| 95 | ff_bfin_put_pixels16uc(vtmp_blk, blk2, blk2 + 1, 16, line_size, h); | 96 | ff_bfin_put_pixels16uc(vtmp_blk, blk2, blk2 + 1, 16, line_size, h); |
| 96 | return ff_bfin_z_sad16x16(blk1, vtmp_blk, line_size, 16, h); | 97 | return ff_bfin_z_sad16x16(blk1, vtmp_blk, line_size, 16, h); |
| 97 | } | 98 | } |
| 98 | 99 | ||
| 99 | static int bfin_pix_abs16_y2(void *c, uint8_t *blk1, uint8_t *blk2, | 100 | static int bfin_pix_abs16_y2(MpegEncContext *c, uint8_t *blk1, uint8_t *blk2, |
| 100 | int line_size, int h) | 101 | int line_size, int h) |
| 101 | { | 102 | { |
| 102 | ff_bfin_put_pixels16uc(vtmp_blk, blk2, blk2 + line_size, 16, line_size, h); | 103 | ff_bfin_put_pixels16uc(vtmp_blk, blk2, blk2 + line_size, 16, line_size, h); |
| 103 | return ff_bfin_z_sad16x16(blk1, vtmp_blk, line_size, 16, h); | 104 | return ff_bfin_z_sad16x16(blk1, vtmp_blk, line_size, 16, h); |
| 104 | } | 105 | } |
| 105 | 106 | ||
| 106 | static int bfin_pix_abs16_xy2(void *c, uint8_t *blk1, uint8_t *blk2, | 107 | static int bfin_pix_abs16_xy2(MpegEncContext *c, uint8_t *blk1, uint8_t *blk2, |
| 107 | int line_size, int h) | 108 | int line_size, int h) |
| 108 | { | 109 | { |
| 109 | ff_bfin_z_put_pixels16_xy2(vtmp_blk, blk2, 16, line_size, h); | 110 | ff_bfin_z_put_pixels16_xy2(vtmp_blk, blk2, 16, line_size, h); |
| 110 | return ff_bfin_z_sad16x16(blk1, vtmp_blk, line_size, 16, h); | 111 | return ff_bfin_z_sad16x16(blk1, vtmp_blk, line_size, 16, h); |
| 111 | } | 112 | } |
| 112 | 113 | ||
| 113 | static int bfin_pix_abs8(void *c, uint8_t *blk1, uint8_t *blk2, | 114 | static int bfin_pix_abs8(MpegEncContext *c, uint8_t *blk1, uint8_t *blk2, |
| 114 | int line_size, int h) | 115 | int line_size, int h) |
| 115 | { | 116 | { |
| 116 | return ff_bfin_z_sad8x8(blk1, blk2, line_size, line_size, h); | 117 | return ff_bfin_z_sad8x8(blk1, blk2, line_size, line_size, h); |
| 117 | } | 118 | } |
| 118 | 119 | ||
| 119 | static int bfin_pix_abs8_x2(void *c, uint8_t *blk1, uint8_t *blk2, | 120 | static int bfin_pix_abs8_x2(MpegEncContext *c, uint8_t *blk1, uint8_t *blk2, |
| 120 | int line_size, int h) | 121 | int line_size, int h) |
| 121 | { | 122 | { |
| 122 | ff_bfin_put_pixels8uc(vtmp_blk, blk2, blk2 + 1, 8, line_size, h); | 123 | ff_bfin_put_pixels8uc(vtmp_blk, blk2, blk2 + 1, 8, line_size, h); |
| 123 | return ff_bfin_z_sad8x8(blk1, vtmp_blk, line_size, 8, h); | 124 | return ff_bfin_z_sad8x8(blk1, vtmp_blk, line_size, 8, h); |
| 124 | } | 125 | } |
| 125 | 126 | ||
| 126 | static int bfin_pix_abs8_y2(void *c, uint8_t *blk1, uint8_t *blk2, | 127 | static int bfin_pix_abs8_y2(MpegEncContext *c, uint8_t *blk1, uint8_t *blk2, |
| 127 | int line_size, int h) | 128 | int line_size, int h) |
| 128 | { | 129 | { |
| 129 | ff_bfin_put_pixels8uc(vtmp_blk, blk2, blk2 + line_size, 8, line_size, h); | 130 | ff_bfin_put_pixels8uc(vtmp_blk, blk2, blk2 + line_size, 8, line_size, h); |
| 130 | return ff_bfin_z_sad8x8(blk1, vtmp_blk, line_size, 8, h); | 131 | return ff_bfin_z_sad8x8(blk1, vtmp_blk, line_size, 8, h); |
| 131 | } | 132 | } |
| 132 | 133 | ||
| 133 | static int bfin_pix_abs8_xy2(void *c, uint8_t *blk1, uint8_t *blk2, | 134 | static int bfin_pix_abs8_xy2(MpegEncContext *c, uint8_t *blk1, uint8_t *blk2, |
| 134 | int line_size, int h) | 135 | int line_size, int h) |
| 135 | { | 136 | { |
| 136 | ff_bfin_z_put_pixels8_xy2(vtmp_blk, blk2, 8, line_size, h); | 137 | ff_bfin_z_put_pixels8_xy2(vtmp_blk, blk2, 8, line_size, h); |
| @@ -254,7 +254,8 @@ static void bswap16_buf(uint16_t *dst, const uint16_t *src, int len) · 253 unmodified lines | |||
| 254 | *dst++ = av_bswap16(*src++); | 254 | *dst++ = av_bswap16(*src++); |
| 255 | } | 255 | } |
| 256 | 256 | ||
| 257 | static int sse4_c(void *v, uint8_t *pix1, uint8_t *pix2, int line_size, int h) | 257 | static int sse4_c(MpegEncContext *v, uint8_t *pix1, uint8_t *pix2, |
| 258 | int line_size, int h) | ||
| 258 | { | 259 | { |
| 259 | int s = 0, i; | 260 | int s = 0, i; |
| 260 | uint32_t *sq = ff_square_tab + 256; | 261 | uint32_t *sq = ff_square_tab + 256; |
| @@ -270,7 +271,8 @@ static int sse4_c(void *v, uint8_t *pix1, uint8_t *pix2, int line_size, int h) · 9 unmodified lines | |||
| 270 | return s; | 271 | return s; |
| 271 | } | 272 | } |
| 272 | 273 | ||
| 273 | static int sse8_c(void *v, uint8_t *pix1, uint8_t *pix2, int line_size, int h) | 274 | static int sse8_c(MpegEncContext *v, uint8_t *pix1, uint8_t *pix2, |
| 275 | int line_size, int h) | ||
| 274 | { | 276 | { |
| 275 | int s = 0, i; | 277 | int s = 0, i; |
| 276 | uint32_t *sq = ff_square_tab + 256; | 278 | uint32_t *sq = ff_square_tab + 256; |
| @@ -290,7 +292,8 @@ static int sse8_c(void *v, uint8_t *pix1, uint8_t *pix2, int line_size, int h) · 13 unmodified lines | |||
| 290 | return s; | 292 | return s; |
| 291 | } | 293 | } |
| 292 | 294 | ||
| 293 | static int sse16_c(void *v, uint8_t *pix1, uint8_t *pix2, int line_size, int h) | 295 | static int sse16_c(MpegEncContext *v, uint8_t *pix1, uint8_t *pix2, |
| 296 | int line_size, int h) | ||
| 294 | { | 297 | { |
| 295 | int s = 0, i; | 298 | int s = 0, i; |
| 296 | uint32_t *sq = ff_square_tab + 256; | 299 | uint32_t *sq = ff_square_tab + 256; |
| @@ -1742,7 +1745,7 @@ static void put_mspel8_mc22_c(uint8_t *dst, uint8_t *src, ptrdiff_t stride) · 1445 unmodified lines | |||
| 1742 | wmv2_mspel8_v_lowpass(dst, halfH + 8, stride, 8, 8); | 1745 | wmv2_mspel8_v_lowpass(dst, halfH + 8, stride, 8, 8); |
| 1743 | } | 1746 | } |
| 1744 | 1747 | ||
| 1745 | static inline int pix_abs16_c(void *v, uint8_t *pix1, uint8_t *pix2, | 1748 | static inline int pix_abs16_c(MpegEncContext *v, uint8_t *pix1, uint8_t *pix2, |
| 1746 | int line_size, int h) | 1749 | int line_size, int h) |
| 1747 | { | 1750 | { |
| 1748 | int s = 0, i; | 1751 | int s = 0, i; |
| @@ -1770,7 +1773,7 @@ static inline int pix_abs16_c(void *v, uint8_t *pix1, uint8_t *pix2, · 21 unmodified lines | |||
| 1770 | return s; | 1773 | return s; |
| 1771 | } | 1774 | } |
| 1772 | 1775 | ||
| 1773 | static int pix_abs16_x2_c(void *v, uint8_t *pix1, uint8_t *pix2, | 1776 | static int pix_abs16_x2_c(MpegEncContext *v, uint8_t *pix1, uint8_t *pix2, |
| 1774 | int line_size, int h) | 1777 | int line_size, int h) |
| 1775 | { | 1778 | { |
| 1776 | int s = 0, i; | 1779 | int s = 0, i; |
| @@ -1798,7 +1801,7 @@ static int pix_abs16_x2_c(void *v, uint8_t *pix1, uint8_t *pix2, · 21 unmodified lines | |||
| 1798 | return s; | 1801 | return s; |
| 1799 | } | 1802 | } |
| 1800 | 1803 | ||
| 1801 | static int pix_abs16_y2_c(void *v, uint8_t *pix1, uint8_t *pix2, | 1804 | static int pix_abs16_y2_c(MpegEncContext *v, uint8_t *pix1, uint8_t *pix2, |
| 1802 | int line_size, int h) | 1805 | int line_size, int h) |
| 1803 | { | 1806 | { |
| 1804 | int s = 0, i; | 1807 | int s = 0, i; |
| @@ -1828,7 +1831,7 @@ static int pix_abs16_y2_c(void *v, uint8_t *pix1, uint8_t *pix2, · 23 unmodified lines | |||
| 1828 | return s; | 1831 | return s; |
| 1829 | } | 1832 | } |
| 1830 | 1833 | ||
| 1831 | static int pix_abs16_xy2_c(void *v, uint8_t *pix1, uint8_t *pix2, | 1834 | static int pix_abs16_xy2_c(MpegEncContext *v, uint8_t *pix1, uint8_t *pix2, |
| 1832 | int line_size, int h) | 1835 | int line_size, int h) |
| 1833 | { | 1836 | { |
| 1834 | int s = 0, i; | 1837 | int s = 0, i; |
| @@ -1858,7 +1861,7 @@ static int pix_abs16_xy2_c(void *v, uint8_t *pix1, uint8_t *pix2, · 23 unmodified lines | |||
| 1858 | return s; | 1861 | return s; |
| 1859 | } | 1862 | } |
| 1860 | 1863 | ||
| 1861 | static inline int pix_abs8_c(void *v, uint8_t *pix1, uint8_t *pix2, | 1864 | static inline int pix_abs8_c(MpegEncContext *v, uint8_t *pix1, uint8_t *pix2, |
| 1862 | int line_size, int h) | 1865 | int line_size, int h) |
| 1863 | { | 1866 | { |
| 1864 | int s = 0, i; | 1867 | int s = 0, i; |
| @@ -1878,7 +1881,7 @@ static inline int pix_abs8_c(void *v, uint8_t *pix1, uint8_t *pix2, · 13 unmodified lines | |||
| 1878 | return s; | 1881 | return s; |
| 1879 | } | 1882 | } |
| 1880 | 1883 | ||
| 1881 | static int pix_abs8_x2_c(void *v, uint8_t *pix1, uint8_t *pix2, | 1884 | static int pix_abs8_x2_c(MpegEncContext *v, uint8_t *pix1, uint8_t *pix2, |
| 1882 | int line_size, int h) | 1885 | int line_size, int h) |
| 1883 | { | 1886 | { |
| 1884 | int s = 0, i; | 1887 | int s = 0, i; |
| @@ -1898,7 +1901,7 @@ static int pix_abs8_x2_c(void *v, uint8_t *pix1, uint8_t *pix2, · 13 unmodified lines | |||
| 1898 | return s; | 1901 | return s; |
| 1899 | } | 1902 | } |
| 1900 | 1903 | ||
| 1901 | static int pix_abs8_y2_c(void *v, uint8_t *pix1, uint8_t *pix2, | 1904 | static int pix_abs8_y2_c(MpegEncContext *v, uint8_t *pix1, uint8_t *pix2, |
| 1902 | int line_size, int h) | 1905 | int line_size, int h) |
| 1903 | { | 1906 | { |
| 1904 | int s = 0, i; | 1907 | int s = 0, i; |
| @@ -1920,7 +1923,7 @@ static int pix_abs8_y2_c(void *v, uint8_t *pix1, uint8_t *pix2, · 15 unmodified lines | |||
| 1920 | return s; | 1923 | return s; |
| 1921 | } | 1924 | } |
| 1922 | 1925 | ||
| 1923 | static int pix_abs8_xy2_c(void *v, uint8_t *pix1, uint8_t *pix2, | 1926 | static int pix_abs8_xy2_c(MpegEncContext *v, uint8_t *pix1, uint8_t *pix2, |
| 1924 | int line_size, int h) | 1927 | int line_size, int h) |
| 1925 | { | 1928 | { |
| 1926 | int s = 0, i; | 1929 | int s = 0, i; |
| @@ -1942,9 +1945,8 @@ static int pix_abs8_xy2_c(void *v, uint8_t *pix1, uint8_t *pix2, · 15 unmodified lines | |||
| 1942 | return s; | 1945 | return s; |
| 1943 | } | 1946 | } |
| 1944 | 1947 | ||
| 1945 | static int nsse16_c(void *v, uint8_t *s1, uint8_t *s2, int stride, int h) | 1948 | static int nsse16_c(MpegEncContext *c, uint8_t *s1, uint8_t *s2, int stride, int h) |
| 1946 | { | 1949 | { |
| 1947 | MpegEncContext *c = v; | ||
| 1948 | int score1 = 0, score2 = 0, x, y; | 1950 | int score1 = 0, score2 = 0, x, y; |
| 1949 | 1951 | ||
| 1950 | for (y = 0; y < h; y++) { | 1952 | for (y = 0; y < h; y++) { |
| @@ -1967,9 +1969,8 @@ static int nsse16_c(void *v, uint8_t *s1, uint8_t *s2, int stride, int h) · 16 unmodified lines | |||
| 1967 | return score1 + FFABS(score2) * 8; | 1969 | return score1 + FFABS(score2) * 8; |
| 1968 | } | 1970 | } |
| 1969 | 1971 | ||
| 1970 | static int nsse8_c(void *v, uint8_t *s1, uint8_t *s2, int stride, int h) | 1972 | static int nsse8_c(MpegEncContext *c, uint8_t *s1, uint8_t *s2, int stride, int h) |
| 1971 | { | 1973 | { |
| 1972 | MpegEncContext *c = v; | ||
| 1973 | int score1 = 0, score2 = 0, x, y; | 1974 | int score1 = 0, score2 = 0, x, y; |
| 1974 | 1975 | ||
| 1975 | for (y = 0; y < h; y++) { | 1976 | for (y = 0; y < h; y++) { |
| @@ -2021,7 +2022,8 @@ static void add_8x8basis_c(int16_t rem[64], int16_t basis[64], int scale) · 45 unmodified lines | |||
| 2021 | (BASIS_SHIFT - RECON_SHIFT); | 2022 | (BASIS_SHIFT - RECON_SHIFT); |
| 2022 | } | 2023 | } |
| 2023 | 2024 | ||
| 2024 | static int zero_cmp(void *s, uint8_t *a, uint8_t *b, int stride, int h) | 2025 | static int zero_cmp(MpegEncContext *s, uint8_t *a, uint8_t *b, |
| 2026 | int stride, int h) | ||
| 2025 | { | 2027 | { |
| 2026 | return 0; | 2028 | return 0; |
| 2027 | } | 2029 | } |
| @@ -2245,7 +2247,7 @@ static void add_hfyu_left_prediction_bgr32_c(uint8_t *dst, const uint8_t *src, · 217 unmodified lines | |||
| 2245 | 2247 | ||
| 2246 | #define BUTTERFLYA(x, y) (FFABS((x) + (y)) + FFABS((x) - (y))) | 2248 | #define BUTTERFLYA(x, y) (FFABS((x) + (y)) + FFABS((x) - (y))) |
| 2247 | 2249 | ||
| 2248 | static int hadamard8_diff8x8_c(/* MpegEncContext */ void *s, uint8_t *dst, | 2250 | static int hadamard8_diff8x8_c(MpegEncContext *s, uint8_t *dst, |
| 2249 | uint8_t *src, int stride, int h) | 2251 | uint8_t *src, int stride, int h) |
| 2250 | { | 2252 | { |
| 2251 | int i, temp[64], sum = 0; | 2253 | int i, temp[64], sum = 0; |
| @@ -2297,7 +2299,7 @@ static int hadamard8_diff8x8_c(/* MpegEncContext */ void *s, uint8_t *dst, · 45 unmodified lines | |||
| 2297 | return sum; | 2299 | return sum; |
| 2298 | } | 2300 | } |
| 2299 | 2301 | ||
| 2300 | static int hadamard8_intra8x8_c(/* MpegEncContext */ void *s, uint8_t *src, | 2302 | static int hadamard8_intra8x8_c(MpegEncContext *s, uint8_t *src, |
| 2301 | uint8_t *dummy, int stride, int h) | 2303 | uint8_t *dummy, int stride, int h) |
| 2302 | { | 2304 | { |
| 2303 | int i, temp[64], sum = 0; | 2305 | int i, temp[64], sum = 0; |
| @@ -2349,10 +2351,9 @@ static int hadamard8_intra8x8_c(/* MpegEncContext */ void *s, uint8_t *src, · 45 unmodified lines | |||
| 2349 | return sum; | 2351 | return sum; |
| 2350 | } | 2352 | } |
| 2351 | 2353 | ||
| 2352 | static int dct_sad8x8_c(/* MpegEncContext */ void *c, uint8_t *src1, | 2354 | static int dct_sad8x8_c(MpegEncContext *s, uint8_t *src1, |
| 2353 | uint8_t *src2, int stride, int h) | 2355 | uint8_t *src2, int stride, int h) |
| 2354 | { | 2356 | { |
| 2355 | MpegEncContext *const s = (MpegEncContext *) c; | ||
| 2356 | LOCAL_ALIGNED_16(int16_t, temp, [64]); | 2357 | LOCAL_ALIGNED_16(int16_t, temp, [64]); |
| 2357 | 2358 | ||
| 2358 | av_assert2(h == 8); | 2359 | av_assert2(h == 8); |
| @@ -2391,10 +2392,9 @@ static int dct_sad8x8_c(/* MpegEncContext */ void *c, uint8_t *src1, · 32 unmodified lines | |||
| 2391 | DST(7, (a4 >> 2) - a7); \ | 2392 | DST(7, (a4 >> 2) - a7); \ |
| 2392 | } | 2393 | } |
| 2393 | 2394 | ||
| 2394 | static int dct264_sad8x8_c(/* MpegEncContext */ void *c, uint8_t *src1, | 2395 | static int dct264_sad8x8_c(MpegEncContext *s, uint8_t *src1, |
| 2395 | uint8_t *src2, int stride, int h) | 2396 | uint8_t *src2, int stride, int h) |
| 2396 | { | 2397 | { |
| 2397 | MpegEncContext *const s = (MpegEncContext *) c; | ||
| 2398 | int16_t dct[8][8]; | 2398 | int16_t dct[8][8]; |
| 2399 | int i, sum = 0; | 2399 | int i, sum = 0; |
| 2400 | 2400 | ||
| @@ -2417,10 +2417,9 @@ static int dct264_sad8x8_c(/* MpegEncContext */ void *c, uint8_t *src1, · 16 unmodified lines | |||
| 2417 | } | 2417 | } |
| 2418 | #endif | 2418 | #endif |
| 2419 | 2419 | ||
| 2420 | static int dct_max8x8_c(/* MpegEncContext */ void *c, uint8_t *src1, | 2420 | static int dct_max8x8_c(MpegEncContext *s, uint8_t *src1, |
| 2421 | uint8_t *src2, int stride, int h) | 2421 | uint8_t *src2, int stride, int h) |
| 2422 | { | 2422 | { |
| 2423 | MpegEncContext *const s = (MpegEncContext *) c; | ||
| 2424 | LOCAL_ALIGNED_16(int16_t, temp, [64]); | 2423 | LOCAL_ALIGNED_16(int16_t, temp, [64]); |
| 2425 | int sum = 0, i; | 2424 | int sum = 0, i; |
| 2426 | 2425 | ||
| @@ -2435,10 +2434,9 @@ static int dct_max8x8_c(/* MpegEncContext */ void *c, uint8_t *src1, · 8 unmodified lines | |||
| 2435 | return sum; | 2434 | return sum; |
| 2436 | } | 2435 | } |
| 2437 | 2436 | ||
| 2438 | static int quant_psnr8x8_c(/* MpegEncContext */ void *c, uint8_t *src1, | 2437 | static int quant_psnr8x8_c(MpegEncContext *s, uint8_t *src1, |
| 2439 | uint8_t *src2, int stride, int h) | 2438 | uint8_t *src2, int stride, int h) |
| 2440 | { | 2439 | { |
| 2441 | MpegEncContext *const s = c; | ||
| 2442 | LOCAL_ALIGNED_16(int16_t, temp, [64 * 2]); | 2440 | LOCAL_ALIGNED_16(int16_t, temp, [64 * 2]); |
| 2443 | int16_t *const bak = temp + 64; | 2441 | int16_t *const bak = temp + 64; |
| 2444 | int sum = 0, i; | 2442 | int sum = 0, i; |
| @@ -2461,10 +2459,9 @@ static int quant_psnr8x8_c(/* MpegEncContext */ void *c, uint8_t *src1, · 16 unmodified lines | |||
| 2461 | return sum; | 2459 | return sum; |
| 2462 | } | 2460 | } |
| 2463 | 2461 | ||
| 2464 | static int rd8x8_c(/* MpegEncContext */ void *c, uint8_t *src1, uint8_t *src2, | 2462 | static int rd8x8_c(MpegEncContext *s, uint8_t *src1, uint8_t *src2, |
| 2465 | int stride, int h) | 2463 | int stride, int h) |
| 2466 | { | 2464 | { |
| 2467 | MpegEncContext *const s = (MpegEncContext *) c; | ||
| 2468 | const uint8_t *scantable = s->intra_scantable.permutated; | 2465 | const uint8_t *scantable = s->intra_scantable.permutated; |
| 2469 | LOCAL_ALIGNED_16(int16_t, temp, [64]); | 2466 | LOCAL_ALIGNED_16(int16_t, temp, [64]); |
| 2470 | LOCAL_ALIGNED_16(uint8_t, lsrc1, [64]); | 2467 | LOCAL_ALIGNED_16(uint8_t, lsrc1, [64]); |
| @@ -2539,10 +2536,9 @@ static int rd8x8_c(/* MpegEncContext */ void *c, uint8_t *src1, uint8_t *src2, · 68 unmodified lines | |||
| 2539 | return distortion + ((bits * s->qscale * s->qscale * 109 + 64) >> 7); | 2536 | return distortion + ((bits * s->qscale * s->qscale * 109 + 64) >> 7); |
| 2540 | } | 2537 | } |
| 2541 | 2538 | ||
| 2542 | static int bit8x8_c(/* MpegEncContext */ void *c, uint8_t *src1, uint8_t *src2, | 2539 | static int bit8x8_c(MpegEncContext *s, uint8_t *src1, uint8_t *src2, |
| 2543 | int stride, int h) | 2540 | int stride, int h) |
| 2544 | { | 2541 | { |
| 2545 | MpegEncContext *const s = (MpegEncContext *) c; | ||
| 2546 | const uint8_t *scantable = s->intra_scantable.permutated; | 2542 | const uint8_t *scantable = s->intra_scantable.permutated; |
| 2547 | LOCAL_ALIGNED_16(int16_t, temp, [64]); | 2543 | LOCAL_ALIGNED_16(int16_t, temp, [64]); |
| 2548 | int i, last, run, bits, level, start_i; | 2544 | int i, last, run, bits, level, start_i; |
| @@ -2602,7 +2598,7 @@ static int bit8x8_c(/* MpegEncContext */ void *c, uint8_t *src1, uint8_t *src2, · 53 unmodified lines | |||
| 2602 | } | 2598 | } |
| 2603 | 2599 | ||
| 2604 | #define VSAD_INTRA(size) \ | 2600 | #define VSAD_INTRA(size) \ |
| 2605 | static int vsad_intra ## size ## _c(/* MpegEncContext */ void *c, \ | 2601 | static int vsad_intra ## size ## _c(MpegEncContext *c, \ |
| 2606 | uint8_t *s, uint8_t *dummy, \ | 2602 | uint8_t *s, uint8_t *dummy, \ |
| 2607 | int stride, int h) \ | 2603 | int stride, int h) \ |
| 2608 | { \ | 2604 | { \ |
| @@ -2623,7 +2619,7 @@ static int vsad_intra ## size ## _c(/* MpegEncContext */ void *c, \ · 14 unmodified lines | |||
| 2623 | VSAD_INTRA(8) | 2619 | VSAD_INTRA(8) |
| 2624 | VSAD_INTRA(16) | 2620 | VSAD_INTRA(16) |
| 2625 | 2621 | ||
| 2626 | static int vsad16_c(/* MpegEncContext */ void *c, uint8_t *s1, uint8_t *s2, | 2622 | static int vsad16_c(MpegEncContext *c, uint8_t *s1, uint8_t *s2, |
| 2627 | int stride, int h) | 2623 | int stride, int h) |
| 2628 | { | 2624 | { |
| 2629 | int score = 0, x, y; | 2625 | int score = 0, x, y; |
| @@ -2640,7 +2636,7 @@ static int vsad16_c(/* MpegEncContext */ void *c, uint8_t *s1, uint8_t *s2, · 10 unmodified lines | |||
| 2640 | 2636 | ||
| 2641 | #define SQ(a) ((a) * (a)) | 2637 | #define SQ(a) ((a) * (a)) |
| 2642 | #define VSSE_INTRA(size) \ | 2638 | #define VSSE_INTRA(size) \ |
| 2643 | static int vsse_intra ## size ## _c(/* MpegEncContext */ void *c, \ | 2639 | static int vsse_intra ## size ## _c(MpegEncContext *c, \ |
| 2644 | uint8_t *s, uint8_t *dummy, \ | 2640 | uint8_t *s, uint8_t *dummy, \ |
| 2645 | int stride, int h) \ | 2641 | int stride, int h) \ |
| 2646 | { \ | 2642 | { \ |
| @@ -2661,7 +2657,7 @@ static int vsse_intra ## size ## _c(/* MpegEncContext */ void *c, \ · 14 unmodified lines | |||
| 2661 | VSSE_INTRA(8) | 2657 | VSSE_INTRA(8) |
| 2662 | VSSE_INTRA(16) | 2658 | VSSE_INTRA(16) |
| 2663 | 2659 | ||
| 2664 | static int vsse16_c(/* MpegEncContext */ void *c, uint8_t *s1, uint8_t *s2, | 2660 | static int vsse16_c(MpegEncContext *c, uint8_t *s1, uint8_t *s2, |
| 2665 | int stride, int h) | 2661 | int stride, int h) |
| 2666 | { | 2662 | { |
| 2667 | int score = 0, x, y; | 2663 | int score = 0, x, y; |
| @@ -2687,8 +2683,7 @@ static int ssd_int8_vs_int16_c(const int8_t *pix1, const int16_t *pix2, · 19 unmodified lines | |||
| 2687 | } | 2683 | } |
| 2688 | 2684 | ||
| 2689 | #define WRAPPER8_16_SQ(name8, name16) \ | 2685 | #define WRAPPER8_16_SQ(name8, name16) \ |
| 2690 | static int name16(void /*MpegEncContext*/ *s, \ | 2686 | static int name16(MpegEncContext *s, uint8_t *dst, uint8_t *src, \ |
| 2691 | uint8_t *dst, uint8_t *src, \ | ||
| 2692 | int stride, int h) \ | 2687 | int stride, int h) \ |
| 2693 | { \ | 2688 | { \ |
| 2694 | int score = 0; \ | 2689 | int score = 0; \ |
| @@ -108,12 +108,13 @@ DEF_OLD_QPEL(qpel8_mc32_old_c) · 107 unmodified lines | |||
| 108 | DEF_OLD_QPEL(qpel8_mc13_old_c) | 108 | DEF_OLD_QPEL(qpel8_mc13_old_c) |
| 109 | DEF_OLD_QPEL(qpel8_mc33_old_c) | 109 | DEF_OLD_QPEL(qpel8_mc33_old_c) |
| 110 | 110 | ||
| 111 | struct MpegEncContext; | ||
| 111 | /* Motion estimation: | 112 | /* Motion estimation: |
| 112 | * h is limited to { width / 2, width, 2 * width }, | 113 | * h is limited to { width / 2, width, 2 * width }, |
| 113 | * but never larger than 16 and never smaller than 2. | 114 | * but never larger than 16 and never smaller than 2. |
| 114 | * Although currently h < 4 is not used as functions with | 115 | * Although currently h < 4 is not used as functions with |
| 115 | * width < 8 are neither used nor implemented. */ | 116 | * width < 8 are neither used nor implemented. */ |
| 116 | typedef int (*me_cmp_func)(void /* MpegEncContext */ *s, | 117 | typedef int (*me_cmp_func)(struct MpegEncContext *c, |
| 117 | uint8_t *blk1 /* align width (8 or 16) */, | 118 | uint8_t *blk1 /* align width (8 or 16) */, |
| 118 | uint8_t *blk2 /* align 1 */, int line_size, int h); | 119 | uint8_t *blk2 /* align 1 */, int line_size, int h); |
| 119 | 120 | ||
| @@ -286,7 +286,9 @@ static int cmp_qpel(MpegEncContext *s, const int x, const int y, const int subx, · 285 unmodified lines | |||
| 286 | 286 | ||
| 287 | #include "motion_est_template.c" | 287 | #include "motion_est_template.c" |
| 288 | 288 | ||
| 289 | static int zero_cmp(void *s, uint8_t *a, uint8_t *b, int stride, int h){ | 289 | static int zero_cmp(MpegEncContext *s, uint8_t *a, uint8_t *b, |
| 290 | int stride, int h) | ||
| 291 | { | ||
| 290 | return 0; | 292 | return 0; |
| 291 | } | 293 | } |
| 292 | 294 | ||
| @@ -30,9 +30,10 @@ · 29 unmodified lines | |||
| 30 | #include "libavutil/ppc/util_altivec.h" | 30 | #include "libavutil/ppc/util_altivec.h" |
| 31 | #include "libavcodec/avcodec.h" | 31 | #include "libavcodec/avcodec.h" |
| 32 | #include "libavcodec/dsputil.h" | 32 | #include "libavcodec/dsputil.h" |
| 33 | #include "libavcodec/mpegvideo.h" | ||
| 33 | #include "dsputil_altivec.h" | 34 | #include "dsputil_altivec.h" |
| 34 | 35 | ||
| 35 | static int sad16_x2_altivec(void *v, uint8_t *pix1, uint8_t *pix2, | 36 | static int sad16_x2_altivec(MpegEncContext *v, uint8_t *pix1, uint8_t *pix2, |
| 36 | int line_size, int h) | 37 | int line_size, int h) |
| 37 | { | 38 | { |
| 38 | int i, s = 0; | 39 | int i, s = 0; |
| @@ -74,7 +75,7 @@ static int sad16_x2_altivec(void *v, uint8_t *pix1, uint8_t *pix2, · 35 unmodified lines | |||
| 74 | return s; | 75 | return s; |
| 75 | } | 76 | } |
| 76 | 77 | ||
| 77 | static int sad16_y2_altivec(void *v, uint8_t *pix1, uint8_t *pix2, | 78 | static int sad16_y2_altivec(MpegEncContext *v, uint8_t *pix1, uint8_t *pix2, |
| 78 | int line_size, int h) | 79 | int line_size, int h) |
| 79 | { | 80 | { |
| 80 | int i, s = 0; | 81 | int i, s = 0; |
| @@ -128,7 +129,7 @@ static int sad16_y2_altivec(void *v, uint8_t *pix1, uint8_t *pix2, · 47 unmodified lines | |||
| 128 | return s; | 129 | return s; |
| 129 | } | 130 | } |
| 130 | 131 | ||
| 131 | static int sad16_xy2_altivec(void *v, uint8_t *pix1, uint8_t *pix2, | 132 | static int sad16_xy2_altivec(MpegEncContext *v, uint8_t *pix1, uint8_t *pix2, |
| 132 | int line_size, int h) | 133 | int line_size, int h) |
| 133 | { | 134 | { |
| 134 | int i, s = 0; | 135 | int i, s = 0; |
| @@ -223,7 +224,7 @@ static int sad16_xy2_altivec(void *v, uint8_t *pix1, uint8_t *pix2, · 88 unmodified lines | |||
| 223 | return s; | 224 | return s; |
| 224 | } | 225 | } |
| 225 | 226 | ||
| 226 | static int sad16_altivec(void *v, uint8_t *pix1, uint8_t *pix2, | 227 | static int sad16_altivec(MpegEncContext *v, uint8_t *pix1, uint8_t *pix2, |
| 227 | int line_size, int h) | 228 | int line_size, int h) |
| 228 | { | 229 | { |
| 229 | int i, s; | 230 | int i, s; |
| @@ -260,7 +261,7 @@ static int sad16_altivec(void *v, uint8_t *pix1, uint8_t *pix2, · 30 unmodified lines | |||
| 260 | return s; | 261 | return s; |
| 261 | } | 262 | } |
| 262 | 263 | ||
| 263 | static int sad8_altivec(void *v, uint8_t *pix1, uint8_t *pix2, | 264 | static int sad8_altivec(MpegEncContext *v, uint8_t *pix1, uint8_t *pix2, |
| 264 | int line_size, int h) | 265 | int line_size, int h) |
| 265 | { | 266 | { |
| 266 | int i, s; | 267 | int i, s; |
| @@ -337,7 +338,7 @@ static int pix_norm1_altivec(uint8_t *pix, int line_size) · 70 unmodified lines | |||
| 337 | 338 | ||
| 338 | /* Sum of Squared Errors for an 8x8 block, AltiVec-enhanced. | 339 | /* Sum of Squared Errors for an 8x8 block, AltiVec-enhanced. |
| 339 | * It's the sad8_altivec code above w/ squaring added. */ | 340 | * It's the sad8_altivec code above w/ squaring added. */ |
| 340 | static int sse8_altivec(void *v, uint8_t *pix1, uint8_t *pix2, | 341 | static int sse8_altivec(MpegEncContext *v, uint8_t *pix1, uint8_t *pix2, |
| 341 | int line_size, int h) | 342 | int line_size, int h) |
| 342 | { | 343 | { |
| 343 | int i, s; | 344 | int i, s; |
| @@ -389,7 +390,7 @@ static int sse8_altivec(void *v, uint8_t *pix1, uint8_t *pix2, · 45 unmodified lines | |||
| 389 | 390 | ||
| 390 | /* Sum of Squared Errors for a 16x16 block, AltiVec-enhanced. | 391 | /* Sum of Squared Errors for a 16x16 block, AltiVec-enhanced. |
| 391 | * It's the sad16_altivec code above w/ squaring added. */ | 392 | * It's the sad16_altivec code above w/ squaring added. */ |
| 392 | static int sse16_altivec(void *v, uint8_t *pix1, uint8_t *pix2, | 393 | static int sse16_altivec(MpegEncContext *v, uint8_t *pix1, uint8_t *pix2, |
| 393 | int line_size, int h) | 394 | int line_size, int h) |
| 394 | { | 395 | { |
| 395 | int i, s; | 396 | int i, s; |
| @@ -587,7 +588,7 @@ static void add_bytes_altivec(uint8_t *dst, uint8_t *src, int w) · 191 unmodified lines | |||
| 587 | dst[i] = src[i]; | 588 | dst[i] = src[i]; |
| 588 | } | 589 | } |
| 589 | 590 | ||
| 590 | static int hadamard8_diff8x8_altivec(/* MpegEncContext */ void *s, uint8_t *dst, | 591 | static int hadamard8_diff8x8_altivec(MpegEncContext *s, uint8_t *dst, |
| 591 | uint8_t *src, int stride, int h) | 592 | uint8_t *src, int stride, int h) |
| 592 | { | 593 | { |
| 593 | int sum; | 594 | int sum; |
| @@ -716,7 +717,7 @@ static int hadamard8_diff8x8_altivec(/* MpegEncContext */ void *s, uint8_t *dst, · 122 unmodified lines | |||
| 716 | * On the 970, the hand-made RA is still a win (around 690 vs. around 780), | 717 | * On the 970, the hand-made RA is still a win (around 690 vs. around 780), |
| 717 | * but xlc goes to around 660 on the regular C code... | 718 | * but xlc goes to around 660 on the regular C code... |
| 718 | */ | 719 | */ |
| 719 | static int hadamard8_diff16x8_altivec(/* MpegEncContext */ void *s, uint8_t *dst, | 720 | static int hadamard8_diff16x8_altivec(MpegEncContext *s, uint8_t *dst, |
| 720 | uint8_t *src, int stride, int h) | 721 | uint8_t *src, int stride, int h) |
| 721 | { | 722 | { |
| 722 | int sum; | 723 | int sum; |
| @@ -913,7 +914,7 @@ static int hadamard8_diff16x8_altivec(/* MpegEncContext */ void *s, uint8_t *dst · 190 unmodified lines | |||
| 913 | return sum; | 914 | return sum; |
| 914 | } | 915 | } |
| 915 | 916 | ||
| 916 | static int hadamard8_diff16_altivec(/* MpegEncContext */ void *s, uint8_t *dst, | 917 | static int hadamard8_diff16_altivec(MpegEncContext *s, uint8_t *dst, |
| 917 | uint8_t *src, int stride, int h) | 918 | uint8_t *src, int stride, int h) |
| 918 | { | 919 | { |
| 919 | int score = hadamard8_diff16x8_altivec(s, dst, src, stride, 8); | 920 | int score = hadamard8_diff16x8_altivec(s, dst, src, stride, 8); |
| @@ -209,8 +209,8 @@ hadamard8x8_diff %+ SUFFIX: · 208 unmodified lines | |||
| 209 | hadamard8_16_wrapper %1, 3 | 209 | hadamard8_16_wrapper %1, 3 |
| 210 | %elif cpuflag(mmx) | 210 | %elif cpuflag(mmx) |
| 211 | ALIGN 16 | 211 | ALIGN 16 |
| 212 | ; int ff_hadamard8_diff_ ## cpu(void *s, uint8_t *src1, uint8_t *src2, | 212 | ; int ff_hadamard8_diff_ ## cpu(MpegEncContext *s, uint8_t *src1, |
| 213 | ; int stride, int h) | 213 | ; uint8_t *src2, int stride, int h) |
| 214 | ; r0 = void *s = unused, int h = unused (always 8) | 214 | ; r0 = void *s = unused, int h = unused (always 8) |
| 215 | ; note how r1, r2 and r3 are not clobbered in this function, so 16x16 | 215 | ; note how r1, r2 and r3 are not clobbered in this function, so 16x16 |
| 216 | ; can simply call this 2x2x (and that's why we access rsp+gprsize | 216 | ; can simply call this 2x2x (and that's why we access rsp+gprsize |
| @@ -275,7 +275,8 @@ INIT_XMM ssse3 · 58 unmodified lines | |||
| 275 | HADAMARD8_DIFF 9 | 275 | HADAMARD8_DIFF 9 |
| 276 | 276 | ||
| 277 | INIT_XMM sse2 | 277 | INIT_XMM sse2 |
| 278 | ; int ff_sse16_sse2(void *v, uint8_t *pix1, uint8_t *pix2, int line_size, int h); | 278 | ; int ff_sse16_sse2(MpegEncContext *v, uint8_t *pix1, uint8_t *pix2, |
| 279 | ; int line_size, int h); | ||
| 279 | cglobal sse16, 5, 5, 8 | 280 | cglobal sse16, 5, 5, 8 |
| 280 | shr r4d, 1 | 281 | shr r4d, 1 |
| 281 | pxor m0, m0 ; mm0 = 0 | 282 | pxor m0, m0 ; mm0 = 0 |
| @@ -41,7 +41,8 @@ int ff_pix_norm1_mmx(uint8_t *pix, int line_size); · 40 unmodified lines | |||
| 41 | 41 | ||
| 42 | #if HAVE_INLINE_ASM | 42 | #if HAVE_INLINE_ASM |
| 43 | 43 | ||
| 44 | static int sse8_mmx(void *v, uint8_t *pix1, uint8_t *pix2, int line_size, int h) | 44 | static int sse8_mmx(MpegEncContext *v, uint8_t *pix1, uint8_t *pix2, |
| 45 | int line_size, int h) | ||
| 45 | { | 46 | { |
| 46 | int tmp; | 47 | int tmp; |
| 47 | 48 | ||
| @@ -105,7 +106,7 @@ static int sse8_mmx(void *v, uint8_t *pix1, uint8_t *pix2, int line_size, int h) · 57 unmodified lines | |||
| 105 | return tmp; | 106 | return tmp; |
| 106 | } | 107 | } |
| 107 | 108 | ||
| 108 | static int sse16_mmx(void *v, uint8_t *pix1, uint8_t *pix2, | 109 | static int sse16_mmx(MpegEncContext *v, uint8_t *pix1, uint8_t *pix2, |
| 109 | int line_size, int h) | 110 | int line_size, int h) |
| 110 | { | 111 | { |
| 111 | int tmp; | 112 | int tmp; |
| @@ -414,10 +415,9 @@ static int hf_noise16_mmx(uint8_t *pix1, int line_size, int h) · 302 unmodified lines | |||
| 414 | return tmp + hf_noise8_mmx(pix + 8, line_size, h); | 415 | return tmp + hf_noise8_mmx(pix + 8, line_size, h); |
| 415 | } | 416 | } |
| 416 | 417 | ||
| 417 | static int nsse16_mmx(void *p, uint8_t *pix1, uint8_t *pix2, | 418 | static int nsse16_mmx(MpegEncContext *c, uint8_t *pix1, uint8_t *pix2, |
| 418 | int line_size, int h) | 419 | int line_size, int h) |
| 419 | { | 420 | { |
| 420 | MpegEncContext *c = p; | ||
| 421 | int score1, score2; | 421 | int score1, score2; |
| 422 | 422 | ||
| 423 | if (c) | 423 | if (c) |
| @@ -433,10 +433,9 @@ static int nsse16_mmx(void *p, uint8_t *pix1, uint8_t *pix2, · 9 unmodified lines | |||
| 433 | return score1 + FFABS(score2) * 8; | 433 | return score1 + FFABS(score2) * 8; |
| 434 | } | 434 | } |
| 435 | 435 | ||
| 436 | static int nsse8_mmx(void *p, uint8_t *pix1, uint8_t *pix2, | 436 | static int nsse8_mmx(MpegEncContext *c, uint8_t *pix1, uint8_t *pix2, |
| 437 | int line_size, int h) | 437 | int line_size, int h) |
| 438 | { | 438 | { |
| 439 | MpegEncContext *c = p; | ||
| 440 | int score1 = sse8_mmx(c, pix1, pix2, line_size, h); | 439 | int score1 = sse8_mmx(c, pix1, pix2, line_size, h); |
| 441 | int score2 = hf_noise8_mmx(pix1, line_size, h) - | 440 | int score2 = hf_noise8_mmx(pix1, line_size, h) - |
| 442 | hf_noise8_mmx(pix2, line_size, h); | 441 | hf_noise8_mmx(pix2, line_size, h); |
| @@ -447,7 +446,7 @@ static int nsse8_mmx(void *p, uint8_t *pix1, uint8_t *pix2, · 4 unmodified lines | |||
| 447 | return score1 + FFABS(score2) * 8; | 446 | return score1 + FFABS(score2) * 8; |
| 448 | } | 447 | } |
| 449 | 448 | ||
| 450 | static int vsad_intra16_mmx(void *v, uint8_t *pix, uint8_t *dummy, | 449 | static int vsad_intra16_mmx(MpegEncContext *v, uint8_t *pix, uint8_t *dummy, |
| 451 | int line_size, int h) | 450 | int line_size, int h) |
| 452 | { | 451 | { |
| 453 | int tmp; | 452 | int tmp; |
| @@ -511,7 +510,7 @@ static int vsad_intra16_mmx(void *v, uint8_t *pix, uint8_t *dummy, · 57 unmodified lines | |||
| 511 | } | 510 | } |
| 512 | #undef SUM | 511 | #undef SUM |
| 513 | 512 | ||
| 514 | static int vsad_intra16_mmxext(void *v, uint8_t *pix, uint8_t *dummy, | 513 | static int vsad_intra16_mmxext(MpegEncContext *v, uint8_t *pix, uint8_t *dummy, |
| 515 | int line_size, int h) | 514 | int line_size, int h) |
| 516 | { | 515 | { |
| 517 | int tmp; | 516 | int tmp; |
| @@ -554,7 +553,7 @@ static int vsad_intra16_mmxext(void *v, uint8_t *pix, uint8_t *dummy, · 36 unmodified lines | |||
| 554 | } | 553 | } |
| 555 | #undef SUM | 554 | #undef SUM |
| 556 | 555 | ||
| 557 | static int vsad16_mmx(void *v, uint8_t *pix1, uint8_t *pix2, | 556 | static int vsad16_mmx(MpegEncContext *v, uint8_t *pix1, uint8_t *pix2, |
| 558 | int line_size, int h) | 557 | int line_size, int h) |
| 559 | { | 558 | { |
| 560 | int tmp; | 559 | int tmp; |
| @@ -635,7 +634,7 @@ static int vsad16_mmx(void *v, uint8_t *pix1, uint8_t *pix2, · 74 unmodified lines | |||
| 635 | } | 634 | } |
| 636 | #undef SUM | 635 | #undef SUM |
| 637 | 636 | ||
| 638 | static int vsad16_mmxext(void *v, uint8_t *pix1, uint8_t *pix2, | 637 | static int vsad16_mmxext(MpegEncContext *v, uint8_t *pix1, uint8_t *pix2, |
| 639 | int line_size, int h) | 638 | int line_size, int h) |
| 640 | { | 639 | { |
| 641 | int tmp; | 640 | int tmp; |
| @@ -974,13 +973,14 @@ static int ssd_int8_vs_int16_mmx(const int8_t *pix1, const int16_t *pix2, · 332 unmodified lines | |||
| 974 | 973 | ||
| 975 | #endif /* HAVE_INLINE_ASM */ | 974 | #endif /* HAVE_INLINE_ASM */ |
| 976 | 975 | ||
| 977 | int ff_sse16_sse2(void *v, uint8_t *pix1, uint8_t *pix2, int line_size, int h); | 976 | int ff_sse16_sse2(MpegEncContext *v, uint8_t *pix1, uint8_t *pix2, |
| 977 | int line_size, int h); | ||
| 978 | 978 | ||
| 979 | #define hadamard_func(cpu) \ | 979 | #define hadamard_func(cpu) \ |
| 980 | int ff_hadamard8_diff_ ## cpu(void *s, uint8_t *src1, uint8_t *src2, \ | 980 | int ff_hadamard8_diff_ ## cpu(MpegEncContext *s, uint8_t *src1, \ |
| 981 | int stride, int h); \ | 981 | uint8_t *src2, int stride, int h); \ |
| 982 | int ff_hadamard8_diff16_ ## cpu(void *s, uint8_t *src1, uint8_t *src2, \ | 982 | int ff_hadamard8_diff16_ ## cpu(MpegEncContext *s, uint8_t *src1, \ |
| 983 | int stride, int h); | 983 | uint8_t *src2, int stride, int h); |
| 984 | 984 | ||
| 985 | hadamard_func(mmx) | 985 | hadamard_func(mmx) |
| 986 | hadamard_func(mmxext) | 986 | hadamard_func(mmxext) |
| @@ -27,6 +27,7 @@ · 26 unmodified lines | |||
| 27 | #include "libavutil/mem.h" | 27 | #include "libavutil/mem.h" |
| 28 | #include "libavutil/x86/asm.h" | 28 | #include "libavutil/x86/asm.h" |
| 29 | #include "libavutil/x86/cpu.h" | 29 | #include "libavutil/x86/cpu.h" |
| 30 | #include "libavcodec/mpegvideo.h" | ||
| 30 | #include "dsputil_x86.h" | 31 | #include "dsputil_x86.h" |
| 31 | 32 | ||
| 32 | #if HAVE_INLINE_ASM | 33 | #if HAVE_INLINE_ASM |
| @@ -94,7 +95,8 @@ static inline void sad8_1_mmxext(uint8_t *blk1, uint8_t *blk2, · 61 unmodified lines | |||
| 94 | : "r" ((x86_reg) stride)); | 95 | : "r" ((x86_reg) stride)); |
| 95 | } | 96 | } |
| 96 | 97 | ||
| 97 | static int sad16_sse2(void *v, uint8_t *blk2, uint8_t *blk1, int stride, int h) | 98 | static int sad16_sse2(MpegEncContext *v, uint8_t *blk2, uint8_t *blk1, |
| 99 | int stride, int h) | ||
| 98 | { | 100 | { |
| 99 | int ret; | 101 | int ret; |
| 100 | __asm__ volatile ( | 102 | __asm__ volatile ( |
| @@ -325,7 +327,7 @@ static inline void sad8_y2a_mmx(uint8_t *blk1, uint8_t *blk2, int stride, int h) · 224 unmodified lines | |||
| 325 | } | 327 | } |
| 326 | 328 | ||
| 327 | #define PIX_SAD(suf) \ | 329 | #define PIX_SAD(suf) \ |
| 328 | static int sad8_ ## suf(void *v, uint8_t *blk2, \ | 330 | static int sad8_ ## suf(MpegEncContext *v, uint8_t *blk2, \ |
| 329 | uint8_t *blk1, int stride, int h) \ | 331 | uint8_t *blk1, int stride, int h) \ |
| 330 | { \ | 332 | { \ |
| 331 | av_assert2(h == 8); \ | 333 | av_assert2(h == 8); \ |
| @@ -339,7 +341,7 @@ static int sad8_ ## suf(void *v, uint8_t *blk2, \ · 7 unmodified lines | |||
| 339 | return sum_ ## suf(); \ | 341 | return sum_ ## suf(); \ |
| 340 | } \ | 342 | } \ |
| 341 | \ | 343 | \ |
| 342 | static int sad8_x2_ ## suf(void *v, uint8_t *blk2, \ | 344 | static int sad8_x2_ ## suf(MpegEncContext *v, uint8_t *blk2, \ |
| 343 | uint8_t *blk1, int stride, int h) \ | 345 | uint8_t *blk1, int stride, int h) \ |
| 344 | { \ | 346 | { \ |
| 345 | av_assert2(h == 8); \ | 347 | av_assert2(h == 8); \ |
| @@ -354,7 +356,7 @@ static int sad8_x2_ ## suf(void *v, uint8_t *blk2, \ · 8 unmodified lines | |||
| 354 | return sum_ ## suf(); \ | 356 | return sum_ ## suf(); \ |
| 355 | } \ | 357 | } \ |
| 356 | \ | 358 | \ |
| 357 | static int sad8_y2_ ## suf(void *v, uint8_t *blk2, \ | 359 | static int sad8_y2_ ## suf(MpegEncContext *v, uint8_t *blk2, \ |
| 358 | uint8_t *blk1, int stride, int h) \ | 360 | uint8_t *blk1, int stride, int h) \ |
| 359 | { \ | 361 | { \ |
| 360 | av_assert2(h == 8); \ | 362 | av_assert2(h == 8); \ |
| @@ -369,7 +371,7 @@ static int sad8_y2_ ## suf(void *v, uint8_t *blk2, \ · 8 unmodified lines | |||
| 369 | return sum_ ## suf(); \ | 371 | return sum_ ## suf(); \ |
| 370 | } \ | 372 | } \ |
| 371 | \ | 373 | \ |
| 372 | static int sad8_xy2_ ## suf(void *v, uint8_t *blk2, \ | 374 | static int sad8_xy2_ ## suf(MpegEncContext *v, uint8_t *blk2, \ |
| 373 | uint8_t *blk1, int stride, int h) \ | 375 | uint8_t *blk1, int stride, int h) \ |
| 374 | { \ | 376 | { \ |
| 375 | av_assert2(h == 8); \ | 377 | av_assert2(h == 8); \ |
| @@ -383,7 +385,7 @@ static int sad8_xy2_ ## suf(void *v, uint8_t *blk2, \ · 7 unmodified lines | |||
| 383 | return sum_ ## suf(); \ | 385 | return sum_ ## suf(); \ |
| 384 | } \ | 386 | } \ |
| 385 | \ | 387 | \ |
| 386 | static int sad16_ ## suf(void *v, uint8_t *blk2, \ | 388 | static int sad16_ ## suf(MpegEncContext *v, uint8_t *blk2, \ |
| 387 | uint8_t *blk1, int stride, int h) \ | 389 | uint8_t *blk1, int stride, int h) \ |
| 388 | { \ | 390 | { \ |
| 389 | __asm__ volatile ( \ | 391 | __asm__ volatile ( \ |
| @@ -397,7 +399,7 @@ static int sad16_ ## suf(void *v, uint8_t *blk2, \ · 7 unmodified lines | |||
| 397 | return sum_ ## suf(); \ | 399 | return sum_ ## suf(); \ |
| 398 | } \ | 400 | } \ |
| 399 | \ | 401 | \ |
| 400 | static int sad16_x2_ ## suf(void *v, uint8_t *blk2, \ | 402 | static int sad16_x2_ ## suf(MpegEncContext *v, uint8_t *blk2, \ |
| 401 | uint8_t *blk1, int stride, int h) \ | 403 | uint8_t *blk1, int stride, int h) \ |
| 402 | { \ | 404 | { \ |
| 403 | __asm__ volatile ( \ | 405 | __asm__ volatile ( \ |
| @@ -412,7 +414,7 @@ static int sad16_x2_ ## suf(void *v, uint8_t *blk2, \ · 8 unmodified lines | |||
| 412 | return sum_ ## suf(); \ | 414 | return sum_ ## suf(); \ |
| 413 | } \ | 415 | } \ |
| 414 | \ | 416 | \ |
| 415 | static int sad16_y2_ ## suf(void *v, uint8_t *blk2, \ | 417 | static int sad16_y2_ ## suf(MpegEncContext *v, uint8_t *blk2, \ |
| 416 | uint8_t *blk1, int stride, int h) \ | 418 | uint8_t *blk1, int stride, int h) \ |
| 417 | { \ | 419 | { \ |
| 418 | __asm__ volatile ( \ | 420 | __asm__ volatile ( \ |
| @@ -427,7 +429,7 @@ static int sad16_y2_ ## suf(void *v, uint8_t *blk2, \ · 8 unmodified lines | |||
| 427 | return sum_ ## suf(); \ | 429 | return sum_ ## suf(); \ |
| 428 | } \ | 430 | } \ |
| 429 | \ | 431 | \ |
| 430 | static int sad16_xy2_ ## suf(void *v, uint8_t *blk2, \ | 432 | static int sad16_xy2_ ## suf(MpegEncContext *v, uint8_t *blk2, \ |
| 431 | uint8_t *blk1, int stride, int h) \ | 433 | uint8_t *blk1, int stride, int h) \ |
| 432 | { \ | 434 | { \ |
| 433 | __asm__ volatile ( \ | 435 | __asm__ volatile ( \ |