int32_t dmc_fe_stream_id;
dvb_fe_pls_mode_t dmc_fe_pls_mode;
uint32_t dmc_fe_pls_code;
+ uint32_t dmc_fe_data_slice;
union {
dvb_qpsk_config_t dmc_fe_qpsk;
dvb_qam_config_t dmc_fe_qam;
delsys = dvb_delsys2str(dmc->dmc_fe_delsys);
return
snprintf(buf, bufsize,
- "%s freq %d sym %d mod %s fec %s",
+ "%s freq %d sym %d mod %s fec %s ds %d plp %d",
delsys,
dmc->dmc_fe_freq,
dmc->u.dmc_fe_qam.symbol_rate,
dvb_qam2str(dmc->dmc_fe_modulation),
- dvb_fec2str(dmc->u.dmc_fe_qam.fec_inner));
+ dvb_fec2str(dmc->u.dmc_fe_qam.fec_inner),
+ dmc->dmc_fe_data_slice,
+ dmc->dmc_fe_stream_id);
}
static int
S2CMD(DTV_SYMBOL_RATE, p.u.qam.symbol_rate);
S2CMD(DTV_MODULATION, p.u.qam.modulation);
S2CMD(DTV_INNER_FEC, p.u.qam.fec_inner);
+ r = dmc->dmc_fe_stream_id != DVB_NO_STREAM_ID_FILTER ? (dmc->dmc_fe_stream_id & 0xFF) |
+ ((dmc->dmc_fe_data_slice & 0xFF)<<8) : DVB_NO_STREAM_ID_FILTER;
+#if DVB_VER_ATLEAST(5,9)
+ S2CMD(DTV_STREAM_ID, r);
+#endif
/* DVB-S */
} else if (lfe->lfe_type == DVB_TYPE_S) {
MUX_PROP_STR("fec", N_("FEC"), dvbc, fec, N_("AUTO")),
.desc = N_("The forward error correction used on the mux."),
},
+ {
+ .type = PT_INT,
+ .id = "plp_id",
+ .name = N_("PLP ID"),
+ .desc = N_("The physical layer pipe ID. "
+ "Most people will not need to change this setting."),
+ .off = offsetof(dvb_mux_t, lm_tuning.dmc_fe_stream_id),
+ .def.i = DVB_NO_STREAM_ID_FILTER,
+ },
+ {
+ .type = PT_U32,
+ .id = "data_slice",
+ .name = N_("Data slice"),
+ .desc = N_("Data slice code."),
+ .off = offsetof(dvb_mux_t, lm_tuning.dmc_fe_data_slice),
+ .def.u32 = 0,
+ .opts = PO_EXPERT
+ },
{}
}
};
MUX_PROP_STR("fec", N_("FEC"), dvbc, fec, N_("AUTO")),
.desc = N_("The forward error correction used on the mux."),
},
+ {
+ .type = PT_INT,
+ .id = "plp_id",
+ .name = N_("PLP ID"),
+ .desc = N_("The physical layer pipe ID. "
+ "Most people will not need to change this setting."),
+ .off = offsetof(dvb_mux_t, lm_tuning.dmc_fe_stream_id),
+ .def.i = DVB_NO_STREAM_ID_FILTER,
+ },
+ {
+ .type = PT_U32,
+ .id = "data_slice",
+ .name = N_("Data slice"),
+ .desc = N_("Data slice code."),
+ .off = offsetof(dvb_mux_t, lm_tuning.dmc_fe_data_slice),
+ .def.u32 = 0,
+ .opts = PO_EXPERT
+ },
{}
}
};
dmc->dmc_fe_modulation != DVB_MOD_NONE &&
dmc->dmc_fe_modulation != DVB_MOD_QAM_AUTO)
ADD(dmc_fe_modulation, mtype, "64qam");
- /* missing plp */
+ if (dmc->dmc_fe_stream_id != DVB_NO_STREAM_ID_FILTER) {
+ satip_rtsp_add_val("ds", buf, dmc->dmc_fe_data_slice & 0xff);
+ satip_rtsp_add_val("plp", buf, dmc->dmc_fe_stream_id & 0xff);
+ }
if (dmc->u.dmc_fe_qam.fec_inner != DVB_FEC_NONE &&
dmc->u.dmc_fe_qam.fec_inner != DVB_FEC_AUTO)
/* note: OctopusNet device does not handle 'fec=auto' */