summaryrefslogtreecommitdiffstats
path: root/video/decode/dec_video.c
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2016-01-25 20:47:13 +0100
committerwm4 <wm4@nowhere>2016-01-25 21:46:39 +0100
commit271cabe6a5bd8342b56ab855d033abba63dfead6 (patch)
treed56df2cfb236ecca5f70123aeb891bfdae15aab7 /video/decode/dec_video.c
parent7f300b4204d33e33308d24eea9107ff60db36cc8 (diff)
downloadmpv-271cabe6a5bd8342b56ab855d033abba63dfead6.tar.bz2
mpv-271cabe6a5bd8342b56ab855d033abba63dfead6.tar.xz
video: cleanup pts/dts passing between decoder components
Instead of using semi-public codec_pts/codec_dts fields in struct dec_video, pass them via mp_image fields.
Diffstat (limited to 'video/decode/dec_video.c')
-rw-r--r--video/decode/dec_video.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/video/decode/dec_video.c b/video/decode/dec_video.c
index f28871c6bb..1d2806f17a 100644
--- a/video/decode/dec_video.c
+++ b/video/decode/dec_video.c
@@ -310,18 +310,20 @@ static struct mp_image *decode_packet(struct dec_video *d_video,
}
// Note: the PTS is reordered, but the DTS is not. Both should be monotonic.
- double pts = d_video->codec_pts;
- double dts = d_video->codec_dts;
+ double pts = mpi->pts;
+ double dts = mpi->dts;
if (pts == MP_NOPTS_VALUE) {
d_video->codec_pts = prev_codec_pts;
} else if (pts < prev_codec_pts) {
+ d_video->codec_pts = mpi->pts;
d_video->num_codec_pts_problems++;
}
if (dts == MP_NOPTS_VALUE) {
d_video->codec_dts = prev_codec_dts;
} else if (dts <= prev_codec_dts) {
+ d_video->codec_dts = mpi->dts;
d_video->num_codec_dts_problems++;
}