|
|
@@ -1548,8 +1548,14 @@ again: |
|
|
ret = -1; |
|
|
ret = -1; |
|
|
goto end; |
|
|
goto end; |
|
|
} |
|
|
} |
|
|
if(!idr_cleared) |
|
|
|
|
|
|
|
|
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(h); // FIXME ensure we don't lose some frames if there is reordering |
|
|
|
|
|
} |
|
|
idr_cleared = 1; |
|
|
idr_cleared = 1; |
|
|
h->has_recovery_point = 1; |
|
|
h->has_recovery_point = 1; |
|
|
case NAL_SLICE: |
|
|
case NAL_SLICE: |
|
|
|