aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec/h264.h
diff options
context:
space:
mode:
authorAnton Khirnov <anton@khirnov.net>2015-01-17 22:28:46 +0100
committerAnton Khirnov <anton@khirnov.net>2015-03-21 11:27:13 +0100
commit95eb35f30513e335990ad0d5dca6ddc318477291 (patch)
tree468c7a537fd11445da96dcaddac3736ab5ef28c9 /libavcodec/h264.h
parent7747726667c86877feed30c9e18460cb8e63f551 (diff)
downloadffmpeg-95eb35f30513e335990ad0d5dca6ddc318477291.tar.gz
h264: move the ref lists variables into the per-slice context
Diffstat (limited to 'libavcodec/h264.h')
-rw-r--r--libavcodec/h264.h26
1 files changed, 14 insertions, 12 deletions
diff --git a/libavcodec/h264.h b/libavcodec/h264.h
index 5221e2d64c..882aeb558f 100644
--- a/libavcodec/h264.h
+++ b/libavcodec/h264.h
@@ -365,6 +365,17 @@ typedef struct H264SliceContext {
int map_col_to_list0_field[2][2][16 + 32];
/**
+ * num_ref_idx_l0/1_active_minus1 + 1
+ */
+ unsigned int ref_count[2]; ///< counts frames or fields, depending on current mb mode
+ unsigned int list_count;
+ H264Picture ref_list[2][48]; /**< 0..15: frame refs, 16..47: mbaff field refs.
+ * Reordered version of default_ref_list
+ * according to picture reordering in slice header */
+ int ref2frm[MAX_SLICES][2][64]; ///< reference to frame number lists, used in the loop filter, the first 2 are for -2,-1
+
+
+ /**
* non zero coeff count cache.
* is 64 if not available.
*/
@@ -449,16 +460,7 @@ typedef struct H264Context {
int picture_structure;
int first_field;
- /**
- * num_ref_idx_l0/1_active_minus1 + 1
- */
- unsigned int ref_count[2]; ///< counts frames or fields, depending on current mb mode
- unsigned int list_count;
uint8_t *list_counts; ///< Array of list_count per MB specifying the slice type
- H264Picture ref_list[2][48]; /**< 0..15: frame refs, 16..47: mbaff field refs.
- * Reordered version of default_ref_list
- * according to picture reordering in slice header */
- int ref2frm[MAX_SLICES][2][64]; ///< reference to frame number lists, used in the loop filter, the first 2 are for -2,-1
// data partitioning
GetBitContext intra_gb;
@@ -773,7 +775,7 @@ int ff_h264_alloc_tables(H264Context *h);
*/
int ff_h264_fill_default_ref_list(H264Context *h, H264SliceContext *sl);
-int ff_h264_decode_ref_pic_list_reordering(H264Context *h);
+int ff_h264_decode_ref_pic_list_reordering(H264Context *h, H264SliceContext *sl);
void ff_h264_fill_mbaff_ref_list(H264Context *h, H264SliceContext *sl);
void ff_h264_remove_all_refs(H264Context *h);
@@ -1046,7 +1048,7 @@ static av_always_inline int get_dct8x8_allowed(H264Context *h, H264SliceContext
0x0001000100010001ULL));
}
-int ff_h264_field_end(H264Context *h, int in_setup);
+int ff_h264_field_end(H264Context *h, H264SliceContext *sl, int in_setup);
int ff_h264_ref_picture(H264Context *h, H264Picture *dst, H264Picture *src);
void ff_h264_unref_picture(H264Context *h, H264Picture *pic);
@@ -1054,7 +1056,7 @@ void ff_h264_unref_picture(H264Context *h, H264Picture *pic);
int ff_h264_context_init(H264Context *h);
int ff_h264_set_parameter_from_sps(H264Context *h);
-void ff_h264_draw_horiz_band(H264Context *h, int y, int height);
+void ff_h264_draw_horiz_band(H264Context *h, H264SliceContext *sl, int y, int height);
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_set_ref_count(H264Context *h, H264SliceContext *sl);