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