mirror of https://git.ffmpeg.org/ffmpeg.git
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 <marth64@proxyid.net>
This commit is contained in:
parent
3656379d92
commit
f2f238c3a4
|
@ -1643,10 +1643,9 @@ 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;
|
goto discard;
|
||||||
|
|
||||||
if (pkt->pts != AV_NOPTS_VALUE && pkt->dts != AV_NOPTS_VALUE) {
|
|
||||||
if (!c->play_started) {
|
if (!c->play_started) {
|
||||||
/* try to start at the beginning of a GOP */
|
/* try to start at the beginning of a GOP */
|
||||||
if (st_subdemux->codecpar->codec_type != AVMEDIA_TYPE_VIDEO || !is_key)
|
if (st_subdemux->codecpar->codec_type != AVMEDIA_TYPE_VIDEO || !is_key)
|
||||||
|
@ -1661,10 +1660,6 @@ static int dvdvideo_read_packet(AVFormatContext *s, AVPacket *pkt)
|
||||||
|
|
||||||
if (pkt->pts < 0)
|
if (pkt->pts < 0)
|
||||||
goto discard;
|
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);
|
|
||||||
}
|
|
||||||
|
|
||||||
av_log(s, AV_LOG_TRACE, "st=%d pts=%" PRId64 " dts=%" PRId64 " "
|
av_log(s, AV_LOG_TRACE, "st=%d pts=%" PRId64 " dts=%" PRId64 " "
|
||||||
"pts_offset=%" PRId64 " first_pts=%" PRId64 "\n",
|
"pts_offset=%" PRId64 " first_pts=%" PRId64 "\n",
|
||||||
|
|
Loading…
Reference in New Issue