diff options
Diffstat (limited to 'video/decode/dec_video.c')
-rw-r--r-- | video/decode/dec_video.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/video/decode/dec_video.c b/video/decode/dec_video.c index 1802e19fbf..ec4cd5b775 100644 --- a/video/decode/dec_video.c +++ b/video/decode/dec_video.c @@ -171,6 +171,7 @@ bool video_init_best_codec(struct dec_video *d_video, char* video_decoders) { assert(!d_video->vd_driver); video_reset_decoding(d_video); + d_video->has_broken_packet_pts = -10; // needs 10 packets to reach decision struct mp_decoder_entry *decoder = NULL; struct mp_decoder_list *list = @@ -363,6 +364,11 @@ struct mp_image *video_decode(struct dec_video *d_video, pts = d_video->decoded_pts; } + if (d_video->has_broken_packet_pts < 0) + d_video->has_broken_packet_pts++; + if (d_video->num_codec_pts_problems || pkt_pts == MP_NOPTS_VALUE) + d_video->has_broken_packet_pts = 1; + mpi->pts = pts; d_video->decoded_pts = pts; return mpi; |