ffmpeg | branch: master | Andreas Rheinhardt <andreas.rheinha...@outlook.com> | Sun Aug 22 07:55:34 2021 +0200| [5a3385d49a765a9cf6d55ecc0826e48d2bf082de] | committer: Andreas Rheinhardt
avcodec/av1_frame_merge_bsf: Passthrough pos in case of no timestamps This is needed by the AV1-Annex B and AV1-OBU demuxers. Reviewed-by: James Almer <jamr...@gmail.com> Signed-off-by: Andreas Rheinhardt <andreas.rheinha...@outlook.com> > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=5a3385d49a765a9cf6d55ecc0826e48d2bf082de --- libavcodec/av1_frame_merge_bsf.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/libavcodec/av1_frame_merge_bsf.c b/libavcodec/av1_frame_merge_bsf.c index fce5bdb67e..19b9cd01a8 100644 --- a/libavcodec/av1_frame_merge_bsf.c +++ b/libavcodec/av1_frame_merge_bsf.c @@ -103,10 +103,15 @@ eof: err = AVERROR(EAGAIN); } - // Buffer packets with timestamps. There should be at most one per TU, be it split or not. - if (!buffer_pkt->data && in->pts != AV_NOPTS_VALUE) + /* Buffer packets with timestamps (there should be at most one per TU) + * or any packet if buffer_pkt is empty. The latter is needed to + * passthrough positions in case there are no timestamps like with + * the raw OBU demuxer. */ + if (!buffer_pkt->data || + in->pts != AV_NOPTS_VALUE && buffer_pkt->pts == AV_NOPTS_VALUE) { + av_packet_unref(buffer_pkt); av_packet_move_ref(buffer_pkt, in); - else + } else av_packet_unref(in); ff_cbs_fragment_reset(&ctx->frag[ctx->idx]); _______________________________________________ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog To unsubscribe, visit link above, or email ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".