mirror of https://git.ffmpeg.org/ffmpeg.git
h264: eliminate max_contexts
It is always equal to nb_slice_ctx.
This commit is contained in:
parent
e3c9041cfe
commit
2e5bde9565
|
@ -808,7 +808,6 @@ static int decode_nal_units(H264Context *h, const uint8_t *buf, int buf_size)
|
||||||
int nals_needed = 0; ///< number of NALs that need decoding before the next frame thread starts
|
int nals_needed = 0; ///< number of NALs that need decoding before the next frame thread starts
|
||||||
int i, ret = 0;
|
int i, ret = 0;
|
||||||
|
|
||||||
h->max_contexts = h->nb_slice_ctx;
|
|
||||||
if (!(avctx->flags2 & AV_CODEC_FLAG2_CHUNKS)) {
|
if (!(avctx->flags2 & AV_CODEC_FLAG2_CHUNKS)) {
|
||||||
h->current_slice = 0;
|
h->current_slice = 0;
|
||||||
if (!h->first_field)
|
if (!h->first_field)
|
||||||
|
@ -935,7 +934,7 @@ static int decode_nal_units(H264Context *h, const uint8_t *buf, int buf_size)
|
||||||
nal->type, nal->size_bits);
|
nal->type, nal->size_bits);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (context_count == h->max_contexts) {
|
if (context_count == h->nb_slice_ctx) {
|
||||||
ret = ff_h264_execute_decode_slices(h, context_count);
|
ret = ff_h264_execute_decode_slices(h, context_count);
|
||||||
if (ret < 0 && (h->avctx->err_recognition & AV_EF_EXPLODE))
|
if (ret < 0 && (h->avctx->err_recognition & AV_EF_EXPLODE))
|
||||||
goto end;
|
goto end;
|
||||||
|
|
|
@ -584,14 +584,6 @@ typedef struct H264Context {
|
||||||
*/
|
*/
|
||||||
int current_slice;
|
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;
|
|
||||||
|
|
||||||
/** @} */
|
/** @} */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1462,7 +1462,7 @@ int ff_h264_decode_slice_header(H264Context *h, H264SliceContext *sl)
|
||||||
h->nal_ref_idc == 0))
|
h->nal_ref_idc == 0))
|
||||||
sl->deblocking_filter = 0;
|
sl->deblocking_filter = 0;
|
||||||
|
|
||||||
if (sl->deblocking_filter == 1 && h->max_contexts > 1) {
|
if (sl->deblocking_filter == 1 && h->nb_slice_ctx > 1) {
|
||||||
if (h->avctx->flags2 & AV_CODEC_FLAG2_FAST) {
|
if (h->avctx->flags2 & AV_CODEC_FLAG2_FAST) {
|
||||||
/* Cheat slightly for speed:
|
/* Cheat slightly for speed:
|
||||||
* Do not bother to deblock across slices. */
|
* Do not bother to deblock across slices. */
|
||||||
|
|
Loading…
Reference in New Issue