Signed-off-by: Andreas Rheinhardt <andreas.rheinha...@outlook.com> --- libavformat/internal.h | 7 +++++++ libavformat/mux.c | 11 ++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-)
diff --git a/libavformat/internal.h b/libavformat/internal.h index 223befdbc0..867b5de514 100644 --- a/libavformat/internal.h +++ b/libavformat/internal.h @@ -760,6 +760,13 @@ int ff_add_attached_pic(AVFormatContext *s, AVStream *st, AVIOContext *pb, int ff_interleave_packet_per_dts(AVFormatContext *s, AVPacket *pkt, int flush, int has_packet); +/** + * Interleave packets directly in the order in which they arrive + * without any sort of buffering. + */ +int ff_interleave_packet_passthrough(AVFormatContext *s, AVPacket *pkt, + int flush, int has_packet); + void ff_free_stream(AVFormatContext *s, AVStream *st); unsigned int ff_codec_get_tag(const AVCodecTag *tags, enum AVCodecID id); diff --git a/libavformat/mux.c b/libavformat/mux.c index f4f1bc289e..a6129720dd 100644 --- a/libavformat/mux.c +++ b/libavformat/mux.c @@ -334,7 +334,10 @@ static int init_muxer(AVFormatContext *s, AVDictionary **options) if (par->codec_type != AVMEDIA_TYPE_ATTACHMENT) si->nb_interleaved_streams++; } - si->interleave_packet = of->interleave_packet ? of->interleave_packet : ff_interleave_packet_per_dts; + si->interleave_packet = of->interleave_packet ? of->interleave_packet : + si->nb_interleaved_streams > 1 ? + ff_interleave_packet_per_dts : + ff_interleave_packet_passthrough; if (!s->priv_data && of->priv_data_size > 0) { s->priv_data = av_mallocz(of->priv_data_size); @@ -1026,6 +1029,12 @@ int ff_interleave_packet_per_dts(AVFormatContext *s, AVPacket *pkt, } } +int ff_interleave_packet_passthrough(AVFormatContext *s, AVPacket *pkt, + int flush, int has_packet) +{ + return has_packet; +} + int ff_get_muxer_ts_offset(AVFormatContext *s, int stream_index, int64_t *offset) { AVStream *st; -- 2.30.2 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".