From 2bc8bb5daadba7a4841418dbf1be700fb2889882 Mon Sep 17 00:00:00 2001 From: linyuhui Date: Mon, 21 Nov 2016 11:46:07 +0800 Subject: [PATCH] [m2vd]: revise predict mpeg2 pts when error detection when preframe_period is zero use frame_period instead Change-Id: Id1b706bd01eeb4bce4da1bf564c9197b120aef11 Signed-off-by: linyuhui --- mpp/codec/dec/m2v/m2vd_parser.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mpp/codec/dec/m2v/m2vd_parser.c b/mpp/codec/dec/m2v/m2vd_parser.c index a6ce6817..768d77d6 100755 --- a/mpp/codec/dec/m2v/m2vd_parser.c +++ b/mpp/codec/dec/m2v/m2vd_parser.c @@ -1053,7 +1053,8 @@ MPP_RET m2vd_alloc_frame(M2VDParserContext *ctx) if ((pts > ctx->PreGetFrameTime) && (ctx->pic_head.temporal_reference > (RK_S32)ctx->PreChangeTime_index)) { RK_S32 theshold_frame_period = tmp_frame_period * 2 ; - RK_S32 predict_frame_period = (ctx->pic_head.temporal_reference - ctx->PreChangeTime_index) * ctx->preframe_period / 256; + RK_S32 last_frame_period = ctx->preframe_period ? ctx->preframe_period : ctx->frame_period; + RK_S32 predict_frame_period = (ctx->pic_head.temporal_reference - ctx->PreChangeTime_index) * last_frame_period / 256; if (theshold_frame_period < predict_frame_period) { pts = ctx->PreGetFrameTime + predict_frame_period; tmp_frame_period = predict_frame_period;