summaryrefslogtreecommitdiffstats
path: root/filters/f_decoder_wrapper.c
diff options
context:
space:
mode:
Diffstat (limited to 'filters/f_decoder_wrapper.c')
-rw-r--r--filters/f_decoder_wrapper.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/filters/f_decoder_wrapper.c b/filters/f_decoder_wrapper.c
index 0b2a4f52ec..13ba9398e7 100644
--- a/filters/f_decoder_wrapper.c
+++ b/filters/f_decoder_wrapper.c
@@ -481,6 +481,9 @@ static void feed_packet(struct priv *p)
if (!p->decoder || !mp_pin_in_needs_data(p->decoder->f->pins[0]))
return;
+ if (p->decoded_coverart.type)
+ return;
+
if (!p->packet.type && !p->new_segment) {
p->packet = mp_pin_out_read(p->demux);
if (!p->packet.type)
@@ -657,8 +660,9 @@ static void read_frame(struct priv *p)
return;
if (p->header->attached_picture && frame.type == MP_FRAME_VIDEO) {
- p->decoded_coverart = mp_frame_ref(frame);
- p->coverart_returned = 1;
+ p->decoded_coverart = frame;
+ mp_filter_internal_mark_progress(p->f);
+ return;
}
if (p->public.attempt_framedrops) {