lavc/h264dec: don't error out when receiving multiple IDR slices

This error isn't particularly helpful as checking for mixed IDR/non-IDR
NALUs would need to be done at a higher level to actually be accurate.
Removing the error allows an API user to send individual slice NALUs
(i.e. incomplete frames) so they can take advantage of slice
threading. The ticket which this error was added for (#4408) no
longer segfaults after removing this error (as the bug was likely
fixed more properly elsewhere).
This commit is contained in:
Josh de Kock 2018-09-26 10:35:04 +01:00 committed by Kieran Kunhya
parent 4fcfb9c4eb
commit 0a055f463a

View File

@ -657,11 +657,6 @@ static int decode_nal_units(H264Context *h, const uint8_t *buf, int buf_size)
goto end;
}
if(!idr_cleared) {
if (h->current_slice && (avctx->active_thread_type & FF_THREAD_SLICE)) {
av_log(h, AV_LOG_ERROR, "invalid mixed IDR / non IDR frames cannot be decoded in slice multithreading mode\n");
ret = AVERROR_INVALIDDATA;
goto end;
}
idr(h); // FIXME ensure we don't lose some frames if there is reordering
}
idr_cleared = 1;