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.
This commit is contained in:
Diego Biurrun 2013-08-16 00:29:23 +02:00
parent f407856968
commit ff9d57e7df
1 changed files with 17 additions and 12 deletions

View File

@ -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);
}