You've already forked FFmpeg
mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-08-15 14:13:16 +02:00
committed by
Michael Niedermayer
parent
1d37e908cf
commit
56cbc5f19f
@@ -32,7 +32,6 @@
|
|||||||
|
|
||||||
#define OP_U8_ALTIVEC PUT_OP_U8_ALTIVEC
|
#define OP_U8_ALTIVEC PUT_OP_U8_ALTIVEC
|
||||||
#define PREFIX_h264_chroma_mc8_altivec put_h264_chroma_mc8_altivec
|
#define PREFIX_h264_chroma_mc8_altivec put_h264_chroma_mc8_altivec
|
||||||
#define PREFIX_no_rnd_vc1_chroma_mc8_altivec put_no_rnd_vc1_chroma_mc8_altivec
|
|
||||||
#define PREFIX_h264_chroma_mc8_num altivec_put_h264_chroma_mc8_num
|
#define PREFIX_h264_chroma_mc8_num altivec_put_h264_chroma_mc8_num
|
||||||
#define PREFIX_h264_qpel16_h_lowpass_altivec put_h264_qpel16_h_lowpass_altivec
|
#define PREFIX_h264_qpel16_h_lowpass_altivec put_h264_qpel16_h_lowpass_altivec
|
||||||
#define PREFIX_h264_qpel16_h_lowpass_num altivec_put_h264_qpel16_h_lowpass_num
|
#define PREFIX_h264_qpel16_h_lowpass_num altivec_put_h264_qpel16_h_lowpass_num
|
||||||
@@ -43,7 +42,6 @@
|
|||||||
#include "h264_template_altivec.c"
|
#include "h264_template_altivec.c"
|
||||||
#undef OP_U8_ALTIVEC
|
#undef OP_U8_ALTIVEC
|
||||||
#undef PREFIX_h264_chroma_mc8_altivec
|
#undef PREFIX_h264_chroma_mc8_altivec
|
||||||
#undef PREFIX_no_rnd_vc1_chroma_mc8_altivec
|
|
||||||
#undef PREFIX_h264_chroma_mc8_num
|
#undef PREFIX_h264_chroma_mc8_num
|
||||||
#undef PREFIX_h264_qpel16_h_lowpass_altivec
|
#undef PREFIX_h264_qpel16_h_lowpass_altivec
|
||||||
#undef PREFIX_h264_qpel16_h_lowpass_num
|
#undef PREFIX_h264_qpel16_h_lowpass_num
|
||||||
@@ -54,7 +52,6 @@
|
|||||||
|
|
||||||
#define OP_U8_ALTIVEC AVG_OP_U8_ALTIVEC
|
#define OP_U8_ALTIVEC AVG_OP_U8_ALTIVEC
|
||||||
#define PREFIX_h264_chroma_mc8_altivec avg_h264_chroma_mc8_altivec
|
#define PREFIX_h264_chroma_mc8_altivec avg_h264_chroma_mc8_altivec
|
||||||
#define PREFIX_no_rnd_vc1_chroma_mc8_altivec avg_no_rnd_vc1_chroma_mc8_altivec
|
|
||||||
#define PREFIX_h264_chroma_mc8_num altivec_avg_h264_chroma_mc8_num
|
#define PREFIX_h264_chroma_mc8_num altivec_avg_h264_chroma_mc8_num
|
||||||
#define PREFIX_h264_qpel16_h_lowpass_altivec avg_h264_qpel16_h_lowpass_altivec
|
#define PREFIX_h264_qpel16_h_lowpass_altivec avg_h264_qpel16_h_lowpass_altivec
|
||||||
#define PREFIX_h264_qpel16_h_lowpass_num altivec_avg_h264_qpel16_h_lowpass_num
|
#define PREFIX_h264_qpel16_h_lowpass_num altivec_avg_h264_qpel16_h_lowpass_num
|
||||||
@@ -65,7 +62,6 @@
|
|||||||
#include "h264_template_altivec.c"
|
#include "h264_template_altivec.c"
|
||||||
#undef OP_U8_ALTIVEC
|
#undef OP_U8_ALTIVEC
|
||||||
#undef PREFIX_h264_chroma_mc8_altivec
|
#undef PREFIX_h264_chroma_mc8_altivec
|
||||||
#undef PREFIX_no_rnd_vc1_chroma_mc8_altivec
|
|
||||||
#undef PREFIX_h264_chroma_mc8_num
|
#undef PREFIX_h264_chroma_mc8_num
|
||||||
#undef PREFIX_h264_qpel16_h_lowpass_altivec
|
#undef PREFIX_h264_qpel16_h_lowpass_altivec
|
||||||
#undef PREFIX_h264_qpel16_h_lowpass_num
|
#undef PREFIX_h264_qpel16_h_lowpass_num
|
||||||
@@ -973,8 +969,6 @@ void dsputil_h264_init_ppc(DSPContext* c, AVCodecContext *avctx) {
|
|||||||
if (av_get_cpu_flags() & AV_CPU_FLAG_ALTIVEC) {
|
if (av_get_cpu_flags() & AV_CPU_FLAG_ALTIVEC) {
|
||||||
c->put_h264_chroma_pixels_tab[0] = put_h264_chroma_mc8_altivec;
|
c->put_h264_chroma_pixels_tab[0] = put_h264_chroma_mc8_altivec;
|
||||||
c->avg_h264_chroma_pixels_tab[0] = avg_h264_chroma_mc8_altivec;
|
c->avg_h264_chroma_pixels_tab[0] = avg_h264_chroma_mc8_altivec;
|
||||||
c->put_no_rnd_vc1_chroma_pixels_tab[0] = put_no_rnd_vc1_chroma_mc8_altivec;
|
|
||||||
c->avg_no_rnd_vc1_chroma_pixels_tab[0] = avg_no_rnd_vc1_chroma_mc8_altivec;
|
|
||||||
|
|
||||||
#define dspfunc(PFX, IDX, NUM) \
|
#define dspfunc(PFX, IDX, NUM) \
|
||||||
c->PFX ## _pixels_tab[IDX][ 0] = PFX ## NUM ## _mc00_altivec; \
|
c->PFX ## _pixels_tab[IDX][ 0] = PFX ## NUM ## _mc00_altivec; \
|
||||||
|
@@ -75,6 +75,7 @@
|
|||||||
#define noop(a) a
|
#define noop(a) a
|
||||||
#define add28(a) vec_add(v28ss, a)
|
#define add28(a) vec_add(v28ss, a)
|
||||||
|
|
||||||
|
#ifdef PREFIX_h264_chroma_mc8_altivec
|
||||||
static void PREFIX_h264_chroma_mc8_altivec(uint8_t * dst, uint8_t * src,
|
static void PREFIX_h264_chroma_mc8_altivec(uint8_t * dst, uint8_t * src,
|
||||||
int stride, int h, int x, int y) {
|
int stride, int h, int x, int y) {
|
||||||
DECLARE_ALIGNED(16, signed int, ABCD)[4] =
|
DECLARE_ALIGNED(16, signed int, ABCD)[4] =
|
||||||
@@ -201,8 +202,10 @@ static void PREFIX_h264_chroma_mc8_altivec(uint8_t * dst, uint8_t * src,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/* this code assume that stride % 16 == 0 */
|
/* this code assume that stride % 16 == 0 */
|
||||||
|
#ifdef PREFIX_no_rnd_vc1_chroma_mc8_altivec
|
||||||
static void PREFIX_no_rnd_vc1_chroma_mc8_altivec(uint8_t * dst, uint8_t * src, int stride, int h, int x, int y) {
|
static void PREFIX_no_rnd_vc1_chroma_mc8_altivec(uint8_t * dst, uint8_t * src, int stride, int h, int x, int y) {
|
||||||
DECLARE_ALIGNED(16, signed int, ABCD)[4] =
|
DECLARE_ALIGNED(16, signed int, ABCD)[4] =
|
||||||
{((8 - x) * (8 - y)),
|
{((8 - x) * (8 - y)),
|
||||||
@@ -284,12 +287,14 @@ static void PREFIX_no_rnd_vc1_chroma_mc8_altivec(uint8_t * dst, uint8_t * src, i
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#undef noop
|
#undef noop
|
||||||
#undef add28
|
#undef add28
|
||||||
#undef CHROMA_MC8_ALTIVEC_CORE
|
#undef CHROMA_MC8_ALTIVEC_CORE
|
||||||
|
|
||||||
/* this code assume stride % 16 == 0 */
|
/* this code assume stride % 16 == 0 */
|
||||||
|
#ifdef PREFIX_h264_qpel16_h_lowpass_altivec
|
||||||
static void PREFIX_h264_qpel16_h_lowpass_altivec(uint8_t * dst, uint8_t * src, int dstStride, int srcStride) {
|
static void PREFIX_h264_qpel16_h_lowpass_altivec(uint8_t * dst, uint8_t * src, int dstStride, int srcStride) {
|
||||||
register int i;
|
register int i;
|
||||||
|
|
||||||
@@ -427,8 +432,10 @@ static void PREFIX_h264_qpel16_h_lowpass_altivec(uint8_t * dst, uint8_t * src, i
|
|||||||
dst += dstStride;
|
dst += dstStride;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/* this code assume stride % 16 == 0 */
|
/* this code assume stride % 16 == 0 */
|
||||||
|
#ifdef PREFIX_h264_qpel16_v_lowpass_altivec
|
||||||
static void PREFIX_h264_qpel16_v_lowpass_altivec(uint8_t * dst, uint8_t * src, int dstStride, int srcStride) {
|
static void PREFIX_h264_qpel16_v_lowpass_altivec(uint8_t * dst, uint8_t * src, int dstStride, int srcStride) {
|
||||||
register int i;
|
register int i;
|
||||||
|
|
||||||
@@ -533,8 +540,10 @@ static void PREFIX_h264_qpel16_v_lowpass_altivec(uint8_t * dst, uint8_t * src, i
|
|||||||
dst += dstStride;
|
dst += dstStride;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/* this code assume stride % 16 == 0 *and* tmp is properly aligned */
|
/* this code assume stride % 16 == 0 *and* tmp is properly aligned */
|
||||||
|
#ifdef PREFIX_h264_qpel16_hv_lowpass_altivec
|
||||||
static void PREFIX_h264_qpel16_hv_lowpass_altivec(uint8_t * dst, int16_t * tmp, uint8_t * src, int dstStride, int tmpStride, int srcStride) {
|
static void PREFIX_h264_qpel16_hv_lowpass_altivec(uint8_t * dst, int16_t * tmp, uint8_t * src, int dstStride, int tmpStride, int srcStride) {
|
||||||
register int i;
|
register int i;
|
||||||
LOAD_ZERO;
|
LOAD_ZERO;
|
||||||
@@ -765,3 +774,4 @@ static void PREFIX_h264_qpel16_hv_lowpass_altivec(uint8_t * dst, int16_t * tmp,
|
|||||||
dst += dstStride;
|
dst += dstStride;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
@@ -20,6 +20,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "libavcodec/dsputil.h"
|
#include "libavcodec/dsputil.h"
|
||||||
|
#include "libavcodec/vc1dsp.h"
|
||||||
|
|
||||||
#include "util_altivec.h"
|
#include "util_altivec.h"
|
||||||
#include "dsputil_altivec.h"
|
#include "dsputil_altivec.h"
|
||||||
@@ -321,6 +322,20 @@ static void vc1_inv_trans_8x4_altivec(uint8_t *dest, int stride, DCTELEM *block)
|
|||||||
ADD (dest, src3, perm1)
|
ADD (dest, src3, perm1)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define PUT_OP_U8_ALTIVEC(d, s, dst) d = s
|
||||||
|
#define AVG_OP_U8_ALTIVEC(d, s, dst) d = vec_avg(dst, s)
|
||||||
|
|
||||||
|
#define OP_U8_ALTIVEC PUT_OP_U8_ALTIVEC
|
||||||
|
#define PREFIX_no_rnd_vc1_chroma_mc8_altivec put_no_rnd_vc1_chroma_mc8_altivec
|
||||||
|
#include "h264_template_altivec.c"
|
||||||
|
#undef OP_U8_ALTIVEC
|
||||||
|
#undef PREFIX_no_rnd_vc1_chroma_mc8_altivec
|
||||||
|
|
||||||
|
#define OP_U8_ALTIVEC AVG_OP_U8_ALTIVEC
|
||||||
|
#define PREFIX_no_rnd_vc1_chroma_mc8_altivec avg_no_rnd_vc1_chroma_mc8_altivec
|
||||||
|
#include "h264_template_altivec.c"
|
||||||
|
#undef OP_U8_ALTIVEC
|
||||||
|
#undef PREFIX_no_rnd_vc1_chroma_mc8_altivec
|
||||||
|
|
||||||
void ff_vc1dsp_init_altivec(VC1DSPContext* dsp)
|
void ff_vc1dsp_init_altivec(VC1DSPContext* dsp)
|
||||||
{
|
{
|
||||||
@@ -329,4 +344,6 @@ void ff_vc1dsp_init_altivec(VC1DSPContext* dsp)
|
|||||||
|
|
||||||
dsp->vc1_inv_trans_8x8 = vc1_inv_trans_8x8_altivec;
|
dsp->vc1_inv_trans_8x8 = vc1_inv_trans_8x8_altivec;
|
||||||
dsp->vc1_inv_trans_8x4 = vc1_inv_trans_8x4_altivec;
|
dsp->vc1_inv_trans_8x4 = vc1_inv_trans_8x4_altivec;
|
||||||
|
dsp->put_no_rnd_vc1_chroma_pixels_tab[0] = put_no_rnd_vc1_chroma_mc8_altivec;
|
||||||
|
dsp->avg_no_rnd_vc1_chroma_pixels_tab[0] = avg_no_rnd_vc1_chroma_mc8_altivec;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user