[vlc-devel] [PATCH] vout: don't drop the frame if it's the last one available to display
Steve Lhomme
robux4 at videolabs.io
Mon Oct 10 10:16:27 CEST 2016
---
src/video_output/video_output.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/src/video_output/video_output.c b/src/video_output/video_output.c
index 7994bec..e21039e 100644
--- a/src/video_output/video_output.c
+++ b/src/video_output/video_output.c
@@ -774,9 +774,13 @@ static int ThreadDisplayPreparePicture(vout_thread_t *vout, bool reuse, bool fra
decoded = picture_fifo_Pop(vout->p->decoder_fifo);
if (decoded) {
if (is_late_dropped && !decoded->b_force) {
+ picture_t *p_last = picture_fifo_Peek(vout->p->decoder_fifo);
+ if (p_last)
+ picture_Release(p_last);
+ const bool is_last = p_last == NULL;
const mtime_t predicted = mdate() + 0; /* TODO improve */
const mtime_t late = predicted - decoded->date;
- if (late > VOUT_DISPLAY_LATE_THRESHOLD) {
+ if (!is_last && late > VOUT_DISPLAY_LATE_THRESHOLD) {
msg_Warn(vout, "picture is too late to be displayed (missing %"PRId64" ms)", late/1000);
picture_Release(decoded);
vout_statistic_AddLost(&vout->p->statistic, 1);
--
2.8.2
More information about the vlc-devel
mailing list