summaryrefslogtreecommitdiffstats
path: root/video/decode/dec_video.c
diff options
context:
space:
mode:
Diffstat (limited to 'video/decode/dec_video.c')
-rw-r--r--video/decode/dec_video.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/video/decode/dec_video.c b/video/decode/dec_video.c
index 5c75194e75..548a77adf0 100644
--- a/video/decode/dec_video.c
+++ b/video/decode/dec_video.c
@@ -290,6 +290,14 @@ struct mp_image *video_decode(struct dec_video *d_video,
bool sort_pts =
(opts->user_pts_assoc_mode != 1 || d_video->header->video->avi_dts)
&& opts->correct_pts;
+
+ struct demux_packet packet_copy;
+ if (packet && packet->dts == MP_NOPTS_VALUE) {
+ packet_copy = *packet;
+ packet = &packet_copy;
+ packet->dts = packet->pts;
+ }
+
double pkt_pts = packet ? packet->pts : MP_NOPTS_VALUE;
double pkt_dts = packet ? packet->dts : MP_NOPTS_VALUE;
@@ -323,7 +331,7 @@ struct mp_image *video_decode(struct dec_video *d_video,
if (pts == MP_NOPTS_VALUE) {
d_video->codec_pts = prev_codec_pts;
- } else if (pts <= prev_codec_pts) {
+ } else if (pts < prev_codec_pts) {
d_video->num_codec_pts_problems++;
}