diff options
author | Anton Khirnov <anton@khirnov.net> | 2016-04-15 16:10:21 +0200 |
---|---|---|
committer | Anton Khirnov <anton@khirnov.net> | 2016-06-12 20:27:52 +0200 |
commit | ed9a20ebe4a89de119ea97bdccf688ece8c6648c (patch) | |
tree | 8d6a939b9a337674255314e3e53ca3c5afda2557 /libavcodec/h264.h | |
parent | fa57059079190242517701120cfdccad93c866da (diff) | |
download | ffmpeg-ed9a20ebe4a89de119ea97bdccf688ece8c6648c.tar.gz |
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.h | 6 |
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); /** |