mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2026-06-19 19:03:00 +02:00
H.264: av_always_inline some more functions
These weren't getting inlined all the time in all gcc versions.
This commit is contained in:
+2
-2
@@ -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
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
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,
|
||||||
|
|||||||
+2
-2
@@ -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 @@
|
|||||||
//#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
|
|||||||
* @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
|
|||||||
* @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
|
|||||||
* @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 ];
|
||||||
|
|||||||
Reference in New Issue
Block a user