summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiguel Freitas <miguelfreitas@users.sourceforge.net>2003-11-05 20:41:29 +0000
committerMiguel Freitas <miguelfreitas@users.sourceforge.net>2003-11-05 20:41:29 +0000
commit6fd3da702d0e433cd909a58010d90d2670ceb567 (patch)
treec67f0777bad664f49832b8ac9742302ed35dce57
parent47088d0aa609cfc08eb98ea13e0430f42d59b506 (diff)
downloadxine-lib-6fd3da702d0e433cd909a58010d90d2670ceb567.tar.gz
xine-lib-6fd3da702d0e433cd909a58010d90d2670ceb567.tar.bz2
Jeroen's patch: avoid pausing the scr provider directly (doing so may freeze
xine in stop) CVS patchset: 5694 CVS date: 2003/11/05 20:41:29
-rw-r--r--src/input/input_v4l.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/input/input_v4l.c b/src/input/input_v4l.c
index 663543cf4..141277362 100644
--- a/src/input/input_v4l.c
+++ b/src/input/input_v4l.c
@@ -1179,10 +1179,14 @@ static int v4l_adjust_realtime_speed(v4l_input_plugin_t *this, fifo_buffer_t *fi
PRINT("Buffer is empty, pausing playback (used: %d, num_free: %d)\r\n",
num_used, num_free);
- this->scr_tunning = SCR_PAUSED;
- pvrscr_speed_tunning(this->scr, 0.0);
+ this->stream->xine->clock->set_speed (this->stream->xine->clock, XINE_SPEED_PAUSE);
+ this->stream->xine->clock->set_option (this->stream->xine->clock, CLOCK_SCR_ADJUSTABLE, 0);
if (this->stream->audio_out != NULL)
- this->stream->audio_out->set_property(this->stream->audio_out, AO_PROP_PAUSED, 2);
+ this->stream->audio_out->set_property(this->stream->audio_out, AO_PROP_PAUSED, 2);
+
+ this->scr_tunning = SCR_PAUSED;
+/* pvrscr_speed_tunning(this->scr, 0.0); */
+
} else
if (num_free <= 1 && scr_tunning != SCR_SKIP) {
this->scr_tunning = SCR_SKIP;
@@ -1199,7 +1203,10 @@ static int v4l_adjust_realtime_speed(v4l_input_plugin_t *this, fifo_buffer_t *fi
this->scr_tunning = 0;
- pvrscr_speed_tunning(this->scr, 1.0);
+ pvrscr_speed_tunning(this->scr, 1.0);
+
+ this->stream->xine->clock->set_speed (this->stream->xine->clock, XINE_SPEED_NORMAL);
+ this->stream->xine->clock->set_option (this->stream->xine->clock, CLOCK_SCR_ADJUSTABLE, 1);
if (this->stream->audio_out != NULL)
this->stream->audio_out->set_property(this->stream->audio_out, AO_PROP_PAUSED, 0);
}