This is an automated email from the git hooks/post-receive script.

Git pushed a commit to branch master
in repository ffmpeg.

The following commit(s) were added to refs/heads/master by this push:
     new d9da090b1d avformat/dashdec: don't stop at the first input EOF
d9da090b1d is described below

commit d9da090b1d05cd731610462fd91c5f167e698909
Author:     James Almer <[email protected]>
AuthorDate: Fri Jul 24 11:30:57 2026 -0300
Commit:     James Almer <[email protected]>
CommitDate: Sat Aug 1 19:47:08 2026 -0300

    avformat/dashdec: don't stop at the first input EOF
    
    The current logic would stop demuxing the entire manifest once the first 
Representation
    returned EOF, which could result in plenty of packets from other 
Representations being
    lost.
    
    Signed-off-by: James Almer <[email protected]>
---
 libavformat/dashdec.c | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/libavformat/dashdec.c b/libavformat/dashdec.c
index ba49677a09..d4a05ace7e 100644
--- a/libavformat/dashdec.c
+++ b/libavformat/dashdec.c
@@ -2380,7 +2380,7 @@ static int dash_read_packet(AVFormatContext *s, AVPacket 
*pkt)
     }
 
     if (!cur) {
-        return AVERROR_INVALIDDATA;
+        return AVERROR_EOF;
     }
     while (!ff_check_interrupt(c->interrupt_callback) && !ret) {
         ret = av_read_frame(cur->ctx, pkt);
@@ -2396,9 +2396,17 @@ static int dash_read_packet(AVFormatContext *s, AVPacket 
*pkt)
             cur->is_restart_needed = 0;
             ff_format_io_close(cur->parent, &cur->input);
             ret = reopen_demux_for_component(s, cur);
+        } else if (ret == AVERROR_EOF) {
+            close_demux_for_component(cur);
+            ff_format_io_close(cur->parent, &cur->input);
+            av_log(s, AV_LOG_DEBUG, "EOF on stream_index %d\n", 
cur->stream_index);
+            // prevent recheck_discard_flags() from re-enabling the component
+            for (int i = 0; i < cur->nb_assoc_stream; i++)
+                cur->assoc_stream[i]->discard = AVDISCARD_ALL;
+            return FFERROR_REDO;
         }
     }
-    return AVERROR_EOF;
+    return ret;
 }
 
 static int dash_close(AVFormatContext *s)

_______________________________________________
ffmpeg-cvslog mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to