/** * mod_dvb * ------- * Simple DVB-Streaming via Apache 2.0 * * This work is distributed within the terms of * creative commons attribution-share alike 2.0 germany * * See http://creativecommons.org/licenses/by-sa/2.0/ for more information * * @author Bernd Holzmueller * @revision 01 * @license http://creativecommons.org/licenses/by-sa/2.0/de/ Creative Commons Attribution-Share Alike 2.0 Germany * @homepage http://oss.tiggerswelt.net/mod_dvb/ * @copyright Copyright © 2008 tiggersWelt.net */ #include #include #include typedef struct { char *name; int value; } dvb_frontend_param; static const dvb_frontend_param dvb_inversions [] = { { "INVERSION_OFF", INVERSION_OFF }, { "INVERSION_ON", INVERSION_ON }, { "INVERSION_AUTO", INVERSION_AUTO } }; static const dvb_frontend_param dvb_fecs [] = { { "FEC_1_2", FEC_1_2 }, { "FEC_2_3", FEC_2_3 }, { "FEC_3_4", FEC_3_4 }, { "FEC_4_5", FEC_4_5 }, { "FEC_5_6", FEC_5_6 }, { "FEC_6_7", FEC_6_7 }, { "FEC_7_8", FEC_7_8 }, { "FEC_8_9", FEC_8_9 }, { "FEC_AUTO", FEC_AUTO }, { "FEC_NONE", FEC_NONE } }; static const dvb_frontend_param dvb_modulations [] = { { "QPSK", QPSK }, { "QAM_16", QAM_16 }, { "QAM_32", QAM_32 }, { "QAM_64", QAM_64 }, { "QAM_128", QAM_128 }, { "QAM_256", QAM_256 }, { "QAM_AUTO", QAM_AUTO }, { "8VSB", VSB_8 }, { "16VSB", VSB_16 } }; static const dvb_frontend_param bw_name [] = { { "BANDWIDTH_8_MHZ", BANDWIDTH_8_MHZ }, { "BANDWIDTH_7_MHZ", BANDWIDTH_7_MHZ }, { "BANDWIDTH_6_MHZ", BANDWIDTH_6_MHZ }, { "BANDWIDTH_AUTO", BANDWIDTH_AUTO } }; static const dvb_frontend_param mode_name [] = { { "TRANSMISSION_MODE_2K", TRANSMISSION_MODE_2K }, { "TRANSMISSION_MODE_8K", TRANSMISSION_MODE_8K }, { "TRANSMISSION_MODE_AUTO", TRANSMISSION_MODE_AUTO } }; static const dvb_frontend_param guard_name [] = { { "GUARD_INTERVAL_1_32", GUARD_INTERVAL_1_32 }, { "GUARD_INTERVAL_1_16", GUARD_INTERVAL_1_16 }, { "GUARD_INTERVAL_1_8", GUARD_INTERVAL_1_8 }, { "GUARD_INTERVAL_1_4", GUARD_INTERVAL_1_4 }, { "GUARD_INTERVAL_AUTO", GUARD_INTERVAL_AUTO } }; static const dvb_frontend_param hierarchy_name [] = { { "HIERARCHY_NONE", HIERARCHY_NONE }, { "HIERARCHY_1", HIERARCHY_1 }, { "HIERARCHY_2", HIERARCHY_2 }, { "HIERARCHY_4", HIERARCHY_4 }, { "HIERARCHY_AUTO", HIERARCHY_AUTO } }; typedef struct { char *name; int index; /* Common DVB Settings */ fe_type_t type; __u32 freq; fe_spectral_inversion_t inversion; __u32 srate; fe_code_rate_t fec; fe_modulation_t mod; fe_bandwidth_t bandwidth; fe_code_rate_t rHP; fe_code_rate_t rLP; fe_modulation_t constellation; fe_transmit_mode_t mode; fe_guard_interval_t guard; fe_hierarchy_t hierarchy; char *polarity; int sat_number; int apid, vpid; void *next; } dvb_channel;