linuxdvb: fix broken PID installation in satconf (was not passing to lfe)

This commit is contained in:
Adam Sutton 2013-10-03 16:22:27 +01:00
parent de2c8e5b08
commit 9abe8e0c48
3 changed files with 8 additions and 13 deletions

View file

@ -589,10 +589,11 @@ dvb_pat_callback
} else if (pid) {
tvhdebug("pat", " sid %04X (%d) on pid %04X (%d)", sid, sid, pid, pid);
int save = 0;
if (mpegts_service_find(mm, sid, pid, 1, &save))
if (save)
if (mpegts_service_find(mm, sid, pid, 1, &save)) {
printf("ADD PMT HANDLER %04X %04X\n", sid, pid);
mpegts_table_add(mm, DVB_PMT_BASE, DVB_PMT_MASK, dvb_pmt_callback,
NULL, "pmt", MT_CRC | MT_QUICKREQ, pid);
}
}
/* Next */

View file

@ -146,11 +146,6 @@ struct linuxdvb_frontend
*/
int lfe_fullmux;
int lfe_noclosefe;
/*
* Callbacks
*/
int (*lfe_open_pid) (linuxdvb_frontend_t *lfe, int pid, const char *name);
};
linuxdvb_frontend_t *

View file

@ -559,13 +559,12 @@ linuxdvb_satconf_get_grace
return r;
}
static int
static mpegts_pid_t *
linuxdvb_satconf_open_pid
( linuxdvb_frontend_t *lfe, int pid, const char *name )
( mpegts_input_t *mi, mpegts_mux_t *mm, int pid, int type, void *owner )
{
linuxdvb_satconf_t *ls = (linuxdvb_satconf_t*)lfe;
lfe = (linuxdvb_frontend_t*)ls->ls_frontend;
return lfe->lfe_open_pid(lfe, pid, name);
linuxdvb_satconf_t *ls = (linuxdvb_satconf_t*)mi;
return ls->ls_frontend->mi_open_pid(ls->ls_frontend, mm, pid, type, owner);
}
/* **************************************************************************
@ -593,7 +592,7 @@ linuxdvb_satconf_create0
ls->mi_started_mux = linuxdvb_satconf_started_mux;
ls->mi_stopped_mux = linuxdvb_satconf_stopped_mux;
ls->mi_has_subscription = linuxdvb_satconf_has_subscription;
ls->lfe_open_pid = linuxdvb_satconf_open_pid;
ls->mi_open_pid = linuxdvb_satconf_open_pid;
/* Config */
if (conf) {