From ff9d57e7dfc8c171bea3fb9129aa87fa28d89f18 Mon Sep 17 00:00:00 2001 From: Diego Biurrun Date: Fri, 16 Aug 2013 00:29:23 +0200 Subject: [PATCH] h264_cabac: Mark functions calling decode_cabac_residual_internal as noinline This ensures that decode_cabac_residual_internal actually does get inlined, which it otherwise does not, even though it is marked as always_inline. --- libavcodec/h264_cabac.c | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/libavcodec/h264_cabac.c b/libavcodec/h264_cabac.c index 79b715ffdd..43ddf7d56e 100644 --- a/libavcodec/h264_cabac.c +++ b/libavcodec/h264_cabac.c @@ -27,6 +27,7 @@ #define CABAC(h) 1 +#include "libavutil/attributes.h" #include "config.h" #include "cabac.h" #include "cabac_functions.h" @@ -1740,26 +1741,30 @@ decode_cabac_residual_internal(H264Context *h, int16_t *block, } -static void decode_cabac_residual_dc_internal(H264Context *h, int16_t *block, - int cat, int n, - const uint8_t *scantable, - int max_coeff) +static av_noinline void decode_cabac_residual_dc_internal(H264Context *h, + int16_t *block, + int cat, int n, + const uint8_t *scantable, + int max_coeff) { decode_cabac_residual_internal(h, block, cat, n, scantable, NULL, max_coeff, 1, 0); } -static void decode_cabac_residual_dc_internal_422(H264Context *h, int16_t *block, - int cat, int n, const uint8_t *scantable, - int max_coeff) +static av_noinline void decode_cabac_residual_dc_internal_422(H264Context *h, + int16_t *block, + int cat, int n, + const uint8_t *scantable, + int max_coeff) { decode_cabac_residual_internal(h, block, cat, n, scantable, NULL, max_coeff, 1, 1); } -static void decode_cabac_residual_nondc_internal(H264Context *h, int16_t *block, - int cat, int n, - const uint8_t *scantable, - const uint32_t *qmul, - int max_coeff) +static av_noinline void decode_cabac_residual_nondc_internal(H264Context *h, + int16_t *block, + int cat, int n, + const uint8_t *scantable, + const uint32_t *qmul, + int max_coeff) { decode_cabac_residual_internal(h, block, cat, n, scantable, qmul, max_coeff, 0, 0); }