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

This avoids assuming that it survives unchanged through bitstream
filters, if present.
This commit is contained in:
Anton Khirnov
2024-02-05 18:06:52 +01:00
parent 8c2e86ca28
commit 05fc6d3ce7

View File

@@ -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)); av_ts2str(f->ts_offset), av_ts2timestr(f->ts_offset, &AV_TIME_BASE_Q));
} }
pkt->stream_index = ds->sch_idx_stream;
return 0; return 0;
} }
@@ -505,6 +503,8 @@ static int do_send(Demuxer *d, DemuxStream *ds, AVPacket *pkt, unsigned flags,
{ {
int ret; int ret;
pkt->stream_index = ds->sch_idx_stream;
ret = sch_demux_send(d->sch, d->f.index, pkt, flags); ret = sch_demux_send(d->sch, d->f.index, pkt, flags);
if (ret == AVERROR_EOF) { if (ret == AVERROR_EOF) {
av_packet_unref(pkt); 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->pts = pkt->pts;
d->pkt_heartbeat->time_base = pkt->time_base; 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; d->pkt_heartbeat->opaque = (void*)(intptr_t)PKT_OPAQUE_SUB_HEARTBEAT;
ret = do_send(d, ds1, d->pkt_heartbeat, 0, "heartbeat"); ret = do_send(d, ds1, d->pkt_heartbeat, 0, "heartbeat");