You've already forked FFmpeg
mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-08-15 14:13:16 +02:00
h264.c: constify all uses of H264Context in slice and lower-level functions
All the variables modified by this code are either per-MB arrays or have been moved to the per-slice context
This commit is contained in:
@@ -78,11 +78,11 @@ static void h264_er_decode_mb(void *opaque, int ref, int mv_dir, int mv_type,
|
|||||||
ff_h264_hl_decode_mb(h, &h->slice_ctx[0]);
|
ff_h264_hl_decode_mb(h, &h->slice_ctx[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ff_h264_draw_horiz_band(H264Context *h, H264SliceContext *sl,
|
void ff_h264_draw_horiz_band(const H264Context *h, H264SliceContext *sl,
|
||||||
int y, int height)
|
int y, int height)
|
||||||
{
|
{
|
||||||
AVCodecContext *avctx = h->avctx;
|
AVCodecContext *avctx = h->avctx;
|
||||||
AVFrame *cur = &h->cur_pic.f;
|
const AVFrame *cur = &h->cur_pic.f;
|
||||||
AVFrame *last = sl->ref_list[0][0].f.data[0] ? &sl->ref_list[0][0].f : NULL;
|
AVFrame *last = sl->ref_list[0][0].f.data[0] ? &sl->ref_list[0][0].f : NULL;
|
||||||
const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(avctx->pix_fmt);
|
const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(avctx->pix_fmt);
|
||||||
int vshift = desc->log2_chroma_h;
|
int vshift = desc->log2_chroma_h;
|
||||||
@@ -98,7 +98,7 @@ void ff_h264_draw_horiz_band(H264Context *h, H264SliceContext *sl,
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
if (avctx->draw_horiz_band) {
|
if (avctx->draw_horiz_band) {
|
||||||
AVFrame *src;
|
const AVFrame *src;
|
||||||
int offset[AV_NUM_DATA_POINTERS];
|
int offset[AV_NUM_DATA_POINTERS];
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
@@ -127,7 +127,7 @@ void ff_h264_draw_horiz_band(H264Context *h, H264SliceContext *sl,
|
|||||||
* Check if the top & left blocks are available if needed and
|
* Check if the top & left blocks are available if needed and
|
||||||
* change the dc mode so it only uses the available blocks.
|
* change the dc mode so it only uses the available blocks.
|
||||||
*/
|
*/
|
||||||
int ff_h264_check_intra4x4_pred_mode(H264Context *h, H264SliceContext *sl)
|
int ff_h264_check_intra4x4_pred_mode(const H264Context *h, H264SliceContext *sl)
|
||||||
{
|
{
|
||||||
static const int8_t top[12] = {
|
static const int8_t top[12] = {
|
||||||
-1, 0, LEFT_DC_PRED, -1, -1, -1, -1, -1, 0
|
-1, 0, LEFT_DC_PRED, -1, -1, -1, -1, -1, 0
|
||||||
@@ -174,7 +174,7 @@ int ff_h264_check_intra4x4_pred_mode(H264Context *h, H264SliceContext *sl)
|
|||||||
* Check if the top & left blocks are available if needed and
|
* Check if the top & left blocks are available if needed and
|
||||||
* change the dc mode so it only uses the available blocks.
|
* change the dc mode so it only uses the available blocks.
|
||||||
*/
|
*/
|
||||||
int ff_h264_check_intra_pred_mode(H264Context *h, H264SliceContext *sl,
|
int ff_h264_check_intra_pred_mode(const H264Context *h, H264SliceContext *sl,
|
||||||
int mode, int is_chroma)
|
int mode, int is_chroma)
|
||||||
{
|
{
|
||||||
static const int8_t top[4] = { LEFT_DC_PRED8x8, 1, -1, -1 };
|
static const int8_t top[4] = { LEFT_DC_PRED8x8, 1, -1, -1 };
|
||||||
|
@@ -796,13 +796,13 @@ int ff_generate_sliding_window_mmcos(H264Context *h, int first_slice);
|
|||||||
* Check if the top & left blocks are available if needed & change the
|
* Check if the top & left blocks are available if needed & change the
|
||||||
* dc mode so it only uses the available blocks.
|
* dc mode so it only uses the available blocks.
|
||||||
*/
|
*/
|
||||||
int ff_h264_check_intra4x4_pred_mode(H264Context *h, H264SliceContext *sl);
|
int ff_h264_check_intra4x4_pred_mode(const H264Context *h, H264SliceContext *sl);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Check if the top & left blocks are available if needed & change the
|
* Check if the top & left blocks are available if needed & change the
|
||||||
* dc mode so it only uses the available blocks.
|
* dc mode so it only uses the available blocks.
|
||||||
*/
|
*/
|
||||||
int ff_h264_check_intra_pred_mode(H264Context *h, H264SliceContext *sl,
|
int ff_h264_check_intra_pred_mode(const H264Context *h, H264SliceContext *sl,
|
||||||
int mode, int is_chroma);
|
int mode, int is_chroma);
|
||||||
|
|
||||||
void ff_h264_hl_decode_mb(const H264Context *h, H264SliceContext *sl);
|
void ff_h264_hl_decode_mb(const H264Context *h, H264SliceContext *sl);
|
||||||
@@ -1059,7 +1059,7 @@ void ff_h264_unref_picture(H264Context *h, H264Picture *pic);
|
|||||||
int ff_h264_context_init(H264Context *h);
|
int ff_h264_context_init(H264Context *h);
|
||||||
int ff_h264_set_parameter_from_sps(H264Context *h);
|
int ff_h264_set_parameter_from_sps(H264Context *h);
|
||||||
|
|
||||||
void ff_h264_draw_horiz_band(H264Context *h, H264SliceContext *sl, int y, int height);
|
void ff_h264_draw_horiz_band(const H264Context *h, H264SliceContext *sl, int y, int height);
|
||||||
int ff_init_poc(H264Context *h, int pic_field_poc[2], int *pic_poc);
|
int ff_init_poc(H264Context *h, int pic_field_poc[2], int *pic_poc);
|
||||||
int ff_pred_weight_table(H264Context *h, H264SliceContext *sl);
|
int ff_pred_weight_table(H264Context *h, H264SliceContext *sl);
|
||||||
int ff_set_ref_count(H264Context *h, H264SliceContext *sl);
|
int ff_set_ref_count(H264Context *h, H264SliceContext *sl);
|
||||||
|
Reference in New Issue
Block a user