[FFmpeg-cvslog] avcodec/utils: improve guess_correct_pts() by considerng mixed dts/ pts use caused by NOPTSs
Michael Niedermayer
git at videolan.org
Fri Feb 14 20:52:21 CET 2014
ffmpeg | branch: master | Michael Niedermayer <michaelni at gmx.at> | Fri Feb 14 20:27:07 2014 +0100| [68a959cb271767d65a7f0e382e518d8270588308] | committer: Michael Niedermayer
avcodec/utils: improve guess_correct_pts() by considerng mixed dts/pts use caused by NOPTSs
No testcase known, this is a theoretical improvment
Signed-off-by: Michael Niedermayer <michaelni at gmx.at>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=68a959cb271767d65a7f0e382e518d8270588308
---
libavcodec/utils.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/libavcodec/utils.c b/libavcodec/utils.c
index 135fd83..ea77654 100644
--- a/libavcodec/utils.c
+++ b/libavcodec/utils.c
@@ -1966,11 +1966,15 @@ static int64_t guess_correct_pts(AVCodecContext *ctx,
if (dts != AV_NOPTS_VALUE) {
ctx->pts_correction_num_faulty_dts += dts <= ctx->pts_correction_last_dts;
ctx->pts_correction_last_dts = dts;
- }
+ } else if (reordered_pts != AV_NOPTS_VALUE)
+ ctx->pts_correction_last_dts = reordered_pts;
+
if (reordered_pts != AV_NOPTS_VALUE) {
ctx->pts_correction_num_faulty_pts += reordered_pts <= ctx->pts_correction_last_pts;
ctx->pts_correction_last_pts = reordered_pts;
- }
+ } else if(dts != AV_NOPTS_VALUE)
+ ctx->pts_correction_last_pts = dts;
+
if ((ctx->pts_correction_num_faulty_pts<=ctx->pts_correction_num_faulty_dts || dts == AV_NOPTS_VALUE)
&& reordered_pts != AV_NOPTS_VALUE)
pts = reordered_pts;
More information about the ffmpeg-cvslog
mailing list