History

lavc/hevcdec: do not unref current frame on frame_end() failure

It's a race with frame threading.

Anton Khirnov committed 2 years ago

Commit ccd391d1 parent d725c731 file · +1 −4Browse files

Showing the changes to libavcodec (1 of 1 file). Show all

Unified · Split

libavcodec/hevc/hevcdec.c+1−4
@@ -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;

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t