summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--xine/demux_xvdr.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/xine/demux_xvdr.c b/xine/demux_xvdr.c
index 3e2e47d5..04fcc634 100644
--- a/xine/demux_xvdr.c
+++ b/xine/demux_xvdr.c
@@ -38,6 +38,7 @@
#include "ts2es.h"
#include "demux_xvdr_tsdata.h"
+#include "xvdr_metronom.h"
/*
* features
@@ -175,6 +176,16 @@ static void check_newpts(demux_xvdr_t *this, buf_element_t *buf, int video )
pts_wrap_workaround(this, buf, video);
if (buf->pts) {
+
+ if (video) {
+ int still_mode = (int)this->stream->metronom->get_option(this->stream->metronom, XVDR_METRONOM_STILL_MODE);
+ int trick_speed = (int)this->stream->metronom->get_option(this->stream->metronom, XVDR_METRONOM_TRICK_SPEED);
+ if (still_mode > 0 || trick_speed > 0) {
+ LOGMSG("Skipping new pts %"PRId64" (still=%d trickspeed=%d)", buf->pts, still_mode, trick_speed);
+ return;
+ }
+ }
+
int64_t diff = buf->pts - this->last_pts[video];
if (this->send_newpts || (this->last_pts[video] && abs(diff)>WRAP_THRESHOLD)) {