ffmpeg | branch: master | Marth64 <mart...@proxyid.net> | Mon Oct 7 18:05:03 2024 -0500| [f2f238c3a4855cd0919889940c2f45958ac47be6] | committer: Marth64
avformat/dvdvideodec: drop packets with unset PTS or DTS The packets effectively serve no purpose and we are already dropping packets with PTS less than 0. This also creates for a smoother seeking experience after the subdemuxer reset fix. Signed-off-by: Marth64 <mart...@proxyid.net> > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=f2f238c3a4855cd0919889940c2f45958ac47be6 --- libavformat/dvdvideodec.c | 29 ++++++++++++----------------- 1 file changed, 12 insertions(+), 17 deletions(-) diff --git a/libavformat/dvdvideodec.c b/libavformat/dvdvideodec.c index d64a678589..f20d2aa5cb 100644 --- a/libavformat/dvdvideodec.c +++ b/libavformat/dvdvideodec.c @@ -1643,28 +1643,23 @@ static int dvdvideo_read_packet(AVFormatContext *s, AVPacket *pkt) } } - if (!st_mapped) + if (!st_mapped || pkt->pts == AV_NOPTS_VALUE || pkt->dts == AV_NOPTS_VALUE) goto discard; - if (pkt->pts != AV_NOPTS_VALUE && pkt->dts != AV_NOPTS_VALUE) { - if (!c->play_started) { - /* try to start at the beginning of a GOP */ - if (st_subdemux->codecpar->codec_type != AVMEDIA_TYPE_VIDEO || !is_key) - goto discard; + if (!c->play_started) { + /* try to start at the beginning of a GOP */ + if (st_subdemux->codecpar->codec_type != AVMEDIA_TYPE_VIDEO || !is_key) + goto discard; - c->first_pts = pkt->pts; - c->play_started = 1; - } + c->first_pts = pkt->pts; + c->play_started = 1; + } - pkt->pts += c->pts_offset - c->first_pts; - pkt->dts += c->pts_offset - c->first_pts; + pkt->pts += c->pts_offset - c->first_pts; + pkt->dts += c->pts_offset - c->first_pts; - if (pkt->pts < 0) - goto discard; - } else { - av_log(s, AV_LOG_WARNING, "Unset PTS or DTS @ st=%d pts=%" PRId64 " dts=%" PRId64 "\n", - pkt->stream_index, pkt->pts, pkt->dts); - } + if (pkt->pts < 0) + goto discard; av_log(s, AV_LOG_TRACE, "st=%d pts=%" PRId64 " dts=%" PRId64 " " "pts_offset=%" PRId64 " first_pts=%" PRId64 "\n", _______________________________________________ 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".