summaryrefslogtreecommitdiff
path: root/src/input
diff options
context:
space:
mode:
Diffstat (limited to 'src/input')
-rw-r--r--src/input/input_dvb.c8
-rw-r--r--src/input/input_v4l2.c2
-rw-r--r--src/input/net_buf_ctrl.c14
3 files changed, 15 insertions, 9 deletions
diff --git a/src/input/input_dvb.c b/src/input/input_dvb.c
index cb2c48e2c..b5833871f 100644
--- a/src/input/input_dvb.c
+++ b/src/input/input_dvb.c
@@ -2566,8 +2566,12 @@ static off_t dvb_plugin_read (input_plugin_t *this_gen,
ts_rewrite_packets (this, buf,total);
- if ((this->record_fd)&&(!this->record_paused))
- write (this->record_fd, buf, total);
+ if ((this->record_fd > -1) && (!this->record_paused))
+ if (write (this->record_fd, buf, total) != total) {
+ do_record(this);
+ xprintf(this->class->xine, XINE_VERBOSITY_LOG,
+ "input_dvb: Recording failed\n");
+ }
pthread_mutex_unlock( &this->channel_change_mutex );
diff --git a/src/input/input_v4l2.c b/src/input/input_v4l2.c
index b2938d609..7f7da68ba 100644
--- a/src/input/input_v4l2.c
+++ b/src/input/input_v4l2.c
@@ -350,7 +350,7 @@ static uint32_t v4l2_input_get_capabilities(input_plugin_t* this_gen) {
}
static const char* v4l2_input_get_mrl(input_plugin_t* this_gen) {
- v4l2_input_plugin_t* this = (v4l2_input_plugin_t*)this_gen;
+ /*v4l2_input_plugin_t* this = (v4l2_input_plugin_t*)this_gen;*/
/* HACK HACK HACK HACK */
/* So far, the only way to get the yuv_frames demuxer to work with this */
return "v4l:/";
diff --git a/src/input/net_buf_ctrl.c b/src/input/net_buf_ctrl.c
index 81165afcf..d50a6a8c4 100644
--- a/src/input/net_buf_ctrl.c
+++ b/src/input/net_buf_ctrl.c
@@ -186,19 +186,20 @@ static void dvbspeed_put (nbc_t *this, fifo_buffer_t * fifo, buf_element_t *b) {
int used, mode;
const char *name;
/* select vars */
- if (fifo == this->video_fifo) {
+ mode = b->type & BUF_MAJOR_MASK;
+ if (mode == BUF_VIDEO_BASE) {
last = &this->dvbs_video_in;
fill = &this->dvbs_video_fill;
mode = 0x71;
name = "video";
- } else if (fifo == this->audio_fifo) {
+ } else if (mode == BUF_AUDIO_BASE) {
last = &this->dvbs_audio_in;
fill = &this->dvbs_audio_fill;
mode = 0x0f;
name = "audio";
} else return;
/* update fifo fill time */
- if (b->pts && (b->decoder_flags & BUF_FLAG_FRAME_START)) {
+ if (b->pts) {
if (*last) {
diff = b->pts - *last;
if ((diff > -220000) && (diff < 220000)) *fill += diff;
@@ -261,19 +262,20 @@ static void dvbspeed_get (nbc_t *this, fifo_buffer_t * fifo, buf_element_t *b) {
int used, mode;
const char *name;
/* select vars */
- if (fifo == this->video_fifo) {
+ mode = b->type & BUF_MAJOR_MASK;
+ if (mode == BUF_VIDEO_BASE) {
last = &this->dvbs_video_out;
fill = &this->dvbs_video_fill;
mode = 0x71;
name = "video";
- } else if (fifo == this->audio_fifo) {
+ } else if (mode == BUF_AUDIO_BASE) {
last = &this->dvbs_audio_out;
fill = &this->dvbs_audio_fill;
mode = 0x0f;
name = "audio";
} else return;
/* update fifo fill time */
- if (b->pts && (b->decoder_flags & BUF_FLAG_FRAME_START)) {
+ if (b->pts) {
if (*last) {
diff = b->pts - *last;
if ((diff > -220000) && (diff < 220000)) *fill -= diff;