diff options
author | wm4 <wm4@nowhere> | 2016-01-25 20:47:13 +0100 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2016-01-25 21:46:39 +0100 |
commit | 271cabe6a5bd8342b56ab855d033abba63dfead6 (patch) | |
tree | d56df2cfb236ecca5f70123aeb891bfdae15aab7 /video/decode/dec_video.c | |
parent | 7f300b4204d33e33308d24eea9107ff60db36cc8 (diff) | |
download | mpv-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.c | 6 |
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++; } |