Browse Source

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.
tags/n2.1
Diego Biurrun 12 years ago
parent
commit
ff9d57e7df
1 changed files with 17 additions and 12 deletions
  1. +17
    -12
      libavcodec/h264_cabac.c

+ 17
- 12
libavcodec/h264_cabac.c 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);
}


Loading…
Cancel
Save