It's a race with frame threading.
Showing the changes to libavcodec (1 of 1 file). Show all
Unified · Split
| @@ -3135,17 +3135,14 @@ static int hevc_frame_end(HEVCContext *s) · 3134 unmodified lines | |||
| 3135 | if (ret < 0) { | 3135 | if (ret < 0) { |
| 3136 | av_log(s->avctx, AV_LOG_ERROR, | 3136 | av_log(s->avctx, AV_LOG_ERROR, |
| 3137 | "hardware accelerator failed to decode picture\n"); | 3137 | "hardware accelerator failed to decode picture\n"); |
| 3138 | ff_hevc_unref_frame(s->cur_frame, ~0); | ||
| 3139 | return ret; | 3138 | return ret; |
| 3140 | } | 3139 | } |
| 3141 | } else { | 3140 | } else { |
| 3142 | if (s->avctx->err_recognition & AV_EF_CRCCHECK && | 3141 | if (s->avctx->err_recognition & AV_EF_CRCCHECK && |
| 3143 | s->sei.picture_hash.is_md5) { | 3142 | s->sei.picture_hash.is_md5) { |
| 3144 | ret = verify_md5(s, s->cur_frame->f); | 3143 | ret = verify_md5(s, s->cur_frame->f); |
| 3145 | if (ret < 0 && s->avctx->err_recognition & AV_EF_EXPLODE) { | 3144 | if (ret < 0 && s->avctx->err_recognition & AV_EF_EXPLODE) |
| 3146 | ff_hevc_unref_frame(s->cur_frame, ~0); | ||
| 3147 | return ret; | 3145 | return ret; |
| 3148 | } | ||
| 3149 | } | 3146 | } |
| 3150 | } | 3147 | } |
| 3151 | s->sei.picture_hash.is_md5 = 0; | 3148 | s->sei.picture_hash.is_md5 = 0; |