[FFmpeg-cvslog] r25074 - in trunk/libavcodec/ppc: check_altivec.c dsputil_altivec.h dsputil_ppc.c h264_altivec.c mpegvideo_altivec.c vp8dsp_altivec.c

stefano subversion
Wed Sep 8 12:02:40 CEST 2010


Author: stefano
Date: Wed Sep  8 12:02:40 2010
New Revision: 25074

Log:
Merge has_altivec() function into mm_support(), remove it and use
mm_support() instead.

Reduce complexity and simplify pending move to libavutil.

Modified:
   trunk/libavcodec/ppc/check_altivec.c
   trunk/libavcodec/ppc/dsputil_altivec.h
   trunk/libavcodec/ppc/dsputil_ppc.c
   trunk/libavcodec/ppc/h264_altivec.c
   trunk/libavcodec/ppc/mpegvideo_altivec.c
   trunk/libavcodec/ppc/vp8dsp_altivec.c

Modified: trunk/libavcodec/ppc/check_altivec.c
==============================================================================
--- trunk/libavcodec/ppc/check_altivec.c	Wed Sep  8 07:51:31 2010	(r25073)
+++ trunk/libavcodec/ppc/check_altivec.c	Wed Sep  8 12:02:40 2010	(r25074)
@@ -43,14 +43,16 @@
  * is present.
  */
 
-int has_altivec(void)
+int mm_support(void)
 {
+#if HAVE_ALTIVEC
 #ifdef __AMIGAOS4__
     ULONG result = 0;
     extern struct ExecIFace *IExec;
 
     IExec->GetCPUInfoTags(GCIT_VectorUnit, &result, TAG_DONE);
-    if (result == VECTORTYPE_ALTIVEC) return 1;
+    if (result == VECTORTYPE_ALTIVEC)
+        return AV_CPU_FLAG_ALTIVEC;
     return 0;
 #elif defined(__APPLE__) || defined(__OpenBSD__)
 #ifdef __OpenBSD__
@@ -64,7 +66,8 @@ int has_altivec(void)
 
     err = sysctl(sels, 2, &has_vu, &len, NULL, 0);
 
-    if (err == 0) return has_vu != 0;
+    if (err == 0)
+        return has_vu ? AV_CPU_FLAG_ALTIVEC : 0;
     return 0;
 #elif CONFIG_RUNTIME_CPUDETECT
     int proc_ver;
@@ -76,12 +79,14 @@ int has_altivec(void)
         proc_ver == 0x0039 || proc_ver == 0x003c ||
         proc_ver == 0x0044 || proc_ver == 0x0045 ||
         proc_ver == 0x0070)
-        return 1;
+        return AV_CPU_FLAG_ALTIVEC;
     return 0;
 #else
     // Since we were compiled for AltiVec, just assume we have it
     // until someone comes up with a proper way (not involving signal hacks).
-    return 1;
+    return AV_CPU_FLAG_ALTIVEC;
 #endif /* __AMIGAOS4__ */
+#endif /* HAVE_ALTIVEC */
+    return 0;
 }
 

Modified: trunk/libavcodec/ppc/dsputil_altivec.h
==============================================================================
--- trunk/libavcodec/ppc/dsputil_altivec.h	Wed Sep  8 07:51:31 2010	(r25073)
+++ trunk/libavcodec/ppc/dsputil_altivec.h	Wed Sep  8 12:02:40 2010	(r25074)
@@ -30,8 +30,6 @@ void put_pixels16_altivec(uint8_t *block
 
 void avg_pixels16_altivec(uint8_t *block, const uint8_t *pixels, int line_size, int h);
 
-int has_altivec(void);
-
 void fdct_altivec(int16_t *block);
 void gmc1_altivec(uint8_t *dst, uint8_t *src, int stride, int h,
                   int x16, int y16, int rounder);

Modified: trunk/libavcodec/ppc/dsputil_ppc.c
==============================================================================
--- trunk/libavcodec/ppc/dsputil_ppc.c	Wed Sep  8 07:51:31 2010	(r25073)
+++ trunk/libavcodec/ppc/dsputil_ppc.c	Wed Sep  8 12:02:40 2010	(r25074)
@@ -23,17 +23,6 @@
 #include "libavcodec/dsputil.h"
 #include "dsputil_altivec.h"
 
-int mm_support(void)
-{
-    int result = 0;
-#if HAVE_ALTIVEC
-    if (has_altivec()) {
-        result |= AV_CPU_FLAG_ALTIVEC;
-    }
-#endif /* result */
-    return result;
-}
-
 /* ***** WARNING ***** WARNING ***** WARNING ***** */
 /*
 clear_blocks_dcbz32_ppc will not work properly on PowerPC processors with a
@@ -179,7 +168,7 @@ void dsputil_init_ppc(DSPContext* c, AVC
 #if HAVE_ALTIVEC
     if(CONFIG_H264_DECODER) dsputil_h264_init_ppc(c, avctx);
 
-    if (has_altivec()) {
+    if (mm_support() & AV_CPU_FLAG_ALTIVEC) {
         dsputil_init_altivec(c, avctx);
         if(CONFIG_VC1_DECODER)
             vc1dsp_init_altivec(c, avctx);

Modified: trunk/libavcodec/ppc/h264_altivec.c
==============================================================================
--- trunk/libavcodec/ppc/h264_altivec.c	Wed Sep  8 07:51:31 2010	(r25073)
+++ trunk/libavcodec/ppc/h264_altivec.c	Wed Sep  8 12:02:40 2010	(r25074)
@@ -969,7 +969,7 @@ H264_WEIGHT( 8, 4)
 
 void dsputil_h264_init_ppc(DSPContext* c, AVCodecContext *avctx) {
 
-    if (has_altivec()) {
+    if (mm_support() & AV_CPU_FLAG_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->put_no_rnd_vc1_chroma_pixels_tab[0] = put_no_rnd_vc1_chroma_mc8_altivec;
@@ -1001,7 +1001,7 @@ void dsputil_h264_init_ppc(DSPContext* c
 
 void ff_h264dsp_init_ppc(H264DSPContext *c)
 {
-    if (has_altivec()) {
+    if (mm_support() & AV_CPU_FLAG_ALTIVEC) {
         c->h264_idct_add = ff_h264_idct_add_altivec;
         c->h264_idct_add8 = ff_h264_idct_add8_altivec;
         c->h264_idct_add16 = ff_h264_idct_add16_altivec;

Modified: trunk/libavcodec/ppc/mpegvideo_altivec.c
==============================================================================
--- trunk/libavcodec/ppc/mpegvideo_altivec.c	Wed Sep  8 07:51:31 2010	(r25073)
+++ trunk/libavcodec/ppc/mpegvideo_altivec.c	Wed Sep  8 12:02:40 2010	(r25074)
@@ -570,7 +570,7 @@ static void dct_unquantize_h263_altivec(
 
 void MPV_common_init_altivec(MpegEncContext *s)
 {
-    if (!has_altivec()) return;
+    if (!(mm_support() & AV_CPU_FLAG_ALTIVEC)) return;
 
     if (s->avctx->lowres==0) {
         if ((s->avctx->idct_algo == FF_IDCT_AUTO) ||

Modified: trunk/libavcodec/ppc/vp8dsp_altivec.c
==============================================================================
--- trunk/libavcodec/ppc/vp8dsp_altivec.c	Wed Sep  8 07:51:31 2010	(r25073)
+++ trunk/libavcodec/ppc/vp8dsp_altivec.c	Wed Sep  8 12:02:40 2010	(r25074)
@@ -265,7 +265,7 @@ static void put_vp8_pixels16_altivec(uin
 
 av_cold void ff_vp8dsp_init_altivec(VP8DSPContext *c)
 {
-    if (!has_altivec())
+    if (!(mm_support() & AV_CPU_FLAG_ALTIVEC))
         return;
 
     c->put_vp8_epel_pixels_tab[0][0][0] = put_vp8_pixels16_altivec;



More information about the ffmpeg-cvslog mailing list