aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec/h264.h
diff options
context:
space:
mode:
authorAnton Khirnov <anton@khirnov.net>2016-05-09 13:48:01 +0200
committerAnton Khirnov <anton@khirnov.net>2016-06-12 20:27:53 +0200
commit2d410ebbaa1e760d6837cb434a6d1d4c3c6f0d85 (patch)
tree5fb137868ac5b3aa368572b2b575b07159965f6d /libavcodec/h264.h
parent39ab2ea53121b9976a619cd545fbd3464b908696 (diff)
downloadffmpeg-2d410ebbaa1e760d6837cb434a6d1d4c3c6f0d85.tar.gz
h264: decode the MMCOs into per-slice contexts
They are stored in the slice header, so technically they are per-slice (though they must be the same in every slice). This will simplify the following commits.
Diffstat (limited to 'libavcodec/h264.h')
-rw-r--r--libavcodec/h264.h9
1 files changed, 6 insertions, 3 deletions
diff --git a/libavcodec/h264.h b/libavcodec/h264.h
index feccf3a60f..227cdab3a8 100644
--- a/libavcodec/h264.h
+++ b/libavcodec/h264.h
@@ -439,6 +439,9 @@ typedef struct H264SliceContext {
CABACContext cabac;
uint8_t cabac_state[1024];
int cabac_init_idc;
+
+ MMCO mmco[MAX_MMCO_COUNT];
+ int nb_mmco;
} H264SliceContext;
/**
@@ -671,10 +674,10 @@ void ff_h264_remove_all_refs(H264Context *h);
*/
int ff_h264_execute_ref_pic_marking(H264Context *h, MMCO *mmco, int mmco_count);
-int ff_h264_decode_ref_pic_marking(H264Context *h, GetBitContext *gb,
- int first_slice);
+int ff_h264_decode_ref_pic_marking(const H264Context *h, H264SliceContext *sl,
+ GetBitContext *gb);
-int ff_generate_sliding_window_mmcos(H264Context *h, int first_slice);
+int ff_generate_sliding_window_mmcos(const H264Context *h, H264SliceContext *sl);
void ff_h264_hl_decode_mb(const H264Context *h, H264SliceContext *sl);
int ff_h264_decode_init(AVCodecContext *avctx);