[FFmpeg-cvslog] r21507 - trunk/libavcodec/h264_loopfilter.c

michael subversion
Thu Jan 28 12:37:35 CET 2010


Author: michael
Date: Thu Jan 28 12:37:35 2010
New Revision: 21507

Log:
Change wraper functions to always inline, they are faster now that way.
1% faster MBAFF decoding overall, maybe ~0.1% faster for the cathedral sample.

Modified:
   trunk/libavcodec/h264_loopfilter.c

Modified: trunk/libavcodec/h264_loopfilter.c
==============================================================================
--- trunk/libavcodec/h264_loopfilter.c	Thu Jan 28 12:18:06 2010	(r21506)
+++ trunk/libavcodec/h264_loopfilter.c	Thu Jan 28 12:37:35 2010	(r21507)
@@ -99,7 +99,7 @@ static const uint8_t tc0_table[52*3][4] 
     {-1,13,17,25 }, {-1,13,17,25 }, {-1,13,17,25 }, {-1,13,17,25 },
 };
 
-static void av_noinline filter_mb_edgev( uint8_t *pix, int stride, int16_t bS[4], unsigned int qp, H264Context *h) {
+static void av_always_inline filter_mb_edgev( uint8_t *pix, int stride, int16_t bS[4], unsigned int qp, H264Context *h) {
     const unsigned int index_a = qp + h->slice_alpha_c0_offset;
     const int alpha = alpha_table[index_a];
     const int beta  = beta_table[qp + h->slice_beta_offset];
@@ -116,7 +116,7 @@ static void av_noinline filter_mb_edgev(
         h->s.dsp.h264_h_loop_filter_luma_intra(pix, stride, alpha, beta);
     }
 }
-static void av_noinline filter_mb_edgecv( uint8_t *pix, int stride, int16_t bS[4], unsigned int qp, H264Context *h ) {
+static void av_always_inline filter_mb_edgecv( uint8_t *pix, int stride, int16_t bS[4], unsigned int qp, H264Context *h ) {
     const unsigned int index_a = qp + h->slice_alpha_c0_offset;
     const int alpha = alpha_table[index_a];
     const int beta  = beta_table[qp + h->slice_beta_offset];
@@ -269,7 +269,7 @@ static void filter_mb_mbaff_edgecv( H264
     }
 }
 
-static void av_noinline filter_mb_edgeh( uint8_t *pix, int stride, int16_t bS[4], unsigned int qp, H264Context *h ) {
+static void av_always_inline filter_mb_edgeh( uint8_t *pix, int stride, int16_t bS[4], unsigned int qp, H264Context *h ) {
     const unsigned int index_a = qp + h->slice_alpha_c0_offset;
     const int alpha = alpha_table[index_a];
     const int beta  = beta_table[qp + h->slice_beta_offset];
@@ -287,7 +287,7 @@ static void av_noinline filter_mb_edgeh(
     }
 }
 
-static void av_noinline filter_mb_edgech( uint8_t *pix, int stride, int16_t bS[4], unsigned int qp, H264Context *h ) {
+static void av_always_inline filter_mb_edgech( uint8_t *pix, int stride, int16_t bS[4], unsigned int qp, H264Context *h ) {
     const unsigned int index_a = qp + h->slice_alpha_c0_offset;
     const int alpha = alpha_table[index_a];
     const int beta  = beta_table[qp + h->slice_beta_offset];



More information about the ffmpeg-cvslog mailing list