Mercurial > libavcodec.hg
comparison h264_loopfilter.c @ 10903:8c8321b94c35 libavcodec
Mark a few functions as noinline, this makes ff_h264_filter_mb() a bit smaller
and 5% faster.
ff_h264_filter_mb_fast() stay the same size as gcc decided not to inline these
functions there in the first place.
author | michael |
---|---|
date | Sat, 16 Jan 2010 17:27:17 +0000 |
parents | 1e41e6ab9a18 |
children | b30aef0c693f |
comparison
equal
deleted
inserted
replaced
10902:1e41e6ab9a18 | 10903:8c8321b94c35 |
---|---|
101 {-1,13,17,25 }, {-1,13,17,25 }, {-1,13,17,25 }, {-1,13,17,25 }, {-1,13,17,25 }, {-1,13,17,25 }, | 101 {-1,13,17,25 }, {-1,13,17,25 }, {-1,13,17,25 }, {-1,13,17,25 }, {-1,13,17,25 }, {-1,13,17,25 }, |
102 {-1,13,17,25 }, {-1,13,17,25 }, {-1,13,17,25 }, {-1,13,17,25 }, {-1,13,17,25 }, {-1,13,17,25 }, | 102 {-1,13,17,25 }, {-1,13,17,25 }, {-1,13,17,25 }, {-1,13,17,25 }, {-1,13,17,25 }, {-1,13,17,25 }, |
103 {-1,13,17,25 }, {-1,13,17,25 }, {-1,13,17,25 }, {-1,13,17,25 }, | 103 {-1,13,17,25 }, {-1,13,17,25 }, {-1,13,17,25 }, {-1,13,17,25 }, |
104 }; | 104 }; |
105 | 105 |
106 static void filter_mb_edgev( H264Context *h, uint8_t *pix, int stride, int16_t bS[4], int qp ) { | 106 static void av_noinline filter_mb_edgev( H264Context *h, uint8_t *pix, int stride, int16_t bS[4], int qp ) { |
107 const int index_a = qp + h->slice_alpha_c0_offset; | 107 const int index_a = qp + h->slice_alpha_c0_offset; |
108 const int alpha = (alpha_table+52)[index_a]; | 108 const int alpha = (alpha_table+52)[index_a]; |
109 const int beta = (beta_table+52)[qp + h->slice_beta_offset]; | 109 const int beta = (beta_table+52)[qp + h->slice_beta_offset]; |
110 if (alpha ==0 || beta == 0) return; | 110 if (alpha ==0 || beta == 0) return; |
111 | 111 |
118 h->s.dsp.h264_h_loop_filter_luma(pix, stride, alpha, beta, tc); | 118 h->s.dsp.h264_h_loop_filter_luma(pix, stride, alpha, beta, tc); |
119 } else { | 119 } else { |
120 h->s.dsp.h264_h_loop_filter_luma_intra(pix, stride, alpha, beta); | 120 h->s.dsp.h264_h_loop_filter_luma_intra(pix, stride, alpha, beta); |
121 } | 121 } |
122 } | 122 } |
123 static void filter_mb_edgecv( H264Context *h, uint8_t *pix, int stride, int16_t bS[4], int qp ) { | 123 static void av_noinline filter_mb_edgecv( H264Context *h, uint8_t *pix, int stride, int16_t bS[4], int qp ) { |
124 const int index_a = qp + h->slice_alpha_c0_offset; | 124 const int index_a = qp + h->slice_alpha_c0_offset; |
125 const int alpha = (alpha_table+52)[index_a]; | 125 const int alpha = (alpha_table+52)[index_a]; |
126 const int beta = (beta_table+52)[qp + h->slice_beta_offset]; | 126 const int beta = (beta_table+52)[qp + h->slice_beta_offset]; |
127 if (alpha ==0 || beta == 0) return; | 127 if (alpha ==0 || beta == 0) return; |
128 | 128 |
287 } | 287 } |
288 } | 288 } |
289 } | 289 } |
290 } | 290 } |
291 | 291 |
292 static void filter_mb_edgeh( H264Context *h, uint8_t *pix, int stride, int16_t bS[4], int qp ) { | 292 static void av_noinline filter_mb_edgeh( H264Context *h, uint8_t *pix, int stride, int16_t bS[4], int qp ) { |
293 const int index_a = qp + h->slice_alpha_c0_offset; | 293 const int index_a = qp + h->slice_alpha_c0_offset; |
294 const int alpha = (alpha_table+52)[index_a]; | 294 const int alpha = (alpha_table+52)[index_a]; |
295 const int beta = (beta_table+52)[qp + h->slice_beta_offset]; | 295 const int beta = (beta_table+52)[qp + h->slice_beta_offset]; |
296 if (alpha ==0 || beta == 0) return; | 296 if (alpha ==0 || beta == 0) return; |
297 | 297 |
305 } else { | 305 } else { |
306 h->s.dsp.h264_v_loop_filter_luma_intra(pix, stride, alpha, beta); | 306 h->s.dsp.h264_v_loop_filter_luma_intra(pix, stride, alpha, beta); |
307 } | 307 } |
308 } | 308 } |
309 | 309 |
310 static void filter_mb_edgech( H264Context *h, uint8_t *pix, int stride, int16_t bS[4], int qp ) { | 310 static void av_noinline filter_mb_edgech( H264Context *h, uint8_t *pix, int stride, int16_t bS[4], int qp ) { |
311 const int index_a = qp + h->slice_alpha_c0_offset; | 311 const int index_a = qp + h->slice_alpha_c0_offset; |
312 const int alpha = (alpha_table+52)[index_a]; | 312 const int alpha = (alpha_table+52)[index_a]; |
313 const int beta = (beta_table+52)[qp + h->slice_beta_offset]; | 313 const int beta = (beta_table+52)[qp + h->slice_beta_offset]; |
314 if (alpha ==0 || beta == 0) return; | 314 if (alpha ==0 || beta == 0) return; |
315 | 315 |