avformat/avformat: Add AVStream parameter to check_bitstream() sig

For most check_bitstream() functions this just avoids having
to dereference s->streams[pkt->stream_index] themselves; but for
meta-muxers it will allow to forward the packet to stream with
a different stream_index (belonging to a different AVFormatContext)
without using a spare packet.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
This commit is contained in:
Andreas Rheinhardt
2021-11-18 21:48:49 +01:00
parent c90b3661fa
commit a5ee166327
10 changed files with 36 additions and 27 deletions

View File

@@ -984,15 +984,17 @@ static int seg_write_trailer(struct AVFormatContext *s)
return ret;
}
static int seg_check_bitstream(struct AVFormatContext *s, const AVPacket *pkt)
static int seg_check_bitstream(AVFormatContext *s, AVStream *st,
const AVPacket *pkt)
{
SegmentContext *seg = s->priv_data;
AVFormatContext *oc = seg->avf;
if (oc->oformat->check_bitstream) {
int ret = oc->oformat->check_bitstream(oc, pkt);
AVStream *const ost = oc->streams[st->index];
int ret = oc->oformat->check_bitstream(oc, ost, pkt);
if (ret == 1) {
FFStream *const sti = ffstream( s->streams[pkt->stream_index]);
FFStream *const osti = ffstream(oc->streams[pkt->stream_index]);
FFStream *const sti = ffstream(st);
FFStream *const osti = ffstream(ost);
sti->bsfc = osti->bsfc;
osti->bsfc = NULL;
}