@ -29,7 +29,15 @@ av_cold void ff_h264chroma_init_mips(H264ChromaContext *c, int bit_depth)
int cpu_flags = av_get_cpu_flags ( ) ;
int cpu_flags = av_get_cpu_flags ( ) ;
int high_bit_depth = bit_depth > 8 ;
int high_bit_depth = bit_depth > 8 ;
/* MMI apears to be faster than MSA here */
if ( have_mmi ( cpu_flags ) ) {
if ( ! high_bit_depth ) {
c - > put_h264_chroma_pixels_tab [ 0 ] = ff_put_h264_chroma_mc8_mmi ;
c - > avg_h264_chroma_pixels_tab [ 0 ] = ff_avg_h264_chroma_mc8_mmi ;
c - > put_h264_chroma_pixels_tab [ 1 ] = ff_put_h264_chroma_mc4_mmi ;
c - > avg_h264_chroma_pixels_tab [ 1 ] = ff_avg_h264_chroma_mc4_mmi ;
}
}
if ( have_msa ( cpu_flags ) ) {
if ( have_msa ( cpu_flags ) ) {
if ( ! high_bit_depth ) {
if ( ! high_bit_depth ) {
c - > put_h264_chroma_pixels_tab [ 0 ] = ff_put_h264_chroma_mc8_msa ;
c - > put_h264_chroma_pixels_tab [ 0 ] = ff_put_h264_chroma_mc8_msa ;
@ -41,13 +49,4 @@ av_cold void ff_h264chroma_init_mips(H264ChromaContext *c, int bit_depth)
c - > avg_h264_chroma_pixels_tab [ 2 ] = ff_avg_h264_chroma_mc2_msa ;
c - > avg_h264_chroma_pixels_tab [ 2 ] = ff_avg_h264_chroma_mc2_msa ;
}
}
}
}
if ( have_mmi ( cpu_flags ) ) {
if ( ! high_bit_depth ) {
c - > put_h264_chroma_pixels_tab [ 0 ] = ff_put_h264_chroma_mc8_mmi ;
c - > avg_h264_chroma_pixels_tab [ 0 ] = ff_avg_h264_chroma_mc8_mmi ;
c - > put_h264_chroma_pixels_tab [ 1 ] = ff_put_h264_chroma_mc4_mmi ;
c - > avg_h264_chroma_pixels_tab [ 1 ] = ff_avg_h264_chroma_mc4_mmi ;
}
}
}
}