Commit bbdd52ed authored by Jason Garrett-Glaser's avatar Jason Garrett-Glaser

H.264: av_always_inline some more functions

These weren't getting inlined all the time in all gcc versions.
parent c0483d0c
...@@ -1443,7 +1443,7 @@ static void decode_postinit(H264Context *h, int setup_finished){ ...@@ -1443,7 +1443,7 @@ static void decode_postinit(H264Context *h, int setup_finished){
ff_thread_finish_setup(s->avctx); ff_thread_finish_setup(s->avctx);
} }
static inline void backup_mb_border(H264Context *h, uint8_t *src_y, uint8_t *src_cb, uint8_t *src_cr, int linesize, int uvlinesize, int chroma444, int simple){ static av_always_inline void backup_mb_border(H264Context *h, uint8_t *src_y, uint8_t *src_cb, uint8_t *src_cr, int linesize, int uvlinesize, int chroma444, int simple){
MpegEncContext * const s = &h->s; MpegEncContext * const s = &h->s;
uint8_t *top_border; uint8_t *top_border;
int top_idx = 1; int top_idx = 1;
...@@ -1518,7 +1518,7 @@ static inline void backup_mb_border(H264Context *h, uint8_t *src_y, uint8_t *src ...@@ -1518,7 +1518,7 @@ static inline void backup_mb_border(H264Context *h, uint8_t *src_y, uint8_t *src
} }
} }
static inline void xchg_mb_border(H264Context *h, uint8_t *src_y, static av_always_inline void xchg_mb_border(H264Context *h, uint8_t *src_y,
uint8_t *src_cb, uint8_t *src_cr, uint8_t *src_cb, uint8_t *src_cr,
int linesize, int uvlinesize, int linesize, int uvlinesize,
int xchg, int chroma444, int xchg, int chroma444,
......
...@@ -766,11 +766,11 @@ static av_always_inline uint16_t pack8to16(int a, int b){ ...@@ -766,11 +766,11 @@ static av_always_inline uint16_t pack8to16(int a, int b){
/** /**
* gets the chroma qp. * gets the chroma qp.
*/ */
static inline int get_chroma_qp(H264Context *h, int t, int qscale){ static av_always_inline int get_chroma_qp(H264Context *h, int t, int qscale){
return h->pps.chroma_qp_table[t][qscale]; return h->pps.chroma_qp_table[t][qscale];
} }
static inline void pred_pskip_motion(H264Context * const h, int * const mx, int * const my); static av_always_inline void pred_pskip_motion(H264Context * const h, int * const mx, int * const my);
static void fill_decode_neighbors(H264Context *h, int mb_type){ static void fill_decode_neighbors(H264Context *h, int mb_type){
MpegEncContext * const s = &h->s; MpegEncContext * const s = &h->s;
......
...@@ -35,7 +35,7 @@ ...@@ -35,7 +35,7 @@
//#undef NDEBUG //#undef NDEBUG
#include <assert.h> #include <assert.h>
static inline int fetch_diagonal_mv(H264Context *h, const int16_t **C, int i, int list, int part_width){ static av_always_inline int fetch_diagonal_mv(H264Context *h, const int16_t **C, int i, int list, int part_width){
const int topright_ref= h->ref_cache[list][ i - 8 + part_width ]; const int topright_ref= h->ref_cache[list][ i - 8 + part_width ];
MpegEncContext *s = &h->s; MpegEncContext *s = &h->s;
...@@ -92,7 +92,7 @@ static inline int fetch_diagonal_mv(H264Context *h, const int16_t **C, int i, in ...@@ -92,7 +92,7 @@ static inline int fetch_diagonal_mv(H264Context *h, const int16_t **C, int i, in
* @param mx the x component of the predicted motion vector * @param mx the x component of the predicted motion vector
* @param my the y component of the predicted motion vector * @param my the y component of the predicted motion vector
*/ */
static inline void pred_motion(H264Context * const h, int n, int part_width, int list, int ref, int * const mx, int * const my){ static av_always_inline void pred_motion(H264Context * const h, int n, int part_width, int list, int ref, int * const mx, int * const my){
const int index8= scan8[n]; const int index8= scan8[n];
const int top_ref= h->ref_cache[list][ index8 - 8 ]; const int top_ref= h->ref_cache[list][ index8 - 8 ];
const int left_ref= h->ref_cache[list][ index8 - 1 ]; const int left_ref= h->ref_cache[list][ index8 - 1 ];
...@@ -147,7 +147,7 @@ static inline void pred_motion(H264Context * const h, int n, int part_width, int ...@@ -147,7 +147,7 @@ static inline void pred_motion(H264Context * const h, int n, int part_width, int
* @param mx the x component of the predicted motion vector * @param mx the x component of the predicted motion vector
* @param my the y component of the predicted motion vector * @param my the y component of the predicted motion vector
*/ */
static inline void pred_16x8_motion(H264Context * const h, int n, int list, int ref, int * const mx, int * const my){ static av_always_inline void pred_16x8_motion(H264Context * const h, int n, int list, int ref, int * const mx, int * const my){
if(n==0){ if(n==0){
const int top_ref= h->ref_cache[list][ scan8[0] - 8 ]; const int top_ref= h->ref_cache[list][ scan8[0] - 8 ];
const int16_t * const B= h->mv_cache[list][ scan8[0] - 8 ]; const int16_t * const B= h->mv_cache[list][ scan8[0] - 8 ];
...@@ -182,7 +182,7 @@ static inline void pred_16x8_motion(H264Context * const h, int n, int list, int ...@@ -182,7 +182,7 @@ static inline void pred_16x8_motion(H264Context * const h, int n, int list, int
* @param mx the x component of the predicted motion vector * @param mx the x component of the predicted motion vector
* @param my the y component of the predicted motion vector * @param my the y component of the predicted motion vector
*/ */
static inline void pred_8x16_motion(H264Context * const h, int n, int list, int ref, int * const mx, int * const my){ static av_always_inline void pred_8x16_motion(H264Context * const h, int n, int list, int ref, int * const mx, int * const my){
if(n==0){ if(n==0){
const int left_ref= h->ref_cache[list][ scan8[0] - 1 ]; const int left_ref= h->ref_cache[list][ scan8[0] - 1 ];
const int16_t * const A= h->mv_cache[list][ scan8[0] - 1 ]; const int16_t * const A= h->mv_cache[list][ scan8[0] - 1 ];
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment