diff options
Diffstat (limited to 'libavcodec/h264dec.h')
-rw-r--r-- | libavcodec/h264dec.h | 27 |
1 files changed, 9 insertions, 18 deletions
diff --git a/libavcodec/h264dec.h b/libavcodec/h264dec.h index fa5c98ee90..5f868b76cb 100644 --- a/libavcodec/h264dec.h +++ b/libavcodec/h264dec.h @@ -353,6 +353,7 @@ typedef struct H264Context { H264SliceContext *slice_ctx; int nb_slice_ctx; + int nb_slice_ctx_queued; H2645Packet pkt; @@ -491,20 +492,6 @@ typedef struct H264Context { */ int current_slice; - /** - * Max number of threads / contexts. - * This is equal to AVCodecContext.thread_count unless - * multithreaded decoding is impossible, in which case it is - * reduced to 1. - */ - int max_contexts; - - /** - * 1 if the single thread fallback warning has already been - * displayed, 0 otherwise. - */ - int single_decode_warning; - /** @} */ /** @@ -848,10 +835,14 @@ void ff_h264_draw_horiz_band(const H264Context *h, H264SliceContext *sl, int y, int ff_h264_decode_slice_header(H264Context *h, H264SliceContext *sl, const H2645NAL *nal); -#define SLICE_SINGLETHREAD 1 -#define SLICE_SKIPED 2 - -int ff_h264_execute_decode_slices(H264Context *h, unsigned context_count); +/** + * Submit a slice for decoding. + * + * Parse the slice header, starting a new field/frame if necessary. If any + * slices are queued for the previous field, they are decoded. + */ +int ff_h264_queue_decode_slice(H264Context *h, const H2645NAL *nal); +int ff_h264_execute_decode_slices(H264Context *h); int ff_h264_update_thread_context(AVCodecContext *dst, const AVCodecContext *src); |