diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2013-11-15 13:56:05 +0100 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2013-11-15 15:07:10 +0100 |
commit | 91e00c4a785d3f4cd44f1044d3e7b1b34fee8b5c (patch) | |
tree | a866df7014974a63c167522f426dc53596d3c77b /libavcodec/x86/videodsp_init.c | |
parent | e28130bcaf48281b431ea611a546e7520bb90dda (diff) | |
parent | 458446acfa1441d283dacf9e6e545beb083b8bb0 (diff) | |
download | ffmpeg-91e00c4a785d3f4cd44f1044d3e7b1b34fee8b5c.tar.gz |
Merge commit '458446acfa1441d283dacf9e6e545beb083b8bb0'
* commit '458446acfa1441d283dacf9e6e545beb083b8bb0':
lavc: Edge emulation with dst/src linesize
Conflicts:
libavcodec/cavs.c
libavcodec/h264.c
libavcodec/hevc.c
libavcodec/mpegvideo_enc.c
libavcodec/mpegvideo_motion.c
libavcodec/rv34.c
libavcodec/svq3.c
libavcodec/vc1dec.c
libavcodec/videodsp.h
libavcodec/videodsp_template.c
libavcodec/vp3.c
libavcodec/vp8.c
libavcodec/wmv2.c
libavcodec/x86/videodsp.asm
libavcodec/x86/videodsp_init.c
Changes to the asm are not merged, they are left for volunteers or
in their absence for later.
The changes this merge introduces are reordering of the function
arguments
See: face578d56c2d1375e40d5e2a28acc122132bc55
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec/x86/videodsp_init.c')
-rw-r--r-- | libavcodec/x86/videodsp_init.c | 30 |
1 files changed, 17 insertions, 13 deletions
diff --git a/libavcodec/x86/videodsp_init.c b/libavcodec/x86/videodsp_init.c index 0e6e0ddf1f..2013a93b90 100644 --- a/libavcodec/x86/videodsp_init.c +++ b/libavcodec/x86/videodsp_init.c @@ -129,8 +129,9 @@ static emu_edge_hfix_func *hfixtbl_sse2[11] = { }; extern emu_edge_hvar_func ff_emu_edge_hvar_sse2; -static av_always_inline void emulated_edge_mc(uint8_t *dst, ptrdiff_t dst_stride, - const uint8_t *src, ptrdiff_t src_stride, +static av_always_inline void emulated_edge_mc(uint8_t *dst, const uint8_t *src, + ptrdiff_t dst_stride, + ptrdiff_t src_stride, x86_reg block_w, x86_reg block_h, x86_reg src_x, x86_reg src_y, x86_reg w, x86_reg h, @@ -141,7 +142,7 @@ static av_always_inline void emulated_edge_mc(uint8_t *dst, ptrdiff_t dst_stride { x86_reg start_y, start_x, end_y, end_x, src_y_add = 0, p; - if(!w || !h) + if (!w || !h) return; if (src_y >= h) { @@ -203,34 +204,37 @@ static av_always_inline void emulated_edge_mc(uint8_t *dst, ptrdiff_t dst_stride } #if ARCH_X86_32 -static av_noinline void emulated_edge_mc_mmx(uint8_t *buf, ptrdiff_t buf_stride, - const uint8_t *src, ptrdiff_t src_stride, +static av_noinline void emulated_edge_mc_mmx(uint8_t *buf, const uint8_t *src, + ptrdiff_t buf_stride, + ptrdiff_t src_stride, int block_w, int block_h, int src_x, int src_y, int w, int h) { - emulated_edge_mc(buf, buf_stride, src, src_stride, block_w, block_h, + emulated_edge_mc(buf, src, buf_stride, src_stride, block_w, block_h, src_x, src_y, w, h, vfixtbl_mmx, &ff_emu_edge_vvar_mmx, hfixtbl_mmx, &ff_emu_edge_hvar_mmx); } -static av_noinline void emulated_edge_mc_sse(uint8_t *buf, ptrdiff_t buf_stride, - const uint8_t *src, ptrdiff_t src_stride, +static av_noinline void emulated_edge_mc_sse(uint8_t *buf, const uint8_t *src, + ptrdiff_t buf_stride, + ptrdiff_t src_stride, int block_w, int block_h, int src_x, int src_y, int w, int h) { - emulated_edge_mc(buf, buf_stride, src, src_stride, block_w, block_h, + emulated_edge_mc(buf, src, buf_stride, src_stride, block_w, block_h, src_x, src_y, w, h, vfixtbl_sse, &ff_emu_edge_vvar_sse, hfixtbl_mmx, &ff_emu_edge_hvar_mmx); } #endif -static av_noinline void emulated_edge_mc_sse2(uint8_t *buf, ptrdiff_t buf_stride, - const uint8_t *src, ptrdiff_t src_stride, +static av_noinline void emulated_edge_mc_sse2(uint8_t *buf, const uint8_t *src, + ptrdiff_t buf_stride, + ptrdiff_t src_stride, int block_w, int block_h, int src_x, int src_y, int w, int h) { - emulated_edge_mc(buf, buf_stride, src, src_stride, block_w, block_h, src_x, - src_y, w, h, vfixtbl_sse, &ff_emu_edge_vvar_sse, + emulated_edge_mc(buf, src, buf_stride, src_stride, block_w, block_h, + src_x, src_y, w, h, vfixtbl_sse, &ff_emu_edge_vvar_sse, hfixtbl_sse2, &ff_emu_edge_hvar_sse2); } #endif /* HAVE_YASM */ |