From 05c3e530d63459bebe1e1155b1d5281dc08d1954 Mon Sep 17 00:00:00 2001 From: Christophe Massiot Date: Wed, 29 Nov 2000 11:34:22 +0000 Subject: [PATCH] Enhancement for very slooow machines. --- src/video_parser/vpar_synchro.c | 40 ++++++++++++++++++++++----------- 1 file changed, 27 insertions(+), 13 deletions(-) diff --git a/src/video_parser/vpar_synchro.c b/src/video_parser/vpar_synchro.c index 5d83b12145..b3ec2c4618 100644 --- a/src/video_parser/vpar_synchro.c +++ b/src/video_parser/vpar_synchro.c @@ -247,9 +247,15 @@ boolean_t vpar_SynchroChoose( vpar_thread_t * p_vpar, int i_coding_type, pts = S.current_pts + period * S.i_n_b; } - b_decode = ( (1 + S.i_n_p * (S.i_n_b + 1)) * period > - S.p_tau[I_CODING_TYPE] ) || - ( (pts - now) > (TAU_PRIME(I_CODING_TYPE) + DELTA) ); + if( (1 + S.i_n_p * (S.i_n_b + 1)) * period > + S.p_tau[I_CODING_TYPE] ) + { + b_decode = 1; + } + else + { + b_decode = (pts - now) > (TAU_PRIME(I_CODING_TYPE) + DELTA); + } if( !b_decode ) intf_WarnMsg( 3, "vpar synchro warning: trashing I\n" ); break; @@ -270,20 +276,28 @@ boolean_t vpar_SynchroChoose( vpar_thread_t * p_vpar, int i_coding_type, pts = S.current_pts + period * S.i_n_b; } - if( (S.i_n_b + 1) * period > S.p_tau[P_CODING_TYPE] ) + if( (1 + S.i_n_p * (S.i_n_b + 1)) * period > + S.p_tau[I_CODING_TYPE] ) { - /* Security in case we're _really_ late */ - b_decode = (pts - now > 0); + if( (S.i_n_b + 1) * period > S.p_tau[P_CODING_TYPE] ) + { + /* Security in case we're _really_ late */ + b_decode = (pts - now > 0); + } + else + { + b_decode = (pts - now) > (TAU_PRIME(P_CODING_TYPE) + DELTA); + /* next I */ + b_decode &= (pts - now + + period + * ( (S.i_n_p - S.i_eta_p - 1) * (1 + S.i_n_b) - 1 )) + > (TAU_PRIME(P_CODING_TYPE) + + TAU_PRIME(I_CODING_TYPE) + DELTA); + } } else { - b_decode = (pts - now) > (TAU_PRIME(P_CODING_TYPE) + DELTA); - /* next I */ - b_decode &= (pts - now - + period - * ( (S.i_n_p - S.i_eta_p - 1) * (1 + S.i_n_b) - 1 )) - > (TAU_PRIME(P_CODING_TYPE) - + TAU_PRIME(I_CODING_TYPE) + DELTA); + b_decode = 0; } break; -- 2.39.2