diff options
| author | phintuka <phintuka> | 2012-05-11 07:37:27 +0000 |
|---|---|---|
| committer | phintuka <phintuka> | 2012-05-11 07:37:27 +0000 |
| commit | 1992faa3d3a1d5677381344a6eda8d924f3c86d1 (patch) | |
| tree | 7471e391925b4c365a0757d6ccab8f2fccca93b2 | |
| parent | b06530f5b5c12ecccd603ad1055764795019ce74 (diff) | |
| download | xineliboutput-1992faa3d3a1d5677381344a6eda8d924f3c86d1.tar.gz xineliboutput-1992faa3d3a1d5677381344a6eda8d924f3c86d1.tar.bz2 | |
Reverted part of 1.357 (pausing SCR instead of stream caused audio to be dropped while buffering)
| -rw-r--r-- | xine_input_vdr.c | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/xine_input_vdr.c b/xine_input_vdr.c index ace20f18..95ec2bb9 100644 --- a/xine_input_vdr.c +++ b/xine_input_vdr.c @@ -4,7 +4,7 @@ * See the main source file 'xineliboutput.c' for copyright information and * how to reach the author. * - * $Id: xine_input_vdr.c,v 1.361 2012-03-27 12:02:50 phintuka Exp $ + * $Id: xine_input_vdr.c,v 1.362 2012-05-11 07:37:27 phintuka Exp $ * */ @@ -136,7 +136,7 @@ typedef struct { # include <linux/unistd.h> /* syscall(__NR_gettid) */ #endif -static const char module_revision[] = "$Id: xine_input_vdr.c,v 1.361 2012-03-27 12:02:50 phintuka Exp $"; +static const char module_revision[] = "$Id: xine_input_vdr.c,v 1.362 2012-05-11 07:37:27 phintuka Exp $"; static const char log_module_input_vdr[] = "[input_vdr] "; #define LOG_MODULENAME log_module_input_vdr #define SysLogLevel iSysLogLevel @@ -582,7 +582,10 @@ static void scr_tuning_set_paused(vdr_input_plugin_t *this) this->scr_tuning = SCR_TUNING_PAUSED; /* marked as paused */ this->scr->set_speed_tuning(this->scr, 1.0); - this->scr->set_buffering(this->scr, 1); + + if (_x_get_fine_speed(this->stream) != XINE_SPEED_PAUSE) { + _x_set_fine_speed(this->stream, XINE_SPEED_PAUSE); + } this->I_frames = this->P_frames = this->B_frames = 0; } @@ -600,9 +603,15 @@ static void reset_scr_tuning(vdr_input_plugin_t *this) this->scr_tuning = SCR_TUNING_OFF; /* marked as normal */ this->scr->set_speed_tuning(this->scr, 1.0); - this->scr->set_buffering(this->scr, 0); - //this->scr->scr.set_fine_speed(&this->scr->scr, XINE_FINE_SPEED_NORMAL); + if (_x_get_fine_speed(this->stream) != XINE_FINE_SPEED_NORMAL) { + if (!this->is_paused) + _x_set_fine_speed(this->stream, XINE_FINE_SPEED_NORMAL); + else + LOGDBG("reset_scr_tuning: playback is paused"); + } + + this->scr->scr.set_fine_speed(&this->scr->scr, XINE_FINE_SPEED_NORMAL); } } @@ -1665,7 +1674,8 @@ static void set_trick_speed(vdr_input_plugin_t *this, int speed, int backwards) else speed = XINE_FINE_SPEED_NORMAL * (-speed); - if (_x_get_fine_speed(this->stream) != speed) { + if (this->scr_tuning != SCR_TUNING_PAUSED && + _x_get_fine_speed(this->stream) != speed) { _x_set_fine_speed (this->stream, speed); } |
