[FFmpeg-cvslog] avcodec/mips: disable assembly not supported for Loongson-3

ZhouXiaoyong git at videolan.org
Sat Apr 25 13:40:58 CEST 2015


ffmpeg | branch: master | ZhouXiaoyong <zhouxiaoyong at loongson.cn> | Wed Apr 15 20:18:15 2015 +0800| [6c5ef7f65732e87866218b601eba6bd28acb5cb5] | committer: Michael Niedermayer

avcodec/mips: disable assembly not supported for Loongson-3

Signed-off-by: Michael Niedermayer <michaelni at gmx.at>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=6c5ef7f65732e87866218b601eba6bd28acb5cb5
---

 libavcodec/mips/aacsbr_mips.h             |    4 ++--
 libavcodec/mips/iirfilter_mips.c          |    4 ++++
 libavcodec/mips/mpegaudiodsp_mips_float.c |    6 ++++++
 libavcodec/mips/sbrdsp_mips.c             |    4 ++++
 4 files changed, 16 insertions(+), 2 deletions(-)

diff --git a/libavcodec/mips/aacsbr_mips.h b/libavcodec/mips/aacsbr_mips.h
index da8389f..e525197 100644
--- a/libavcodec/mips/aacsbr_mips.h
+++ b/libavcodec/mips/aacsbr_mips.h
@@ -149,7 +149,7 @@ static void sbr_qmf_analysis_mips(AVFloatDSPContext *fdsp, FFTContext *mdct,
     }
 }
 
-#if HAVE_MIPSFPU
+#if (HAVE_MIPSFPU && !HAVE_LOONGSON3)
 static void sbr_qmf_synthesis_mips(FFTContext *mdct,
                               SBRDSPContext *sbrdsp, AVFloatDSPContext *fdsp,
                               float *out, float X[2][38][64],
@@ -488,7 +488,7 @@ static void sbr_qmf_synthesis_mips(FFTContext *mdct,
 #define sbr_qmf_analysis sbr_qmf_analysis_mips
 #define sbr_qmf_synthesis sbr_qmf_synthesis_mips
 
-#endif /* HAVE_MIPSFPU */
+#endif /* (HAVE_MIPSFPU && !HAVE_LOONGSON3) */
 #endif /* HAVE_INLINE_ASM */
 
 #endif /* AVCODEC_MIPS_AACSBR_FLOAT_H */
diff --git a/libavcodec/mips/iirfilter_mips.c b/libavcodec/mips/iirfilter_mips.c
index a5646cd..5a145cf 100644
--- a/libavcodec/mips/iirfilter_mips.c
+++ b/libavcodec/mips/iirfilter_mips.c
@@ -55,6 +55,7 @@
 #include "libavcodec/iirfilter.h"
 
 #if HAVE_INLINE_ASM
+#if !HAVE_LOONGSON3
 typedef struct FFIIRFilterCoeffs {
     int   order;
     float gain;
@@ -195,10 +196,13 @@ static void ff_iir_filter_flt_mips(const struct FFIIRFilterCoeffs *c,
         }
     }
 }
+#endif /* !HAVE_LOONGSON3 */
 #endif /* HAVE_INLINE_ASM */
 
 void ff_iir_filter_init_mips(FFIIRFilterContext *f) {
 #if HAVE_INLINE_ASM
+#if !HAVE_LOONGSON3
     f->filter_flt = ff_iir_filter_flt_mips;
+#endif /* !HAVE_LOONGSON3 */
 #endif /* HAVE_INLINE_ASM */
 }
diff --git a/libavcodec/mips/mpegaudiodsp_mips_float.c b/libavcodec/mips/mpegaudiodsp_mips_float.c
index bd36894..beebace 100644
--- a/libavcodec/mips/mpegaudiodsp_mips_float.c
+++ b/libavcodec/mips/mpegaudiodsp_mips_float.c
@@ -278,6 +278,7 @@ static void ff_mpadsp_apply_window_mips_float(float *synth_buf, float *window,
     );
 }
 
+#if !HAVE_LOONGSON3
 static void ff_dct32_mips_float(float *out, const float *tab)
 {
     float val0 , val1 , val2 , val3 , val4 , val5 , val6 , val7,
@@ -786,6 +787,7 @@ static void ff_dct32_mips_float(float *out, const float *tab)
     out[15] = val30 + val17;
     out[31] = val31;
 }
+#endif /* !HAVE_LOONGSON3 */
 
 static void imdct36_mips_float(float *out, float *buf, float *in, float *win)
 {
@@ -1224,6 +1226,7 @@ static void imdct36_mips_float(float *out, float *buf, float *in, float *win)
     );
 }
 
+#if !HAVE_LOONGSON3
 static void ff_imdct36_blocks_mips_float(float *out, float *buf, float *in,
                                int count, int switch_point, int block_type)
 {
@@ -1242,10 +1245,13 @@ static void ff_imdct36_blocks_mips_float(float *out, float *buf, float *in,
         out++;
     }
 }
+#endif /* !HAVE_LOONGSON3 */
 
 void ff_mpadsp_init_mipsfpu(MPADSPContext *s)
 {
     s->apply_window_float   = ff_mpadsp_apply_window_mips_float;
+#if !HAVE_LOONGSON3
     s->imdct36_blocks_float = ff_imdct36_blocks_mips_float;
     s->dct32_float          = ff_dct32_mips_float;
+#endif /* !HAVE_LOONGSON3 */
 }
diff --git a/libavcodec/mips/sbrdsp_mips.c b/libavcodec/mips/sbrdsp_mips.c
index c203095..63361e4 100644
--- a/libavcodec/mips/sbrdsp_mips.c
+++ b/libavcodec/mips/sbrdsp_mips.c
@@ -438,6 +438,7 @@ static void sbr_qmf_deint_bfly_mips(float *v, const float *src0, const float *sr
     }
 }
 
+#if !HAVE_LOONGSON3
 static void sbr_autocorrelate_mips(const float x[40][2], float phi[3][2][2])
 {
     int i;
@@ -606,6 +607,7 @@ static void sbr_autocorrelate_mips(const float x[40][2], float phi[3][2][2])
         : "memory"
     );
 }
+#endif /* !HAVE_LOONGSON3 */
 
 static void sbr_hf_gen_mips(float (*X_high)[2], const float (*X_low)[2],
                          const float alpha0[2], const float alpha1[2],
@@ -894,7 +896,9 @@ void ff_sbrdsp_init_mips(SBRDSPContext *s)
     s->sum64x5 = sbr_sum64x5_mips;
     s->sum_square = sbr_sum_square_mips;
     s->qmf_deint_bfly = sbr_qmf_deint_bfly_mips;
+#if !HAVE_LOONGSON3
     s->autocorrelate = sbr_autocorrelate_mips;
+#endif /* !HAVE_LOONGSON3 */
     s->hf_gen = sbr_hf_gen_mips;
     s->hf_g_filt = sbr_hf_g_filt_mips;
 



More information about the ffmpeg-cvslog mailing list