summaryrefslogtreecommitdiff
path: root/libavcodec/h264.h
diff options
context:
space:
mode:
authorAnton Khirnov <anton@khirnov.net>2016-04-15 16:10:21 +0200
committerAnton Khirnov <anton@khirnov.net>2016-06-12 20:27:52 +0200
commited9a20ebe4a89de119ea97bdccf688ece8c6648c (patch)
tree8d6a939b9a337674255314e3e53ca3c5afda2557 /libavcodec/h264.h
parentfa57059079190242517701120cfdccad93c866da (diff)
h264: split reading the ref list modifications and actually building the ref list
This will allow postponing the reference list construction (and by consequence some other functions, like frame_start) until the whole slice header has been parsed.
Diffstat (limited to 'libavcodec/h264.h')
-rw-r--r--libavcodec/h264.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/libavcodec/h264.h b/libavcodec/h264.h
index 034507d3cd..b4e5f3ace7 100644
--- a/libavcodec/h264.h
+++ b/libavcodec/h264.h
@@ -391,6 +391,11 @@ typedef struct H264SliceContext {
H264Ref 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 */
+ struct {
+ uint8_t op;
+ uint8_t val;
+ } ref_modifications[2][32];
+ int nb_ref_modifications[2];
const uint8_t *intra_pcm_ptr;
int16_t *dc_val_base;
@@ -657,6 +662,7 @@ int ff_h264_get_slice_type(const H264SliceContext *sl);
int ff_h264_alloc_tables(H264Context *h);
int ff_h264_decode_ref_pic_list_reordering(const H264Context *h, H264SliceContext *sl);
+int ff_h264_build_ref_list(const H264Context *h, H264SliceContext *sl);
void ff_h264_remove_all_refs(H264Context *h);
/**