mpegvideo: dont allow last == current
this fixes deadlocks Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
9dd0b7ad82
commit
9e73f6d1f9
@ -1434,6 +1434,8 @@ static inline int pic_is_unused(MpegEncContext *s, Picture *pic)
|
||||
&& pic->f.qscale_table //check if the frame has anything allocated
|
||||
&& pic->period_since_free < s->avctx->thread_count)
|
||||
return 0;
|
||||
if (pic == s->last_picture_ptr)
|
||||
return 0;
|
||||
if (pic->f.data[0] == NULL)
|
||||
return 1;
|
||||
if (pic->needs_realloc && !(pic->reference & DELAYED_PIC_REF))
|
||||
@ -1447,7 +1449,7 @@ static int find_unused_picture(MpegEncContext *s, int shared)
|
||||
|
||||
if (shared) {
|
||||
for (i = 0; i < MAX_PICTURE_COUNT; i++) {
|
||||
if (s->picture[i].f.data[0] == NULL)
|
||||
if (s->picture[i].f.data[0] == NULL && &s->picture[i] != s->last_picture_ptr)
|
||||
return i;
|
||||
}
|
||||
} else {
|
||||
|
Loading…
x
Reference in New Issue
Block a user