From 2696bcd9e2be767f490d2ea79e22d6fddb49deb9 Mon Sep 17 00:00:00 2001 From: Nicolas Dufresne Date: Wed, 16 Jun 2021 10:31:13 -0400 Subject: [PATCH] vp8decoder: Drain the output queue on EOS/finish The finish() virtual method was flushing the queue, instead push the remaining buffers. It is not required to reset in finish() unlike drain(). This a regression causing last frame to always be lost. Part-of: --- gst-libs/gst/codecs/gstvp8decoder.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gst-libs/gst/codecs/gstvp8decoder.c b/gst-libs/gst/codecs/gstvp8decoder.c index d3f2aa1007..2a9f834993 100644 --- a/gst-libs/gst/codecs/gstvp8decoder.c +++ b/gst-libs/gst/codecs/gstvp8decoder.c @@ -279,7 +279,7 @@ gst_vp8_decoder_finish (GstVideoDecoder * decoder) GST_DEBUG_OBJECT (self, "finish"); - gst_vp8_decoder_reset (self); + gst_vp8_decoder_drain_output_queue (GST_VP8_DECODER (decoder), 0); return GST_FLOW_OK; }