diff options
Diffstat (limited to 'video/decode')
-rw-r--r-- | video/decode/dec_video.c | 8 | ||||
-rw-r--r-- | video/decode/dec_video.h | 3 |
2 files changed, 6 insertions, 5 deletions
diff --git a/video/decode/dec_video.c b/video/decode/dec_video.c index 402bb805ef..1802e19fbf 100644 --- a/video/decode/dec_video.c +++ b/video/decode/dec_video.c @@ -69,7 +69,6 @@ void video_reset_decoding(struct dec_video *d_video) d_video->codec_dts = MP_NOPTS_VALUE; d_video->sorted_pts = MP_NOPTS_VALUE; d_video->unsorted_pts = MP_NOPTS_VALUE; - d_video->pts = MP_NOPTS_VALUE; } int video_vd_control(struct dec_video *d_video, int cmd, void *arg) @@ -358,9 +357,14 @@ struct mp_image *video_decode(struct dec_video *d_video, pts += frame_time; } + if (d_video->decoded_pts != MP_NOPTS_VALUE && pts < d_video->decoded_pts) { + mp_msg(MSGT_DECVIDEO, MSGL_WARN, "Decreasing video pts: %f < %f\n", + pts, d_video->decoded_pts); + pts = d_video->decoded_pts; + } + mpi->pts = pts; d_video->decoded_pts = pts; - d_video->pts = pts; return mpi; } diff --git a/video/decode/dec_video.h b/video/decode/dec_video.h index 9117fceefd..d411717a32 100644 --- a/video/decode/dec_video.h +++ b/video/decode/dec_video.h @@ -65,9 +65,6 @@ struct dec_video { // Final PTS of previously decoded image double decoded_pts; - // PTS of the last decoded frame (often overwritten by player) - double pts; - float stream_aspect; // aspect ratio in media headers (DVD IFO files) int i_bps; // == bitrate (compressed bytes/sec) float fps; // FPS from demuxer or from user override |