Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- From 9e6baf3383bb05ebc0d1c729c7f383f4f8bdc0c4 Mon Sep 17 00:00:00 2001
- From: Daniel Kang <daniel.d.kang@gmail.com>
- Date: Fri, 17 Dec 2010 22:02:27 -0500
- Subject: [PATCH 1/4] pred4x4_down_left_mmxext
- ---
- libavcodec/x86/h264_intrapred.asm | 28 ++++++++++++++++++++++++++++
- libavcodec/x86/h264_intrapred_init.c | 13 ++++++++-----
- 2 files changed, 36 insertions(+), 5 deletions(-)
- diff --git a/libavcodec/x86/h264_intrapred.asm b/libavcodec/x86/h264_intrapred.asm
- index 7d3ef95..78ecea2 100644
- --- a/libavcodec/x86/h264_intrapred.asm
- +++ b/libavcodec/x86/h264_intrapred.asm
- @@ -1104,3 +1104,31 @@ cglobal pred4x4_vertical_vp8_mmxext, 3,3
- movd [r1+r2*1], m3
- movd [r1+r2*2], m3
- RET
- +
- +;-----------------------------------------------------------------------------
- +; void pred4x4_down_left_mmxext(uint8_t *src, const uint8_t *topright, int stride)
- +;-----------------------------------------------------------------------------
- +
- +INIT_MMX
- +cglobal pred4x4_down_left_mmxext, 3,3
- + sub r0, r2
- + mova m1, [r0]
- + punpckldq m1, [r1]
- + mova m2, m1
- + mova m3, m1
- + mova m4, m1
- + psllq m1, 8
- + pxor m2, m1
- + psrlq m2, 8
- + pxor m3, m2
- + PRED4x4_LOWPASS m0, m1, m3, m4, m5
- + lea r1, [r0+r2*2]
- + psrlq m0, 8
- + movd [r0+r2*1], m0
- + psrlq m0, 8
- + movd [r0+r2*2], m0
- + psrlq m0, 8
- + movd [r1+r2*1], m0
- + psrlq m0, 8
- + movd [r1+r2*2], m0
- + RET
- diff --git a/libavcodec/x86/h264_intrapred_init.c b/libavcodec/x86/h264_intrapred_init.c
- index 54b8142..1815b9f 100644
- --- a/libavcodec/x86/h264_intrapred_init.c
- +++ b/libavcodec/x86/h264_intrapred_init.c
- @@ -58,6 +58,7 @@ void ff_pred8x8_tm_vp8_mmxext (uint8_t *src, int stride);
- void ff_pred8x8_tm_vp8_sse2 (uint8_t *src, int stride);
- void ff_pred8x8_tm_vp8_ssse3 (uint8_t *src, int stride);
- void ff_pred4x4_dc_mmxext (uint8_t *src, const uint8_t *topright, int stride);
- +void ff_pred4x4_down_left_mmxext (uint8_t *src, const uint8_t *topright, int stride);
- void ff_pred4x4_tm_vp8_mmx (uint8_t *src, const uint8_t *topright, int stride);
- void ff_pred4x4_tm_vp8_mmxext (uint8_t *src, const uint8_t *topright, int stride);
- void ff_pred4x4_tm_vp8_ssse3 (uint8_t *src, const uint8_t *topright, int stride);
- @@ -94,12 +95,14 @@ void ff_h264_pred_init_x86(H264PredContext *h, int codec_id)
- h->pred16x16[DC_PRED8x8 ] = ff_pred16x16_dc_mmxext;
- h->pred8x8 [HOR_PRED8x8 ] = ff_pred8x8_horizontal_mmxext;
- h->pred4x4 [DC_PRED ] = ff_pred4x4_dc_mmxext;
- + if (codec_id == CODEC_ID_VP8 || codec_id == CODEC_ID_H264)
- + h->pred4x4[DIAG_DOWN_LEFT_PRED ] = ff_pred4x4_down_left_mmxext;
- if (codec_id == CODEC_ID_VP8) {
- - h->pred16x16[PLANE_PRED8x8] = ff_pred16x16_tm_vp8_mmxext;
- - h->pred8x8 [DC_PRED8x8 ] = ff_pred8x8_dc_rv40_mmxext;
- - h->pred8x8 [PLANE_PRED8x8] = ff_pred8x8_tm_vp8_mmxext;
- - h->pred4x4 [TM_VP8_PRED ] = ff_pred4x4_tm_vp8_mmxext;
- - h->pred4x4 [VERT_PRED ] = ff_pred4x4_vertical_vp8_mmxext;
- + h->pred16x16[PLANE_PRED8x8 ] = ff_pred16x16_tm_vp8_mmxext;
- + h->pred8x8 [DC_PRED8x8 ] = ff_pred8x8_dc_rv40_mmxext;
- + h->pred8x8 [PLANE_PRED8x8 ] = ff_pred8x8_tm_vp8_mmxext;
- + h->pred4x4 [TM_VP8_PRED ] = ff_pred4x4_tm_vp8_mmxext;
- + h->pred4x4 [VERT_PRED ] = ff_pred4x4_vertical_vp8_mmxext;
- } else {
- h->pred8x8 [PLANE_PRED8x8] = ff_pred8x8_plane_mmx2;
- if (codec_id == CODEC_ID_SVQ3) {
- --
- 1.7.2.2
- From b5797b506450836c65bcb8c607cd9179f27a3530 Mon Sep 17 00:00:00 2001
- From: Daniel Kang <daniel.d.kang@gmail.com>
- Date: Fri, 17 Dec 2010 23:44:46 -0500
- Subject: [PATCH 2/4] pred4x4_vertical_left_mmxext
- ---
- libavcodec/x86/h264_intrapred.asm | 25 ++++++++++
- libavcodec/x86/h264_intrapred_init.c | 87 +++++++++++++++++----------------
- 2 files changed, 70 insertions(+), 42 deletions(-)
- diff --git a/libavcodec/x86/h264_intrapred.asm b/libavcodec/x86/h264_intrapred.asm
- index 78ecea2..afbaef6 100644
- --- a/libavcodec/x86/h264_intrapred.asm
- +++ b/libavcodec/x86/h264_intrapred.asm
- @@ -1132,3 +1132,28 @@ cglobal pred4x4_down_left_mmxext, 3,3
- psrlq m0, 8
- movd [r1+r2*2], m0
- RET
- +
- +;-----------------------------------------------------------------------------
- +; void pred4x4_vertical_left_mmxext(uint8_t *src, const uint8_t *topright, int stride)
- +;-----------------------------------------------------------------------------
- +
- +INIT_MMX
- +cglobal pred4x4_vertical_left_mmxext, 3,3
- + sub r0, r2
- + mova m1, [r0]
- + punpckldq m1, [r1]
- + mova m3, m1
- + mova m2, m1
- + psrlq m3, 8
- + psrlq m2, 16
- + mova m4, m3
- + pavgb m4, m1
- + PRED4x4_LOWPASS m0, m1, m2, m3, m5
- + lea r1, [r0+r2*2]
- + movh [r0+r2*1], m4
- + movh [r0+r2*2], m0
- + psrlq m4, 8
- + psrlq m0, 8
- + movh [r1+r2*1], m4
- + movh [r1+r2*2], m0
- + RET
- diff --git a/libavcodec/x86/h264_intrapred_init.c b/libavcodec/x86/h264_intrapred_init.c
- index 1815b9f..9d09ecd 100644
- --- a/libavcodec/x86/h264_intrapred_init.c
- +++ b/libavcodec/x86/h264_intrapred_init.c
- @@ -21,48 +21,49 @@
- #include "libavutil/cpu.h"
- #include "libavcodec/h264pred.h"
- -void ff_pred16x16_vertical_mmx (uint8_t *src, int stride);
- -void ff_pred16x16_vertical_sse (uint8_t *src, int stride);
- -void ff_pred16x16_horizontal_mmx (uint8_t *src, int stride);
- -void ff_pred16x16_horizontal_mmxext(uint8_t *src, int stride);
- -void ff_pred16x16_horizontal_ssse3 (uint8_t *src, int stride);
- -void ff_pred16x16_dc_mmxext (uint8_t *src, int stride);
- -void ff_pred16x16_dc_sse2 (uint8_t *src, int stride);
- -void ff_pred16x16_dc_ssse3 (uint8_t *src, int stride);
- -void ff_pred16x16_plane_h264_mmx (uint8_t *src, int stride);
- -void ff_pred16x16_plane_h264_mmx2 (uint8_t *src, int stride);
- -void ff_pred16x16_plane_h264_sse2 (uint8_t *src, int stride);
- -void ff_pred16x16_plane_h264_ssse3 (uint8_t *src, int stride);
- -void ff_pred16x16_plane_rv40_mmx (uint8_t *src, int stride);
- -void ff_pred16x16_plane_rv40_mmx2 (uint8_t *src, int stride);
- -void ff_pred16x16_plane_rv40_sse2 (uint8_t *src, int stride);
- -void ff_pred16x16_plane_rv40_ssse3 (uint8_t *src, int stride);
- -void ff_pred16x16_plane_svq3_mmx (uint8_t *src, int stride);
- -void ff_pred16x16_plane_svq3_mmx2 (uint8_t *src, int stride);
- -void ff_pred16x16_plane_svq3_sse2 (uint8_t *src, int stride);
- -void ff_pred16x16_plane_svq3_ssse3 (uint8_t *src, int stride);
- -void ff_pred16x16_tm_vp8_mmx (uint8_t *src, int stride);
- -void ff_pred16x16_tm_vp8_mmxext (uint8_t *src, int stride);
- -void ff_pred16x16_tm_vp8_sse2 (uint8_t *src, int stride);
- -void ff_pred8x8_dc_rv40_mmxext (uint8_t *src, int stride);
- -void ff_pred8x8_vertical_mmx (uint8_t *src, int stride);
- -void ff_pred8x8_horizontal_mmx (uint8_t *src, int stride);
- -void ff_pred8x8_horizontal_mmxext (uint8_t *src, int stride);
- -void ff_pred8x8_horizontal_ssse3 (uint8_t *src, int stride);
- -void ff_pred8x8_plane_mmx (uint8_t *src, int stride);
- -void ff_pred8x8_plane_mmx2 (uint8_t *src, int stride);
- -void ff_pred8x8_plane_sse2 (uint8_t *src, int stride);
- -void ff_pred8x8_plane_ssse3 (uint8_t *src, int stride);
- -void ff_pred8x8_tm_vp8_mmx (uint8_t *src, int stride);
- -void ff_pred8x8_tm_vp8_mmxext (uint8_t *src, int stride);
- -void ff_pred8x8_tm_vp8_sse2 (uint8_t *src, int stride);
- -void ff_pred8x8_tm_vp8_ssse3 (uint8_t *src, int stride);
- -void ff_pred4x4_dc_mmxext (uint8_t *src, const uint8_t *topright, int stride);
- -void ff_pred4x4_down_left_mmxext (uint8_t *src, const uint8_t *topright, int stride);
- -void ff_pred4x4_tm_vp8_mmx (uint8_t *src, const uint8_t *topright, int stride);
- -void ff_pred4x4_tm_vp8_mmxext (uint8_t *src, const uint8_t *topright, int stride);
- -void ff_pred4x4_tm_vp8_ssse3 (uint8_t *src, const uint8_t *topright, int stride);
- -void ff_pred4x4_vertical_vp8_mmxext(uint8_t *src, const uint8_t *topright, int stride);
- +void ff_pred16x16_vertical_mmx (uint8_t *src, int stride);
- +void ff_pred16x16_vertical_sse (uint8_t *src, int stride);
- +void ff_pred16x16_horizontal_mmx (uint8_t *src, int stride);
- +void ff_pred16x16_horizontal_mmxext (uint8_t *src, int stride);
- +void ff_pred16x16_horizontal_ssse3 (uint8_t *src, int stride);
- +void ff_pred16x16_dc_mmxext (uint8_t *src, int stride);
- +void ff_pred16x16_dc_sse2 (uint8_t *src, int stride);
- +void ff_pred16x16_dc_ssse3 (uint8_t *src, int stride);
- +void ff_pred16x16_plane_h264_mmx (uint8_t *src, int stride);
- +void ff_pred16x16_plane_h264_mmx2 (uint8_t *src, int stride);
- +void ff_pred16x16_plane_h264_sse2 (uint8_t *src, int stride);
- +void ff_pred16x16_plane_h264_ssse3 (uint8_t *src, int stride);
- +void ff_pred16x16_plane_rv40_mmx (uint8_t *src, int stride);
- +void ff_pred16x16_plane_rv40_mmx2 (uint8_t *src, int stride);
- +void ff_pred16x16_plane_rv40_sse2 (uint8_t *src, int stride);
- +void ff_pred16x16_plane_rv40_ssse3 (uint8_t *src, int stride);
- +void ff_pred16x16_plane_svq3_mmx (uint8_t *src, int stride);
- +void ff_pred16x16_plane_svq3_mmx2 (uint8_t *src, int stride);
- +void ff_pred16x16_plane_svq3_sse2 (uint8_t *src, int stride);
- +void ff_pred16x16_plane_svq3_ssse3 (uint8_t *src, int stride);
- +void ff_pred16x16_tm_vp8_mmx (uint8_t *src, int stride);
- +void ff_pred16x16_tm_vp8_mmxext (uint8_t *src, int stride);
- +void ff_pred16x16_tm_vp8_sse2 (uint8_t *src, int stride);
- +void ff_pred8x8_dc_rv40_mmxext (uint8_t *src, int stride);
- +void ff_pred8x8_vertical_mmx (uint8_t *src, int stride);
- +void ff_pred8x8_horizontal_mmx (uint8_t *src, int stride);
- +void ff_pred8x8_horizontal_mmxext (uint8_t *src, int stride);
- +void ff_pred8x8_horizontal_ssse3 (uint8_t *src, int stride);
- +void ff_pred8x8_plane_mmx (uint8_t *src, int stride);
- +void ff_pred8x8_plane_mmx2 (uint8_t *src, int stride);
- +void ff_pred8x8_plane_sse2 (uint8_t *src, int stride);
- +void ff_pred8x8_plane_ssse3 (uint8_t *src, int stride);
- +void ff_pred8x8_tm_vp8_mmx (uint8_t *src, int stride);
- +void ff_pred8x8_tm_vp8_mmxext (uint8_t *src, int stride);
- +void ff_pred8x8_tm_vp8_sse2 (uint8_t *src, int stride);
- +void ff_pred8x8_tm_vp8_ssse3 (uint8_t *src, int stride);
- +void ff_pred4x4_dc_mmxext (uint8_t *src, const uint8_t *topright, int stride);
- +void ff_pred4x4_down_left_mmxext (uint8_t *src, const uint8_t *topright, int stride);
- +void ff_pred4x4_vertical_left_mmxext(uint8_t *src, const uint8_t *topright, int stride);
- +void ff_pred4x4_tm_vp8_mmx (uint8_t *src, const uint8_t *topright, int stride);
- +void ff_pred4x4_tm_vp8_mmxext (uint8_t *src, const uint8_t *topright, int stride);
- +void ff_pred4x4_tm_vp8_ssse3 (uint8_t *src, const uint8_t *topright, int stride);
- +void ff_pred4x4_vertical_vp8_mmxext (uint8_t *src, const uint8_t *topright, int stride);
- void ff_h264_pred_init_x86(H264PredContext *h, int codec_id)
- {
- @@ -97,6 +98,8 @@ void ff_h264_pred_init_x86(H264PredContext *h, int codec_id)
- h->pred4x4 [DC_PRED ] = ff_pred4x4_dc_mmxext;
- if (codec_id == CODEC_ID_VP8 || codec_id == CODEC_ID_H264)
- h->pred4x4[DIAG_DOWN_LEFT_PRED ] = ff_pred4x4_down_left_mmxext;
- + if (codec_id == CODEC_ID_SVQ3 || codec_id == CODEC_ID_H264)
- + h->pred4x4[VERT_LEFT_PRED ] = ff_pred4x4_vertical_left_mmxext;
- if (codec_id == CODEC_ID_VP8) {
- h->pred16x16[PLANE_PRED8x8 ] = ff_pred16x16_tm_vp8_mmxext;
- h->pred8x8 [DC_PRED8x8 ] = ff_pred8x8_dc_rv40_mmxext;
- --
- 1.7.2.2
- From 93be3629839abd06380e48a66f2bfa5a4e3f4c68 Mon Sep 17 00:00:00 2001
- From: Daniel Kang <daniel.d.kang@gmail.com>
- Date: Sat, 18 Dec 2010 00:02:40 -0500
- Subject: [PATCH 3/4] pred4x4_horizontal_up_mmxext
- ---
- libavcodec/x86/h264_intrapred.asm | 33 +++++++++++++++++++++++++++++++++
- libavcodec/x86/h264_intrapred_init.c | 5 ++++-
- 2 files changed, 37 insertions(+), 1 deletions(-)
- diff --git a/libavcodec/x86/h264_intrapred.asm b/libavcodec/x86/h264_intrapred.asm
- index afbaef6..b9a6341 100644
- --- a/libavcodec/x86/h264_intrapred.asm
- +++ b/libavcodec/x86/h264_intrapred.asm
- @@ -1157,3 +1157,36 @@ cglobal pred4x4_vertical_left_mmxext, 3,3
- movh [r1+r2*1], m4
- movh [r1+r2*2], m0
- RET
- +
- +;-----------------------------------------------------------------------------
- +; void pred4x4_horizontal_up_mmxext(uint8_t *src, const uint8_t *topright, int stride)
- +;-----------------------------------------------------------------------------
- +
- +INIT_MMX
- +cglobal pred4x4_horizontal_up_mmxext, 3,3
- + sub r0, r2
- + lea r1, [r0+r2*2]
- + movq m0, [r0+r2*1-8]
- + punpckhbw m0, [r0+r2*2-8]
- + movq m1, [r1+r2*1-8]
- + punpckhbw m1, [r1+r2*2-8]
- + punpckhwd m0, m1
- + movq m1, m0
- + punpckhbw m1, m1
- + pshufw m1, m1, 0xFF
- + punpckhdq m0, m1
- + movq m2, m0
- + movq m3, m0
- + movq m7, m0
- + psrlq m2, 16
- + psrlq m3, 8
- + pavgb m7, m3
- + PRED4x4_LOWPASS m4, m0, m2, m3, m5
- + punpcklbw m7, m4
- + movd [r0+r2*1], m7
- + psrlq m7, 16
- + movd [r0+r2*2], m7
- + psrlq m7, 16
- + movd [r1+r2*1], m7
- + movd [r1+r2*2], m1
- + RET
- diff --git a/libavcodec/x86/h264_intrapred_init.c b/libavcodec/x86/h264_intrapred_init.c
- index 9d09ecd..3ca88ea 100644
- --- a/libavcodec/x86/h264_intrapred_init.c
- +++ b/libavcodec/x86/h264_intrapred_init.c
- @@ -60,6 +60,7 @@ void ff_pred8x8_tm_vp8_ssse3 (uint8_t *src, int stride);
- void ff_pred4x4_dc_mmxext (uint8_t *src, const uint8_t *topright, int stride);
- void ff_pred4x4_down_left_mmxext (uint8_t *src, const uint8_t *topright, int stride);
- void ff_pred4x4_vertical_left_mmxext(uint8_t *src, const uint8_t *topright, int stride);
- +void ff_pred4x4_horizontal_up_mmxext(uint8_t *src, const uint8_t *topright, int stride);
- void ff_pred4x4_tm_vp8_mmx (uint8_t *src, const uint8_t *topright, int stride);
- void ff_pred4x4_tm_vp8_mmxext (uint8_t *src, const uint8_t *topright, int stride);
- void ff_pred4x4_tm_vp8_ssse3 (uint8_t *src, const uint8_t *topright, int stride);
- @@ -98,8 +99,10 @@ void ff_h264_pred_init_x86(H264PredContext *h, int codec_id)
- h->pred4x4 [DC_PRED ] = ff_pred4x4_dc_mmxext;
- if (codec_id == CODEC_ID_VP8 || codec_id == CODEC_ID_H264)
- h->pred4x4[DIAG_DOWN_LEFT_PRED ] = ff_pred4x4_down_left_mmxext;
- - if (codec_id == CODEC_ID_SVQ3 || codec_id == CODEC_ID_H264)
- + if (codec_id == CODEC_ID_SVQ3 || codec_id == CODEC_ID_H264) {
- h->pred4x4[VERT_LEFT_PRED ] = ff_pred4x4_vertical_left_mmxext;
- + h->pred4x4[HOR_UP_PRED ] = ff_pred4x4_horizontal_up_mmxext;
- + }
- if (codec_id == CODEC_ID_VP8) {
- h->pred16x16[PLANE_PRED8x8 ] = ff_pred16x16_tm_vp8_mmxext;
- h->pred8x8 [DC_PRED8x8 ] = ff_pred8x8_dc_rv40_mmxext;
- --
- 1.7.2.2
- From 0a4863f8acf6a445cf8978168fefb593e475f189 Mon Sep 17 00:00:00 2001
- From: Daniel Kang <daniel.d.kang@gmail.com>
- Date: Sat, 18 Dec 2010 19:02:41 -0500
- Subject: [PATCH 4/4] pred4x4_horizontal_down
- ---
- libavcodec/x86/h264_intrapred.asm | 37 +++++++++++++
- libavcodec/x86/h264_intrapred_init.c | 98 +++++++++++++++++----------------
- 2 files changed, 87 insertions(+), 48 deletions(-)
- diff --git a/libavcodec/x86/h264_intrapred.asm b/libavcodec/x86/h264_intrapred.asm
- index b9a6341..41599f1 100644
- --- a/libavcodec/x86/h264_intrapred.asm
- +++ b/libavcodec/x86/h264_intrapred.asm
- @@ -20,6 +20,7 @@
- ;******************************************************************************
- %include "x86inc.asm"
- +%include "x86util.asm"
- SECTION_RODATA
- @@ -1190,3 +1191,39 @@ cglobal pred4x4_horizontal_up_mmxext, 3,3
- movd [r1+r2*1], m7
- movd [r1+r2*2], m1
- RET
- +
- +;-----------------------------------------------------------------------------
- +; void pred4x4_horizontal_up_mmxext(uint8_t *src, const uint8_t *topright, int stride)
- +;-----------------------------------------------------------------------------
- +
- +INIT_MMX
- +%define PALIGNR PALIGNR_MMX
- +cglobal pred4x4_horizontal_down_mmxext, 3,3
- + sub r0, r2
- + lea r1, [r0+r2*2]
- + movh m0, [r0-4] ; lt ..
- + punpckldq m0, [r0] ; t3 t2 t1 t0 lt .. .. ..
- + psllq m0, 8 ; t2 t1 t0 lt .. .. .. ..
- + movu m1, [r1+r2*2-8] ; l3
- + punpckhbw m1, [r1+r2*1-8] ; l2 l3
- + movu m2, [r0+r2*2-8] ; l1
- + punpckhbw m2, [r0+r2*1-8] ; l0 l1
- + punpckhwd m1, m2 ; l0 l1 l2 l3
- + punpckhdq m1, m0 ; t2 t1 t0 lt l0 l1 l2 l3
- + mova m0, m1
- + mova m2, m1
- + mova m5, m1
- + psrlq m0, 16 ; .. .. t2 t1 t0 lt l0 l1
- + psrlq m2, 8 ; .. t2 t1 t0 lt l0 l1 l2
- + pavgb m5, m2
- + PRED4x4_LOWPASS m3, m1, m0, m2, m4
- + punpcklbw m5, m3
- + psrlq m3, 32
- + PALIGNR m3, m5, 6, m4
- + movh [r1+r2*2], m5
- + psrlq m5, 16
- + movh [r1+r2*1], m5
- + psrlq m5, 16
- + movh [r0+r2*2], m5
- + movh [r0+r2*1], m3
- + RET
- diff --git a/libavcodec/x86/h264_intrapred_init.c b/libavcodec/x86/h264_intrapred_init.c
- index 3ca88ea..3efb156 100644
- --- a/libavcodec/x86/h264_intrapred_init.c
- +++ b/libavcodec/x86/h264_intrapred_init.c
- @@ -21,50 +21,51 @@
- #include "libavutil/cpu.h"
- #include "libavcodec/h264pred.h"
- -void ff_pred16x16_vertical_mmx (uint8_t *src, int stride);
- -void ff_pred16x16_vertical_sse (uint8_t *src, int stride);
- -void ff_pred16x16_horizontal_mmx (uint8_t *src, int stride);
- -void ff_pred16x16_horizontal_mmxext (uint8_t *src, int stride);
- -void ff_pred16x16_horizontal_ssse3 (uint8_t *src, int stride);
- -void ff_pred16x16_dc_mmxext (uint8_t *src, int stride);
- -void ff_pred16x16_dc_sse2 (uint8_t *src, int stride);
- -void ff_pred16x16_dc_ssse3 (uint8_t *src, int stride);
- -void ff_pred16x16_plane_h264_mmx (uint8_t *src, int stride);
- -void ff_pred16x16_plane_h264_mmx2 (uint8_t *src, int stride);
- -void ff_pred16x16_plane_h264_sse2 (uint8_t *src, int stride);
- -void ff_pred16x16_plane_h264_ssse3 (uint8_t *src, int stride);
- -void ff_pred16x16_plane_rv40_mmx (uint8_t *src, int stride);
- -void ff_pred16x16_plane_rv40_mmx2 (uint8_t *src, int stride);
- -void ff_pred16x16_plane_rv40_sse2 (uint8_t *src, int stride);
- -void ff_pred16x16_plane_rv40_ssse3 (uint8_t *src, int stride);
- -void ff_pred16x16_plane_svq3_mmx (uint8_t *src, int stride);
- -void ff_pred16x16_plane_svq3_mmx2 (uint8_t *src, int stride);
- -void ff_pred16x16_plane_svq3_sse2 (uint8_t *src, int stride);
- -void ff_pred16x16_plane_svq3_ssse3 (uint8_t *src, int stride);
- -void ff_pred16x16_tm_vp8_mmx (uint8_t *src, int stride);
- -void ff_pred16x16_tm_vp8_mmxext (uint8_t *src, int stride);
- -void ff_pred16x16_tm_vp8_sse2 (uint8_t *src, int stride);
- -void ff_pred8x8_dc_rv40_mmxext (uint8_t *src, int stride);
- -void ff_pred8x8_vertical_mmx (uint8_t *src, int stride);
- -void ff_pred8x8_horizontal_mmx (uint8_t *src, int stride);
- -void ff_pred8x8_horizontal_mmxext (uint8_t *src, int stride);
- -void ff_pred8x8_horizontal_ssse3 (uint8_t *src, int stride);
- -void ff_pred8x8_plane_mmx (uint8_t *src, int stride);
- -void ff_pred8x8_plane_mmx2 (uint8_t *src, int stride);
- -void ff_pred8x8_plane_sse2 (uint8_t *src, int stride);
- -void ff_pred8x8_plane_ssse3 (uint8_t *src, int stride);
- -void ff_pred8x8_tm_vp8_mmx (uint8_t *src, int stride);
- -void ff_pred8x8_tm_vp8_mmxext (uint8_t *src, int stride);
- -void ff_pred8x8_tm_vp8_sse2 (uint8_t *src, int stride);
- -void ff_pred8x8_tm_vp8_ssse3 (uint8_t *src, int stride);
- -void ff_pred4x4_dc_mmxext (uint8_t *src, const uint8_t *topright, int stride);
- -void ff_pred4x4_down_left_mmxext (uint8_t *src, const uint8_t *topright, int stride);
- -void ff_pred4x4_vertical_left_mmxext(uint8_t *src, const uint8_t *topright, int stride);
- -void ff_pred4x4_horizontal_up_mmxext(uint8_t *src, const uint8_t *topright, int stride);
- -void ff_pred4x4_tm_vp8_mmx (uint8_t *src, const uint8_t *topright, int stride);
- -void ff_pred4x4_tm_vp8_mmxext (uint8_t *src, const uint8_t *topright, int stride);
- -void ff_pred4x4_tm_vp8_ssse3 (uint8_t *src, const uint8_t *topright, int stride);
- -void ff_pred4x4_vertical_vp8_mmxext (uint8_t *src, const uint8_t *topright, int stride);
- +void ff_pred16x16_vertical_mmx (uint8_t *src, int stride);
- +void ff_pred16x16_vertical_sse (uint8_t *src, int stride);
- +void ff_pred16x16_horizontal_mmx (uint8_t *src, int stride);
- +void ff_pred16x16_horizontal_mmxext (uint8_t *src, int stride);
- +void ff_pred16x16_horizontal_ssse3 (uint8_t *src, int stride);
- +void ff_pred16x16_dc_mmxext (uint8_t *src, int stride);
- +void ff_pred16x16_dc_sse2 (uint8_t *src, int stride);
- +void ff_pred16x16_dc_ssse3 (uint8_t *src, int stride);
- +void ff_pred16x16_plane_h264_mmx (uint8_t *src, int stride);
- +void ff_pred16x16_plane_h264_mmx2 (uint8_t *src, int stride);
- +void ff_pred16x16_plane_h264_sse2 (uint8_t *src, int stride);
- +void ff_pred16x16_plane_h264_ssse3 (uint8_t *src, int stride);
- +void ff_pred16x16_plane_rv40_mmx (uint8_t *src, int stride);
- +void ff_pred16x16_plane_rv40_mmx2 (uint8_t *src, int stride);
- +void ff_pred16x16_plane_rv40_sse2 (uint8_t *src, int stride);
- +void ff_pred16x16_plane_rv40_ssse3 (uint8_t *src, int stride);
- +void ff_pred16x16_plane_svq3_mmx (uint8_t *src, int stride);
- +void ff_pred16x16_plane_svq3_mmx2 (uint8_t *src, int stride);
- +void ff_pred16x16_plane_svq3_sse2 (uint8_t *src, int stride);
- +void ff_pred16x16_plane_svq3_ssse3 (uint8_t *src, int stride);
- +void ff_pred16x16_tm_vp8_mmx (uint8_t *src, int stride);
- +void ff_pred16x16_tm_vp8_mmxext (uint8_t *src, int stride);
- +void ff_pred16x16_tm_vp8_sse2 (uint8_t *src, int stride);
- +void ff_pred8x8_dc_rv40_mmxext (uint8_t *src, int stride);
- +void ff_pred8x8_vertical_mmx (uint8_t *src, int stride);
- +void ff_pred8x8_horizontal_mmx (uint8_t *src, int stride);
- +void ff_pred8x8_horizontal_mmxext (uint8_t *src, int stride);
- +void ff_pred8x8_horizontal_ssse3 (uint8_t *src, int stride);
- +void ff_pred8x8_plane_mmx (uint8_t *src, int stride);
- +void ff_pred8x8_plane_mmx2 (uint8_t *src, int stride);
- +void ff_pred8x8_plane_sse2 (uint8_t *src, int stride);
- +void ff_pred8x8_plane_ssse3 (uint8_t *src, int stride);
- +void ff_pred8x8_tm_vp8_mmx (uint8_t *src, int stride);
- +void ff_pred8x8_tm_vp8_mmxext (uint8_t *src, int stride);
- +void ff_pred8x8_tm_vp8_sse2 (uint8_t *src, int stride);
- +void ff_pred8x8_tm_vp8_ssse3 (uint8_t *src, int stride);
- +void ff_pred4x4_dc_mmxext (uint8_t *src, const uint8_t *topright, int stride);
- +void ff_pred4x4_down_left_mmxext (uint8_t *src, const uint8_t *topright, int stride);
- +void ff_pred4x4_vertical_left_mmxext (uint8_t *src, const uint8_t *topright, int stride);
- +void ff_pred4x4_horizontal_up_mmxext (uint8_t *src, const uint8_t *topright, int stride);
- +void ff_pred4x4_horizontal_down_mmxext(uint8_t *src, const uint8_t *topright, int stride);
- +void ff_pred4x4_tm_vp8_mmx (uint8_t *src, const uint8_t *topright, int stride);
- +void ff_pred4x4_tm_vp8_mmxext (uint8_t *src, const uint8_t *topright, int stride);
- +void ff_pred4x4_tm_vp8_ssse3 (uint8_t *src, const uint8_t *topright, int stride);
- +void ff_pred4x4_vertical_vp8_mmxext (uint8_t *src, const uint8_t *topright, int stride);
- void ff_h264_pred_init_x86(H264PredContext *h, int codec_id)
- {
- @@ -93,10 +94,11 @@ void ff_h264_pred_init_x86(H264PredContext *h, int codec_id)
- }
- if (mm_flags & AV_CPU_FLAG_MMX2) {
- - h->pred16x16[HOR_PRED8x8 ] = ff_pred16x16_horizontal_mmxext;
- - h->pred16x16[DC_PRED8x8 ] = ff_pred16x16_dc_mmxext;
- - h->pred8x8 [HOR_PRED8x8 ] = ff_pred8x8_horizontal_mmxext;
- - h->pred4x4 [DC_PRED ] = ff_pred4x4_dc_mmxext;
- + h->pred16x16[HOR_PRED8x8 ] = ff_pred16x16_horizontal_mmxext;
- + h->pred16x16[DC_PRED8x8 ] = ff_pred16x16_dc_mmxext;
- + h->pred8x8 [HOR_PRED8x8 ] = ff_pred8x8_horizontal_mmxext;
- + h->pred4x4 [DC_PRED ] = ff_pred4x4_dc_mmxext;
- + h->pred4x4 [HOR_DOWN_PRED] = ff_pred4x4_horizontal_down_mmxext;
- if (codec_id == CODEC_ID_VP8 || codec_id == CODEC_ID_H264)
- h->pred4x4[DIAG_DOWN_LEFT_PRED ] = ff_pred4x4_down_left_mmxext;
- if (codec_id == CODEC_ID_SVQ3 || codec_id == CODEC_ID_H264) {
- --
- 1.7.2.2
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement