[FFmpeg-cvslog] fftools/ffmpeg_demux: set stream index right before sending packet to scheduler

Anton Khirnov git at videolan.org
Fri Feb 9 17:19:52 EET 2024


ffmpeg | branch: master | Anton Khirnov <anton at khirnov.net> | Mon Feb  5 18:06:52 2024 +0100| [05fc6d3ce71e7e31040becec4bca1ac9beb0f366] | committer: Anton Khirnov

fftools/ffmpeg_demux: set stream index right before sending packet to scheduler

This avoids assuming that it survives unchanged through bitstream
filters, if present.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=05fc6d3ce71e7e31040becec4bca1ac9beb0f366
---

 fftools/ffmpeg_demux.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/fftools/ffmpeg_demux.c b/fftools/ffmpeg_demux.c
index 60dc9620c2..3bf95e2c3f 100644
--- a/fftools/ffmpeg_demux.c
+++ b/fftools/ffmpeg_demux.c
@@ -475,8 +475,6 @@ static int input_packet_process(Demuxer *d, AVPacket *pkt, unsigned *send_flags)
                av_ts2str(f->ts_offset),  av_ts2timestr(f->ts_offset, &AV_TIME_BASE_Q));
     }
 
-    pkt->stream_index = ds->sch_idx_stream;
-
     return 0;
 }
 
@@ -505,6 +503,8 @@ static int do_send(Demuxer *d, DemuxStream *ds, AVPacket *pkt, unsigned flags,
 {
     int ret;
 
+    pkt->stream_index = ds->sch_idx_stream;
+
     ret = sch_demux_send(d->sch, d->f.index, pkt, flags);
     if (ret == AVERROR_EOF) {
         av_packet_unref(pkt);
@@ -546,7 +546,6 @@ static int demux_send(Demuxer *d, DemuxThreadContext *dt, DemuxStream *ds,
 
             d->pkt_heartbeat->pts          = pkt->pts;
             d->pkt_heartbeat->time_base    = pkt->time_base;
-            d->pkt_heartbeat->stream_index = ds1->sch_idx_stream;
             d->pkt_heartbeat->opaque       = (void*)(intptr_t)PKT_OPAQUE_SUB_HEARTBEAT;
 
             ret = do_send(d, ds1, d->pkt_heartbeat, 0, "heartbeat");



More information about the ffmpeg-cvslog mailing list