diff options
Diffstat (limited to 'src/xine-engine/metronom.c')
-rw-r--r-- | src/xine-engine/metronom.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/xine-engine/metronom.c b/src/xine-engine/metronom.c index 689274239..4f5b2b87d 100644 --- a/src/xine-engine/metronom.c +++ b/src/xine-engine/metronom.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: metronom.c,v 1.76 2002/03/26 01:47:17 miguelfreitas Exp $ + * $Id: metronom.c,v 1.77 2002/03/31 14:36:42 mlampard Exp $ */ #ifdef HAVE_CONFIG_H @@ -521,11 +521,15 @@ static void metronom_set_option (metronom_t *this, int option, int64_t value) { this->scr_adjustable = value; break; case METRONOM_ADJ_VPTS_OFFSET: - this->vpts_offset += value; + if (!this->deny_backward_adjust || value > 0) + this->vpts_offset += value; /*#ifdef LOG*/ printf ("metronom: adjusting vpts_offset by %lld\n", value ); /*#endif*/ break; + case METRONOM_DENY_BACKWARD_ADJUST: + this->deny_backward_adjust = value; + break; default: printf ("metronom: unknown option in set_option: %d\n", option); @@ -540,6 +544,8 @@ static int64_t metronom_get_option (metronom_t *this, int option) { return this->av_offset; case METRONOM_SCR_ADJUSTABLE: return this->scr_adjustable; + case METRONOM_DENY_BACKWARD_ADJUST: + return this->deny_backward_adjust; } printf ("metronom: unknown option in get_option: %d\n", option); @@ -692,6 +698,7 @@ metronom_t * metronom_init (int have_audio, void *xine) { this->in_discontinuity = 0; this->vpts_offset = 0; this->next_vpts_offset = 0; + this->deny_backward_adjust = 0; /* initialize video stuff */ |