History

f_decoder_wrapper: don't wait on self thread progress on reinit

Fixes deadlock when reinit is triggered by the thread itself.

Kacper Michajłow committed 1 year ago

Commit 50cda601 parent f59ee851 file · +7 −1Browse files

Unified · Split

filters/f_decoder_wrapper.c+7−1
@@ -477,6 +477,12 @@ static bool reinit_decoder(struct priv *p) · 476 unmodified lines
477477 return !!p->decoder;
478478 }
479479
480+static bool decoder_wrapper_reinit(struct mp_decoder_wrapper *d)
481+{
482+ struct priv *p = d->f->priv;
483+ return reinit_decoder(p);
484+}
485+
480486 bool mp_decoder_wrapper_reinit(struct mp_decoder_wrapper *d)
481487 {
482488 struct priv *p = d->f->priv;
@@ -1059,7 +1065,7 @@ static void read_frame(struct priv *p) · 576 unmodified lines
10591065 if (new_segment->segmented) {
10601066 if (p->codec != new_segment->codec) {
10611067 p->codec = new_segment->codec;
1062− if (!mp_decoder_wrapper_reinit(&p->public))
1068+ if (!decoder_wrapper_reinit(&p->public))
10631069 mp_filter_internal_mark_failed(p->decf);
10641070 }
10651071

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