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.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/filters/f_decoder_wrapper.c b/filters/f_decoder_wrapper.c
index 4347917152..3d7adca551 100644
--- a/filters/f_decoder_wrapper.c
+++ b/filters/f_decoder_wrapper.c
@@ -824,13 +824,13 @@ void lavc_process(struct mp_filter *f, struct lavc_state *state,
struct mp_frame frame = {0};
int ret_recv = receive(f, &frame);
- if (ret_recv == AVERROR_EOF) {
+ if (frame.type) {
+ state->eof_returned = false;
+ mp_pin_in_write(f->ppins[1], frame);
+ } else if (ret_recv == AVERROR_EOF) {
if (!state->eof_returned)
mp_pin_in_write(f->ppins[1], MP_EOF_FRAME);
state->eof_returned = true;
- } else if (frame.type) {
- state->eof_returned = false;
- mp_pin_in_write(f->ppins[1], frame);
} else if (ret_recv == AVERROR(EAGAIN)) {
// Need to feed a packet.
frame = mp_pin_out_read(f->ppins[0]);
@@ -856,7 +856,7 @@ void lavc_process(struct mp_filter *f, struct lavc_state *state,
talloc_free(pkt);
mp_filter_internal_mark_progress(f);
} else {
- // Just try again.
+ // Decoding error? Just try again.
mp_filter_internal_mark_progress(f);
}
}