# HG changeset patch # User michael # Date 1264678655 0 # Node ID 74f672a1f763b00036fc128b8b9c41e1c4b7d02e # Parent 6d74270c4f6f0c4b9f6a8a2c635d79866640b148 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. diff -r 6d74270c4f6f -r 74f672a1f763 h264_loopfilter.c --- a/h264_loopfilter.c Thu Jan 28 11:18:06 2010 +0000 +++ b/h264_loopfilter.c Thu Jan 28 11:37:35 2010 +0000 @@ -99,7 +99,7 @@ {-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 @@ 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 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_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];