Commit 34d4c605 authored by Anton Khirnov's avatar Anton Khirnov

h264_loopfilter: constify all uses of H264Context

All the variables modified by this code are either per-MB arrays or have
been moved to the per-slice context
parent 7505c8df
...@@ -831,10 +831,10 @@ void ff_h264_direct_ref_list_init(const H264Context *const h, H264SliceContext * ...@@ -831,10 +831,10 @@ void ff_h264_direct_ref_list_init(const H264Context *const h, H264SliceContext *
void ff_h264_pred_direct_motion(const H264Context *const h, H264SliceContext *sl, void ff_h264_pred_direct_motion(const H264Context *const h, H264SliceContext *sl,
int *mb_type); int *mb_type);
void ff_h264_filter_mb_fast(H264Context *h, H264SliceContext *sl, int mb_x, int mb_y, void ff_h264_filter_mb_fast(const H264Context *h, H264SliceContext *sl, int mb_x, int mb_y,
uint8_t *img_y, uint8_t *img_cb, uint8_t *img_cr, uint8_t *img_y, uint8_t *img_cb, uint8_t *img_cr,
unsigned int linesize, unsigned int uvlinesize); unsigned int linesize, unsigned int uvlinesize);
void ff_h264_filter_mb(H264Context *h, H264SliceContext *sl, int mb_x, int mb_y, void ff_h264_filter_mb(const H264Context *h, H264SliceContext *sl, int mb_x, int mb_y,
uint8_t *img_y, uint8_t *img_cb, uint8_t *img_cr, uint8_t *img_y, uint8_t *img_cb, uint8_t *img_cr,
unsigned int linesize, unsigned int uvlinesize); unsigned int linesize, unsigned int uvlinesize);
......
...@@ -103,7 +103,7 @@ static const uint8_t tc0_table[52*3][4] = { ...@@ -103,7 +103,7 @@ static const uint8_t tc0_table[52*3][4] = {
static av_always_inline void filter_mb_edgev(uint8_t *pix, int stride, static av_always_inline void filter_mb_edgev(uint8_t *pix, int stride,
const int16_t bS[4], const int16_t bS[4],
unsigned int qp, int a, int b, unsigned int qp, int a, int b,
H264Context *h, int intra) const H264Context *h, int intra)
{ {
const unsigned int index_a = qp + a; const unsigned int index_a = qp + a;
const int alpha = alpha_table[index_a]; const int alpha = alpha_table[index_a];
...@@ -125,7 +125,7 @@ static av_always_inline void filter_mb_edgev(uint8_t *pix, int stride, ...@@ -125,7 +125,7 @@ static av_always_inline void filter_mb_edgev(uint8_t *pix, int stride,
static av_always_inline void filter_mb_edgecv(uint8_t *pix, int stride, static av_always_inline void filter_mb_edgecv(uint8_t *pix, int stride,
const int16_t bS[4], const int16_t bS[4],
unsigned int qp, int a, int b, unsigned int qp, int a, int b,
H264Context *h, int intra) const H264Context *h, int intra)
{ {
const unsigned int index_a = qp + a; const unsigned int index_a = qp + a;
const int alpha = alpha_table[index_a]; const int alpha = alpha_table[index_a];
...@@ -144,7 +144,7 @@ static av_always_inline void filter_mb_edgecv(uint8_t *pix, int stride, ...@@ -144,7 +144,7 @@ static av_always_inline void filter_mb_edgecv(uint8_t *pix, int stride,
} }
} }
static av_always_inline void filter_mb_mbaff_edgev(H264Context *h, uint8_t *pix, static av_always_inline void filter_mb_mbaff_edgev(const H264Context *h, uint8_t *pix,
int stride, int stride,
const int16_t bS[7], int bsi, const int16_t bS[7], int bsi,
int qp, int a, int b, int qp, int a, int b,
...@@ -167,7 +167,7 @@ static av_always_inline void filter_mb_mbaff_edgev(H264Context *h, uint8_t *pix, ...@@ -167,7 +167,7 @@ static av_always_inline void filter_mb_mbaff_edgev(H264Context *h, uint8_t *pix,
} }
} }
static av_always_inline void filter_mb_mbaff_edgecv(H264Context *h, static av_always_inline void filter_mb_mbaff_edgecv(const H264Context *h,
uint8_t *pix, int stride, uint8_t *pix, int stride,
const int16_t bS[7], const int16_t bS[7],
int bsi, int qp, int a, int bsi, int qp, int a,
...@@ -193,7 +193,7 @@ static av_always_inline void filter_mb_mbaff_edgecv(H264Context *h, ...@@ -193,7 +193,7 @@ static av_always_inline void filter_mb_mbaff_edgecv(H264Context *h,
static av_always_inline void filter_mb_edgeh(uint8_t *pix, int stride, static av_always_inline void filter_mb_edgeh(uint8_t *pix, int stride,
const int16_t bS[4], const int16_t bS[4],
unsigned int qp, int a, int b, unsigned int qp, int a, int b,
H264Context *h, int intra) const H264Context *h, int intra)
{ {
const unsigned int index_a = qp + a; const unsigned int index_a = qp + a;
const int alpha = alpha_table[index_a]; const int alpha = alpha_table[index_a];
...@@ -215,7 +215,7 @@ static av_always_inline void filter_mb_edgeh(uint8_t *pix, int stride, ...@@ -215,7 +215,7 @@ static av_always_inline void filter_mb_edgeh(uint8_t *pix, int stride,
static av_always_inline void filter_mb_edgech(uint8_t *pix, int stride, static av_always_inline void filter_mb_edgech(uint8_t *pix, int stride,
const int16_t bS[4], const int16_t bS[4],
unsigned int qp, int a, int b, unsigned int qp, int a, int b,
H264Context *h, int intra) const H264Context *h, int intra)
{ {
const unsigned int index_a = qp + a; const unsigned int index_a = qp + a;
const int alpha = alpha_table[index_a]; const int alpha = alpha_table[index_a];
...@@ -234,7 +234,7 @@ static av_always_inline void filter_mb_edgech(uint8_t *pix, int stride, ...@@ -234,7 +234,7 @@ static av_always_inline void filter_mb_edgech(uint8_t *pix, int stride,
} }
} }
static av_always_inline void h264_filter_mb_fast_internal(H264Context *h, static av_always_inline void h264_filter_mb_fast_internal(const H264Context *h,
H264SliceContext *sl, H264SliceContext *sl,
int mb_x, int mb_y, int mb_x, int mb_y,
uint8_t *img_y, uint8_t *img_y,
...@@ -416,7 +416,7 @@ static av_always_inline void h264_filter_mb_fast_internal(H264Context *h, ...@@ -416,7 +416,7 @@ static av_always_inline void h264_filter_mb_fast_internal(H264Context *h,
} }
} }
void ff_h264_filter_mb_fast(H264Context *h, H264SliceContext *sl, void ff_h264_filter_mb_fast(const H264Context *h, H264SliceContext *sl,
int mb_x, int mb_y, uint8_t *img_y, int mb_x, int mb_y, uint8_t *img_y,
uint8_t *img_cb, uint8_t *img_cr, uint8_t *img_cb, uint8_t *img_cr,
unsigned int linesize, unsigned int uvlinesize) unsigned int linesize, unsigned int uvlinesize)
...@@ -438,7 +438,7 @@ void ff_h264_filter_mb_fast(H264Context *h, H264SliceContext *sl, ...@@ -438,7 +438,7 @@ void ff_h264_filter_mb_fast(H264Context *h, H264SliceContext *sl,
#endif #endif
} }
static int check_mv(H264Context *h, H264SliceContext *sl, long b_idx, long bn_idx, int mvy_limit) static int check_mv(H264SliceContext *sl, long b_idx, long bn_idx, int mvy_limit)
{ {
int v; int v;
...@@ -468,7 +468,7 @@ static int check_mv(H264Context *h, H264SliceContext *sl, long b_idx, long bn_id ...@@ -468,7 +468,7 @@ static int check_mv(H264Context *h, H264SliceContext *sl, long b_idx, long bn_id
return v; return v;
} }
static av_always_inline void filter_mb_dir(H264Context *h, H264SliceContext *sl, static av_always_inline void filter_mb_dir(const H264Context *h, H264SliceContext *sl,
int mb_x, int mb_y, int mb_x, int mb_y,
uint8_t *img_y, uint8_t *img_cb, uint8_t *img_cr, uint8_t *img_y, uint8_t *img_cb, uint8_t *img_cr,
unsigned int linesize, unsigned int uvlinesize, unsigned int linesize, unsigned int uvlinesize,
...@@ -565,7 +565,7 @@ static av_always_inline void filter_mb_dir(H264Context *h, H264SliceContext *sl, ...@@ -565,7 +565,7 @@ static av_always_inline void filter_mb_dir(H264Context *h, H264SliceContext *sl,
int b_idx= 8 + 4; int b_idx= 8 + 4;
int bn_idx= b_idx - (dir ? 8:1); int bn_idx= b_idx - (dir ? 8:1);
bS[0] = bS[1] = bS[2] = bS[3] = check_mv(h, sl, 8 + 4, bn_idx, mvy_limit); bS[0] = bS[1] = bS[2] = bS[3] = check_mv(sl, 8 + 4, bn_idx, mvy_limit);
mv_done = 1; mv_done = 1;
} }
else else
...@@ -583,7 +583,7 @@ static av_always_inline void filter_mb_dir(H264Context *h, H264SliceContext *sl, ...@@ -583,7 +583,7 @@ static av_always_inline void filter_mb_dir(H264Context *h, H264SliceContext *sl,
} }
else if(!mv_done) else if(!mv_done)
{ {
bS[i] = check_mv(h, sl, b_idx, bn_idx, mvy_limit); bS[i] = check_mv(sl, b_idx, bn_idx, mvy_limit);
} }
} }
} }
...@@ -646,7 +646,7 @@ static av_always_inline void filter_mb_dir(H264Context *h, H264SliceContext *sl, ...@@ -646,7 +646,7 @@ static av_always_inline void filter_mb_dir(H264Context *h, H264SliceContext *sl,
int b_idx= 8 + 4 + edge * (dir ? 8:1); int b_idx= 8 + 4 + edge * (dir ? 8:1);
int bn_idx= b_idx - (dir ? 8:1); int bn_idx= b_idx - (dir ? 8:1);
bS[0] = bS[1] = bS[2] = bS[3] = check_mv(h, sl, b_idx, bn_idx, mvy_limit); bS[0] = bS[1] = bS[2] = bS[3] = check_mv(sl, b_idx, bn_idx, mvy_limit);
mv_done = 1; mv_done = 1;
} }
else else
...@@ -664,7 +664,7 @@ static av_always_inline void filter_mb_dir(H264Context *h, H264SliceContext *sl, ...@@ -664,7 +664,7 @@ static av_always_inline void filter_mb_dir(H264Context *h, H264SliceContext *sl,
} }
else if(!mv_done) else if(!mv_done)
{ {
bS[i] = check_mv(h, sl, b_idx, bn_idx, mvy_limit); bS[i] = check_mv(sl, b_idx, bn_idx, mvy_limit);
} }
} }
...@@ -712,7 +712,7 @@ static av_always_inline void filter_mb_dir(H264Context *h, H264SliceContext *sl, ...@@ -712,7 +712,7 @@ static av_always_inline void filter_mb_dir(H264Context *h, H264SliceContext *sl,
} }
} }
void ff_h264_filter_mb(H264Context *h, H264SliceContext *sl, void ff_h264_filter_mb(const H264Context *h, H264SliceContext *sl,
int mb_x, int mb_y, int mb_x, int mb_y,
uint8_t *img_y, uint8_t *img_cb, uint8_t *img_cr, uint8_t *img_y, uint8_t *img_cb, uint8_t *img_cr,
unsigned int linesize, unsigned int uvlinesize) unsigned int linesize, unsigned int uvlinesize)
......
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