summaryrefslogtreecommitdiff
path: root/libavcodec/sh4
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2013-04-20 14:47:10 +0200
committerMichael Niedermayer <michaelni@gmx.at>2013-04-20 15:04:06 +0200
commit4bdec0e71edc3b46793908eaca26864657497cc1 (patch)
tree0d99dce037fa8b08d7452ee7220f5eca32841a63 /libavcodec/sh4
parentc5a11ab6d1067f8306b318b9fda10b106389cea0 (diff)
parent278bd2054ca61ab70dfe38f1774409cda2da5359 (diff)
Merge commit '278bd2054ca61ab70dfe38f1774409cda2da5359'
* commit '278bd2054ca61ab70dfe38f1774409cda2da5359': sh4: hpeldsp: Move half-pel assembly from dsputil to hpeldsp Conflicts: libavcodec/hpeldsp.c libavcodec/hpeldsp.h libavcodec/sh4/dsputil_align.c libavcodec/sh4/dsputil_sh4.h libavcodec/sh4/hpeldsp.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec/sh4')
-rw-r--r--libavcodec/sh4/dsputil_align.c18
-rw-r--r--libavcodec/sh4/dsputil_sh4.h12
-rw-r--r--libavcodec/sh4/hpeldsp.c80
3 files changed, 52 insertions, 58 deletions
diff --git a/libavcodec/sh4/dsputil_align.c b/libavcodec/sh4/dsputil_align.c
index d6bd479fca..d63001032d 100644
--- a/libavcodec/sh4/dsputil_align.c
+++ b/libavcodec/sh4/dsputil_align.c
@@ -233,18 +233,6 @@ if (sz==16) { \
} while(--height); \
}
-#define DEFFUNC(op,rnd,xy,sz,OP_N,avgfunc) \
-static void op##_##rnd##_pixels##sz##_##xy (uint8_t * dest, const uint8_t * ref, \
- const ptrdiff_t stride, int height) \
-{ \
- switch((int)ref&3) { \
- case 0:OP_N##0(sz,rnd##_##avgfunc); return; \
- case 1:OP_N(1,sz,rnd##_##avgfunc); return; \
- case 2:OP_N(2,sz,rnd##_##avgfunc); return; \
- case 3:OP_N(3,sz,rnd##_##avgfunc); return; \
- } \
-}
-
#define put_pixels8_c ff_put_rnd_pixels8_o
#define put_pixels16_c ff_put_rnd_pixels16_o
#define avg_pixels8_c ff_avg_rnd_pixels8_o
@@ -253,7 +241,7 @@ static void op##_##rnd##_pixels##sz##_##xy (uint8_t * dest, const uint8_t * ref,
#define put_no_rnd_pixels16_c ff_put_rnd_pixels16_o
#define avg_no_rnd_pixels16_c ff_avg_rnd_pixels16_o
-#if CONFIG_H264QPEL
+#if CONFIG_HPELDSP
#include "qpel.c"
@@ -261,9 +249,7 @@ static void op##_##rnd##_pixels##sz##_##xy (uint8_t * dest, const uint8_t * ref,
av_cold void ff_dsputil_init_align(DSPContext *c, AVCodecContext *avctx)
{
- const int high_bit_depth = avctx->bits_per_raw_sample > 8;
-
-#if CONFIG_H264QPEL
+#if CONFIG_HPELDSP
#define dspfunc(PFX, IDX, NUM) \
c->PFX ## _pixels_tab[IDX][ 0] = PFX ## NUM ## _mc00_sh4; \
diff --git a/libavcodec/sh4/dsputil_sh4.h b/libavcodec/sh4/dsputil_sh4.h
index bd97a5b91f..42f1fe1452 100644
--- a/libavcodec/sh4/dsputil_sh4.h
+++ b/libavcodec/sh4/dsputil_sh4.h
@@ -26,9 +26,13 @@
void ff_idct_sh4(int16_t *block);
void ff_dsputil_init_align(DSPContext* c, AVCodecContext *avctx);
-void ff_put_rnd_pixels8_o (uint8_t * dest, const uint8_t * ref, const int stride, int height);
-void ff_put_rnd_pixels16_o(uint8_t * dest, const uint8_t * ref, const int stride, int height);
-void ff_avg_rnd_pixels8_o (uint8_t * dest, const uint8_t * ref, const int stride, int height);
-void ff_avg_rnd_pixels16_o(uint8_t * dest, const uint8_t * ref, const int stride, int height);
+void ff_put_rnd_pixels8_o(uint8_t *dest, const uint8_t *ref,
+ const ptrdiff_t stride, int height);
+void ff_put_rnd_pixels16_o(uint8_t *dest, const uint8_t *ref,
+ const ptrdiff_t stride, int height);
+void ff_avg_rnd_pixels8_o (uint8_t *dest, const uint8_t *ref,
+ const ptrdiff_t stride, int height);
+void ff_avg_rnd_pixels16_o(uint8_t *dest, const uint8_t *ref,
+ const ptrdiff_t stride, int height);
#endif /* AVCODEC_SH4_DSPUTIL_SH4_H */
diff --git a/libavcodec/sh4/hpeldsp.c b/libavcodec/sh4/hpeldsp.c
index b524003f3e..d604b5be0f 100644
--- a/libavcodec/sh4/hpeldsp.c
+++ b/libavcodec/sh4/hpeldsp.c
@@ -20,10 +20,12 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
-
+#include "libavutil/attributes.h"
#include "libavcodec/avcodec.h"
#include "libavcodec/dsputil.h"
#include "libavcodec/bit_depth_template.c" // for BYTE_VEC32
+#include "libavcodec/hpeldsp.h"
+#include "libavcodec/rnd_avg.h"
#include "dsputil_sh4.h"
@@ -69,7 +71,8 @@
#define OP put
-static void put_pixels4_c(uint8_t *dest,const uint8_t *ref, const int stride,int height)
+static void put_pixels4_c(uint8_t *dest, const uint8_t *ref,
+ const int stride, int height)
{
switch((int)ref&3){
case 0: OP_C40(); return;
@@ -82,7 +85,8 @@ static void put_pixels4_c(uint8_t *dest,const uint8_t *ref, const int stride,int
#undef OP
#define OP avg
-static void avg_pixels4_c(uint8_t *dest,const uint8_t *ref, const int stride,int height)
+static void avg_pixels4_c(uint8_t *dest, const uint8_t *ref,
+ const int stride, int height)
{
switch((int)ref&3){
case 0: OP_C40(); return;
@@ -261,9 +265,9 @@ if (sz==16) { \
} while(--height); \
}
-#define DEFFUNC(prefix, op,rnd,xy,sz,OP_N,avgfunc) \
-prefix void op##_##rnd##_pixels##sz##_##xy (uint8_t * dest, const uint8_t * ref, \
- const int stride, int height) \
+#define DEFFUNC(prefix, op, rnd, xy, sz, OP_N, avgfunc) \
+prefix void op##_##rnd##_pixels##sz##_##xy(uint8_t *dest, const uint8_t *ref, \
+ const ptrdiff_t stride, int height) \
{ \
switch((int)ref&3) { \
case 0:OP_N##0(sz,rnd##_##avgfunc); return; \
@@ -311,37 +315,37 @@ DEFFUNC(static,avg,no_rnd,xy,16,OP_XY,PACK)
#define ff_put_no_rnd_pixels16_o ff_put_rnd_pixels16_o
#define ff_avg_no_rnd_pixels16_o ff_avg_rnd_pixels16_o
-void ff_hpeldsp_init_sh4(HpelDSPContext* c, int flags)
+av_cold void ff_hpeldsp_init_sh4(HpelDSPContext *c, int flags)
{
- c->put_pixels_tab[0][0] = ff_put_rnd_pixels16_o;
- c->put_pixels_tab[0][1] = put_rnd_pixels16_x;
- c->put_pixels_tab[0][2] = put_rnd_pixels16_y;
- c->put_pixels_tab[0][3] = put_rnd_pixels16_xy;
- c->put_pixels_tab[1][0] = ff_put_rnd_pixels8_o;
- c->put_pixels_tab[1][1] = put_rnd_pixels8_x;
- c->put_pixels_tab[1][2] = put_rnd_pixels8_y;
- c->put_pixels_tab[1][3] = put_rnd_pixels8_xy;
-
- c->put_no_rnd_pixels_tab[0][0] = ff_put_no_rnd_pixels16_o;
- c->put_no_rnd_pixels_tab[0][1] = put_no_rnd_pixels16_x;
- c->put_no_rnd_pixels_tab[0][2] = put_no_rnd_pixels16_y;
- c->put_no_rnd_pixels_tab[0][3] = put_no_rnd_pixels16_xy;
- c->put_no_rnd_pixels_tab[1][0] = ff_put_no_rnd_pixels8_o;
- c->put_no_rnd_pixels_tab[1][1] = put_no_rnd_pixels8_x;
- c->put_no_rnd_pixels_tab[1][2] = put_no_rnd_pixels8_y;
- c->put_no_rnd_pixels_tab[1][3] = put_no_rnd_pixels8_xy;
-
- c->avg_pixels_tab[0][0] = ff_avg_rnd_pixels16_o;
- c->avg_pixels_tab[0][1] = avg_rnd_pixels16_x;
- c->avg_pixels_tab[0][2] = avg_rnd_pixels16_y;
- c->avg_pixels_tab[0][3] = avg_rnd_pixels16_xy;
- c->avg_pixels_tab[1][0] = ff_avg_rnd_pixels8_o;
- c->avg_pixels_tab[1][1] = avg_rnd_pixels8_x;
- c->avg_pixels_tab[1][2] = avg_rnd_pixels8_y;
- c->avg_pixels_tab[1][3] = avg_rnd_pixels8_xy;
-
- c->avg_no_rnd_pixels_tab[0] = ff_avg_no_rnd_pixels16_o;
- c->avg_no_rnd_pixels_tab[1] = avg_no_rnd_pixels16_x;
- c->avg_no_rnd_pixels_tab[2] = avg_no_rnd_pixels16_y;
- c->avg_no_rnd_pixels_tab[3] = avg_no_rnd_pixels16_xy;
+ c->put_pixels_tab[0][0] = ff_put_rnd_pixels16_o;
+ c->put_pixels_tab[0][1] = put_rnd_pixels16_x;
+ c->put_pixels_tab[0][2] = put_rnd_pixels16_y;
+ c->put_pixels_tab[0][3] = put_rnd_pixels16_xy;
+ c->put_pixels_tab[1][0] = ff_put_rnd_pixels8_o;
+ c->put_pixels_tab[1][1] = put_rnd_pixels8_x;
+ c->put_pixels_tab[1][2] = put_rnd_pixels8_y;
+ c->put_pixels_tab[1][3] = put_rnd_pixels8_xy;
+
+ c->put_no_rnd_pixels_tab[0][0] = ff_put_no_rnd_pixels16_o;
+ c->put_no_rnd_pixels_tab[0][1] = put_no_rnd_pixels16_x;
+ c->put_no_rnd_pixels_tab[0][2] = put_no_rnd_pixels16_y;
+ c->put_no_rnd_pixels_tab[0][3] = put_no_rnd_pixels16_xy;
+ c->put_no_rnd_pixels_tab[1][0] = ff_put_no_rnd_pixels8_o;
+ c->put_no_rnd_pixels_tab[1][1] = put_no_rnd_pixels8_x;
+ c->put_no_rnd_pixels_tab[1][2] = put_no_rnd_pixels8_y;
+ c->put_no_rnd_pixels_tab[1][3] = put_no_rnd_pixels8_xy;
+
+ c->avg_pixels_tab[0][0] = ff_avg_rnd_pixels16_o;
+ c->avg_pixels_tab[0][1] = avg_rnd_pixels16_x;
+ c->avg_pixels_tab[0][2] = avg_rnd_pixels16_y;
+ c->avg_pixels_tab[0][3] = avg_rnd_pixels16_xy;
+ c->avg_pixels_tab[1][0] = ff_avg_rnd_pixels8_o;
+ c->avg_pixels_tab[1][1] = avg_rnd_pixels8_x;
+ c->avg_pixels_tab[1][2] = avg_rnd_pixels8_y;
+ c->avg_pixels_tab[1][3] = avg_rnd_pixels8_xy;
+
+ c->avg_no_rnd_pixels_tab[0] = ff_avg_no_rnd_pixels16_o;
+ c->avg_no_rnd_pixels_tab[1] = avg_no_rnd_pixels16_x;
+ c->avg_no_rnd_pixels_tab[2] = avg_no_rnd_pixels16_y;
+ c->avg_no_rnd_pixels_tab[3] = avg_no_rnd_pixels16_xy;
}