dvb: Detect more issues with configuration file

Report useful errors when:
* file is present but empty
* requested channel is not present
This commit is contained in:
Edward Hervey 2012-06-19 10:35:48 +02:00 committed by Sebastian Dröge
parent 068598e237
commit d7ad4ce890

View file

@ -29,7 +29,12 @@
#include "parsechannels.h" #include "parsechannels.h"
/* this will do zap style channels.conf only for the moment*/ /* TODO:
* Store the channels hash table around instead of constantly parsing it
* Detect when the file changed on disk
*/
/* this will do zap style channels.conf only for the moment */
static GHashTable * static GHashTable *
parse_channels_conf_from_file (GstElement * dvbbasebin, const gchar * filename) parse_channels_conf_from_file (GstElement * dvbbasebin, const gchar * filename)
{ {
@ -47,7 +52,7 @@ parse_channels_conf_from_file (GstElement * dvbbasebin, const gchar * filename)
const gchar *cable[] = { "inversion", "symbol-rate", "code-rate-hp", const gchar *cable[] = { "inversion", "symbol-rate", "code-rate-hp",
"modulation" "modulation"
}; };
int i; int i, parsedchannels = 0;
GHashTable *res; GHashTable *res;
GError *err = NULL; GError *err = NULL;
@ -119,6 +124,7 @@ parse_channels_conf_from_file (GstElement * dvbbasebin, const gchar * filename)
g_hash_table_insert (params, g_strdup ("sid"), g_hash_table_insert (params, g_strdup ("sid"),
g_strdup (fields[numfields - 1])); g_strdup (fields[numfields - 1]));
g_hash_table_insert (res, g_strdup (fields[0]), params); g_hash_table_insert (res, g_strdup (fields[0]), params);
parsedchannels++;
} }
g_strfreev (fields); g_strfreev (fields);
} }
@ -127,6 +133,9 @@ parse_channels_conf_from_file (GstElement * dvbbasebin, const gchar * filename)
g_strfreev (lines); g_strfreev (lines);
g_free (contents); g_free (contents);
if (parsedchannels == 0)
goto no_channels;
return res; return res;
open_fail: open_fail:
@ -137,6 +146,14 @@ open_fail:
g_clear_error (&err); g_clear_error (&err);
return NULL; return NULL;
} }
no_channels:
{
GST_ELEMENT_ERROR (dvbbasebin, RESOURCE, READ, (NULL),
("Channels configuration file doesn't contain any channels"));
g_hash_table_unref (res);
return NULL;
}
} }
static gboolean static gboolean
@ -159,8 +176,10 @@ gboolean
set_properties_for_channel (GstElement * dvbbasebin, const gchar * channel_name) set_properties_for_channel (GstElement * dvbbasebin, const gchar * channel_name)
{ {
gboolean ret = FALSE; gboolean ret = FALSE;
GHashTable *channels; GHashTable *channels, *params;
gchar *filename; gchar *filename;
gchar *type;
const gchar *adapter;
filename = g_strdup (g_getenv ("GST_DVB_CHANNELS_CONF")); filename = g_strdup (g_getenv ("GST_DVB_CHANNELS_CONF"));
if (filename == NULL) { if (filename == NULL) {
@ -173,227 +192,236 @@ set_properties_for_channel (GstElement * dvbbasebin, const gchar * channel_name)
channels = parse_channels_conf_from_file (dvbbasebin, filename); channels = parse_channels_conf_from_file (dvbbasebin, filename);
g_free (filename); g_free (filename);
if (channels) { if (!channels)
GHashTable *params = g_hash_table_lookup (channels, goto beach;
channel_name);
if (params) { params = g_hash_table_lookup (channels, channel_name);
gchar *type;
const gchar *adapter;
g_object_set (dvbbasebin, "program-numbers", if (!params)
g_hash_table_lookup (params, "sid"), NULL); goto unknown_channel;
/* check if it is terrestrial or satellite */
adapter = g_getenv ("GST_DVB_ADAPTER");
if (adapter)
g_object_set (dvbbasebin, "adapter", atoi (adapter), NULL);
g_object_set (dvbbasebin, "frequency",
atoi (g_hash_table_lookup (params, "frequency")), NULL);
type = g_hash_table_lookup (params, "type");
if (strcmp (type, "terrestrial") == 0) {
gchar *val;
val = g_hash_table_lookup (params, "inversion"); g_object_set (dvbbasebin, "program-numbers",
if (strcmp (val, "INVERSION_OFF") == 0) g_hash_table_lookup (params, "sid"), NULL);
g_object_set (dvbbasebin, "inversion", 0, NULL); /* check if it is terrestrial or satellite */
else if (strcmp (val, "INVERSION_ON") == 0) adapter = g_getenv ("GST_DVB_ADAPTER");
g_object_set (dvbbasebin, "inversion", 1, NULL); if (adapter)
else g_object_set (dvbbasebin, "adapter", atoi (adapter), NULL);
g_object_set (dvbbasebin, "inversion", 2, NULL); g_object_set (dvbbasebin, "frequency",
atoi (g_hash_table_lookup (params, "frequency")), NULL);
type = g_hash_table_lookup (params, "type");
if (strcmp (type, "terrestrial") == 0) {
gchar *val;
val = g_hash_table_lookup (params, "bandwidth"); val = g_hash_table_lookup (params, "inversion");
if (strcmp (val, "BANDWIDTH_8_MHZ") == 0) if (strcmp (val, "INVERSION_OFF") == 0)
g_object_set (dvbbasebin, "bandwidth", 0, NULL); g_object_set (dvbbasebin, "inversion", 0, NULL);
else if (strcmp (val, "BANDWIDTH_7_MHZ") == 0) else if (strcmp (val, "INVERSION_ON") == 0)
g_object_set (dvbbasebin, "bandwidth", 1, NULL); g_object_set (dvbbasebin, "inversion", 1, NULL);
else if (strcmp (val, "BANDWIDTH_6_MHZ") == 0) else
g_object_set (dvbbasebin, "bandwidth", 2, NULL); g_object_set (dvbbasebin, "inversion", 2, NULL);
else
g_object_set (dvbbasebin, "bandwidth", 3, NULL);
val = g_hash_table_lookup (params, "code-rate-hp"); val = g_hash_table_lookup (params, "bandwidth");
if (strcmp (val, "FEC_NONE") == 0) if (strcmp (val, "BANDWIDTH_8_MHZ") == 0)
g_object_set (dvbbasebin, "code-rate-hp", 0, NULL); g_object_set (dvbbasebin, "bandwidth", 0, NULL);
else if (strcmp (val, "FEC_1_2") == 0) else if (strcmp (val, "BANDWIDTH_7_MHZ") == 0)
g_object_set (dvbbasebin, "code-rate-hp", 1, NULL); g_object_set (dvbbasebin, "bandwidth", 1, NULL);
else if (strcmp (val, "FEC_2_3") == 0) else if (strcmp (val, "BANDWIDTH_6_MHZ") == 0)
g_object_set (dvbbasebin, "code-rate-hp", 2, NULL); g_object_set (dvbbasebin, "bandwidth", 2, NULL);
else if (strcmp (val, "FEC_3_4") == 0) else
g_object_set (dvbbasebin, "code-rate-hp", 3, NULL); g_object_set (dvbbasebin, "bandwidth", 3, NULL);
else if (strcmp (val, "FEC_4_5") == 0)
g_object_set (dvbbasebin, "code-rate-hp", 4, NULL);
else if (strcmp (val, "FEC_5_6") == 0)
g_object_set (dvbbasebin, "code-rate-hp", 5, NULL);
else if (strcmp (val, "FEC_6_7") == 0)
g_object_set (dvbbasebin, "code-rate-hp", 6, NULL);
else if (strcmp (val, "FEC_7_8") == 0)
g_object_set (dvbbasebin, "code-rate-hp", 7, NULL);
else if (strcmp (val, "FEC_8_9") == 0)
g_object_set (dvbbasebin, "code-rate-hp", 8, NULL);
else
g_object_set (dvbbasebin, "code-rate-hp", 9, NULL);
val = g_hash_table_lookup (params, "code-rate-lp"); val = g_hash_table_lookup (params, "code-rate-hp");
if (strcmp (val, "FEC_NONE") == 0) if (strcmp (val, "FEC_NONE") == 0)
g_object_set (dvbbasebin, "code-rate-lp", 0, NULL); g_object_set (dvbbasebin, "code-rate-hp", 0, NULL);
else if (strcmp (val, "FEC_1_2") == 0) else if (strcmp (val, "FEC_1_2") == 0)
g_object_set (dvbbasebin, "code-rate-lp", 1, NULL); g_object_set (dvbbasebin, "code-rate-hp", 1, NULL);
else if (strcmp (val, "FEC_2_3") == 0) else if (strcmp (val, "FEC_2_3") == 0)
g_object_set (dvbbasebin, "code-rate-lp", 2, NULL); g_object_set (dvbbasebin, "code-rate-hp", 2, NULL);
else if (strcmp (val, "FEC_3_4") == 0) else if (strcmp (val, "FEC_3_4") == 0)
g_object_set (dvbbasebin, "code-rate-lp", 3, NULL); g_object_set (dvbbasebin, "code-rate-hp", 3, NULL);
else if (strcmp (val, "FEC_4_5") == 0) else if (strcmp (val, "FEC_4_5") == 0)
g_object_set (dvbbasebin, "code-rate-lp", 4, NULL); g_object_set (dvbbasebin, "code-rate-hp", 4, NULL);
else if (strcmp (val, "FEC_5_6") == 0) else if (strcmp (val, "FEC_5_6") == 0)
g_object_set (dvbbasebin, "code-rate-lp", 5, NULL); g_object_set (dvbbasebin, "code-rate-hp", 5, NULL);
else if (strcmp (val, "FEC_6_7") == 0) else if (strcmp (val, "FEC_6_7") == 0)
g_object_set (dvbbasebin, "code-rate-lp", 6, NULL); g_object_set (dvbbasebin, "code-rate-hp", 6, NULL);
else if (strcmp (val, "FEC_7_8") == 0) else if (strcmp (val, "FEC_7_8") == 0)
g_object_set (dvbbasebin, "code-rate-lp", 7, NULL); g_object_set (dvbbasebin, "code-rate-hp", 7, NULL);
else if (strcmp (val, "FEC_8_9") == 0) else if (strcmp (val, "FEC_8_9") == 0)
g_object_set (dvbbasebin, "code-rate-lp", 8, NULL); g_object_set (dvbbasebin, "code-rate-hp", 8, NULL);
else else
g_object_set (dvbbasebin, "code-rate-lp", 9, NULL); g_object_set (dvbbasebin, "code-rate-hp", 9, NULL);
val = g_hash_table_lookup (params, "modulation"); val = g_hash_table_lookup (params, "code-rate-lp");
if (strcmp (val, "QPSK") == 0) if (strcmp (val, "FEC_NONE") == 0)
g_object_set (dvbbasebin, "modulation", 0, NULL); g_object_set (dvbbasebin, "code-rate-lp", 0, NULL);
else if (strcmp (val, "QAM_16") == 0) else if (strcmp (val, "FEC_1_2") == 0)
g_object_set (dvbbasebin, "modulation", 1, NULL); g_object_set (dvbbasebin, "code-rate-lp", 1, NULL);
else if (strcmp (val, "QAM_32") == 0) else if (strcmp (val, "FEC_2_3") == 0)
g_object_set (dvbbasebin, "modulation", 2, NULL); g_object_set (dvbbasebin, "code-rate-lp", 2, NULL);
else if (strcmp (val, "QAM_64") == 0) else if (strcmp (val, "FEC_3_4") == 0)
g_object_set (dvbbasebin, "modulation", 3, NULL); g_object_set (dvbbasebin, "code-rate-lp", 3, NULL);
else if (strcmp (val, "QAM_128") == 0) else if (strcmp (val, "FEC_4_5") == 0)
g_object_set (dvbbasebin, "modulation", 4, NULL); g_object_set (dvbbasebin, "code-rate-lp", 4, NULL);
else if (strcmp (val, "QAM_256") == 0) else if (strcmp (val, "FEC_5_6") == 0)
g_object_set (dvbbasebin, "modulation", 5, NULL); g_object_set (dvbbasebin, "code-rate-lp", 5, NULL);
else else if (strcmp (val, "FEC_6_7") == 0)
g_object_set (dvbbasebin, "modulation", 6, NULL); g_object_set (dvbbasebin, "code-rate-lp", 6, NULL);
else if (strcmp (val, "FEC_7_8") == 0)
g_object_set (dvbbasebin, "code-rate-lp", 7, NULL);
else if (strcmp (val, "FEC_8_9") == 0)
g_object_set (dvbbasebin, "code-rate-lp", 8, NULL);
else
g_object_set (dvbbasebin, "code-rate-lp", 9, NULL);
val = g_hash_table_lookup (params, "transmission-mode"); val = g_hash_table_lookup (params, "modulation");
if (strcmp (val, "TRANSMISSION_MODE_2K") == 0) if (strcmp (val, "QPSK") == 0)
g_object_set (dvbbasebin, "trans-mode", 0, NULL); g_object_set (dvbbasebin, "modulation", 0, NULL);
else if (strcmp (val, "TRANSMISSION_MODE_8K") == 0) else if (strcmp (val, "QAM_16") == 0)
g_object_set (dvbbasebin, "trans-mode", 1, NULL); g_object_set (dvbbasebin, "modulation", 1, NULL);
else else if (strcmp (val, "QAM_32") == 0)
g_object_set (dvbbasebin, "trans-mode", 2, NULL); g_object_set (dvbbasebin, "modulation", 2, NULL);
else if (strcmp (val, "QAM_64") == 0)
g_object_set (dvbbasebin, "modulation", 3, NULL);
else if (strcmp (val, "QAM_128") == 0)
g_object_set (dvbbasebin, "modulation", 4, NULL);
else if (strcmp (val, "QAM_256") == 0)
g_object_set (dvbbasebin, "modulation", 5, NULL);
else
g_object_set (dvbbasebin, "modulation", 6, NULL);
val = g_hash_table_lookup (params, "guard"); val = g_hash_table_lookup (params, "transmission-mode");
if (strcmp (val, "GUARD_INTERVAL_1_32") == 0) if (strcmp (val, "TRANSMISSION_MODE_2K") == 0)
g_object_set (dvbbasebin, "guard", 0, NULL); g_object_set (dvbbasebin, "trans-mode", 0, NULL);
else if (strcmp (val, "GUARD_INTERVAL_1_16") == 0) else if (strcmp (val, "TRANSMISSION_MODE_8K") == 0)
g_object_set (dvbbasebin, "guard", 1, NULL); g_object_set (dvbbasebin, "trans-mode", 1, NULL);
else if (strcmp (val, "GUARD_INTERVAL_1_8") == 0) else
g_object_set (dvbbasebin, "guard", 2, NULL); g_object_set (dvbbasebin, "trans-mode", 2, NULL);
else if (strcmp (val, "GUARD_INTERVAL_1_4") == 0)
g_object_set (dvbbasebin, "guard", 3, NULL);
else
g_object_set (dvbbasebin, "guard", 4, NULL);
val = g_hash_table_lookup (params, "hierarchy"); val = g_hash_table_lookup (params, "guard");
if (strcmp (val, "HIERARCHY_NONE") == 0) if (strcmp (val, "GUARD_INTERVAL_1_32") == 0)
g_object_set (dvbbasebin, "hierarchy", 0, NULL); g_object_set (dvbbasebin, "guard", 0, NULL);
else if (strcmp (val, "HIERARCHY_1") == 0) else if (strcmp (val, "GUARD_INTERVAL_1_16") == 0)
g_object_set (dvbbasebin, "hierarchy", 1, NULL); g_object_set (dvbbasebin, "guard", 1, NULL);
else if (strcmp (val, "HIERARCHY_2") == 0) else if (strcmp (val, "GUARD_INTERVAL_1_8") == 0)
g_object_set (dvbbasebin, "hierarchy", 2, NULL); g_object_set (dvbbasebin, "guard", 2, NULL);
else if (strcmp (val, "HIERARCHY_4") == 0) else if (strcmp (val, "GUARD_INTERVAL_1_4") == 0)
g_object_set (dvbbasebin, "hierarchy", 3, NULL); g_object_set (dvbbasebin, "guard", 3, NULL);
else else
g_object_set (dvbbasebin, "hierarchy", 4, NULL); g_object_set (dvbbasebin, "guard", 4, NULL);
ret = TRUE; val = g_hash_table_lookup (params, "hierarchy");
} else if (strcmp (type, "satellite") == 0) { if (strcmp (val, "HIERARCHY_NONE") == 0)
gchar *val; g_object_set (dvbbasebin, "hierarchy", 0, NULL);
else if (strcmp (val, "HIERARCHY_1") == 0)
g_object_set (dvbbasebin, "hierarchy", 1, NULL);
else if (strcmp (val, "HIERARCHY_2") == 0)
g_object_set (dvbbasebin, "hierarchy", 2, NULL);
else if (strcmp (val, "HIERARCHY_4") == 0)
g_object_set (dvbbasebin, "hierarchy", 3, NULL);
else
g_object_set (dvbbasebin, "hierarchy", 4, NULL);
ret = TRUE; ret = TRUE;
} else if (strcmp (type, "satellite") == 0) {
gchar *val;
val = g_hash_table_lookup (params, "polarity"); ret = TRUE;
if (val)
g_object_set (dvbbasebin, "polarity", val, NULL);
else
ret = FALSE;
val = g_hash_table_lookup (params, "diseqc-source"); val = g_hash_table_lookup (params, "polarity");
if (val) if (val)
g_object_set (dvbbasebin, "diseqc-source", atoi (val), NULL); g_object_set (dvbbasebin, "polarity", val, NULL);
else
ret = FALSE;
val = g_hash_table_lookup (params, "symbol-rate"); val = g_hash_table_lookup (params, "diseqc-source");
if (val) if (val)
g_object_set (dvbbasebin, "symbol-rate", atoi (val), NULL); g_object_set (dvbbasebin, "diseqc-source", atoi (val), NULL);
else
ret = FALSE;
} else if (strcmp (type, "cable") == 0) {
gchar *val;
ret = TRUE; val = g_hash_table_lookup (params, "symbol-rate");
val = g_hash_table_lookup (params, "symbol-rate"); if (val)
if (val) g_object_set (dvbbasebin, "symbol-rate", atoi (val), NULL);
g_object_set (dvbbasebin, "symbol-rate", atoi (val) / 1000, NULL); else
val = g_hash_table_lookup (params, "modulation"); ret = FALSE;
if (strcmp (val, "QPSK") == 0) } else if (strcmp (type, "cable") == 0) {
g_object_set (dvbbasebin, "modulation", 0, NULL); gchar *val;
else if (strcmp (val, "QAM_16") == 0)
g_object_set (dvbbasebin, "modulation", 1, NULL);
else if (strcmp (val, "QAM_32") == 0)
g_object_set (dvbbasebin, "modulation", 2, NULL);
else if (strcmp (val, "QAM_64") == 0)
g_object_set (dvbbasebin, "modulation", 3, NULL);
else if (strcmp (val, "QAM_128") == 0)
g_object_set (dvbbasebin, "modulation", 4, NULL);
else if (strcmp (val, "QAM_256") == 0)
g_object_set (dvbbasebin, "modulation", 5, NULL);
else
g_object_set (dvbbasebin, "modulation", 6, NULL);
val = g_hash_table_lookup (params, "code-rate-hp");
if (strcmp (val, "FEC_NONE") == 0)
g_object_set (dvbbasebin, "code-rate-hp", 0, NULL);
else if (strcmp (val, "FEC_1_2") == 0)
g_object_set (dvbbasebin, "code-rate-hp", 1, NULL);
else if (strcmp (val, "FEC_2_3") == 0)
g_object_set (dvbbasebin, "code-rate-hp", 2, NULL);
else if (strcmp (val, "FEC_3_4") == 0)
g_object_set (dvbbasebin, "code-rate-hp", 3, NULL);
else if (strcmp (val, "FEC_4_5") == 0)
g_object_set (dvbbasebin, "code-rate-hp", 4, NULL);
else if (strcmp (val, "FEC_5_6") == 0)
g_object_set (dvbbasebin, "code-rate-hp", 5, NULL);
else if (strcmp (val, "FEC_6_7") == 0)
g_object_set (dvbbasebin, "code-rate-hp", 6, NULL);
else if (strcmp (val, "FEC_7_8") == 0)
g_object_set (dvbbasebin, "code-rate-hp", 7, NULL);
else if (strcmp (val, "FEC_8_9") == 0)
g_object_set (dvbbasebin, "code-rate-hp", 8, NULL);
else
g_object_set (dvbbasebin, "code-rate-hp", 9, NULL);
val = g_hash_table_lookup (params, "inversion");
if (strcmp (val, "INVERSION_OFF") == 0)
g_object_set (dvbbasebin, "inversion", 0, NULL);
else if (strcmp (val, "INVERSION_ON") == 0)
g_object_set (dvbbasebin, "inversion", 1, NULL);
else
g_object_set (dvbbasebin, "inversion", 2, NULL);
} else if (strcmp (type, "atsc") == 0) {
gchar *val;
ret = TRUE; ret = TRUE;
val = g_hash_table_lookup (params, "symbol-rate");
if (val)
g_object_set (dvbbasebin, "symbol-rate", atoi (val) / 1000, NULL);
val = g_hash_table_lookup (params, "modulation");
if (strcmp (val, "QPSK") == 0)
g_object_set (dvbbasebin, "modulation", 0, NULL);
else if (strcmp (val, "QAM_16") == 0)
g_object_set (dvbbasebin, "modulation", 1, NULL);
else if (strcmp (val, "QAM_32") == 0)
g_object_set (dvbbasebin, "modulation", 2, NULL);
else if (strcmp (val, "QAM_64") == 0)
g_object_set (dvbbasebin, "modulation", 3, NULL);
else if (strcmp (val, "QAM_128") == 0)
g_object_set (dvbbasebin, "modulation", 4, NULL);
else if (strcmp (val, "QAM_256") == 0)
g_object_set (dvbbasebin, "modulation", 5, NULL);
else
g_object_set (dvbbasebin, "modulation", 6, NULL);
val = g_hash_table_lookup (params, "code-rate-hp");
if (strcmp (val, "FEC_NONE") == 0)
g_object_set (dvbbasebin, "code-rate-hp", 0, NULL);
else if (strcmp (val, "FEC_1_2") == 0)
g_object_set (dvbbasebin, "code-rate-hp", 1, NULL);
else if (strcmp (val, "FEC_2_3") == 0)
g_object_set (dvbbasebin, "code-rate-hp", 2, NULL);
else if (strcmp (val, "FEC_3_4") == 0)
g_object_set (dvbbasebin, "code-rate-hp", 3, NULL);
else if (strcmp (val, "FEC_4_5") == 0)
g_object_set (dvbbasebin, "code-rate-hp", 4, NULL);
else if (strcmp (val, "FEC_5_6") == 0)
g_object_set (dvbbasebin, "code-rate-hp", 5, NULL);
else if (strcmp (val, "FEC_6_7") == 0)
g_object_set (dvbbasebin, "code-rate-hp", 6, NULL);
else if (strcmp (val, "FEC_7_8") == 0)
g_object_set (dvbbasebin, "code-rate-hp", 7, NULL);
else if (strcmp (val, "FEC_8_9") == 0)
g_object_set (dvbbasebin, "code-rate-hp", 8, NULL);
else
g_object_set (dvbbasebin, "code-rate-hp", 9, NULL);
val = g_hash_table_lookup (params, "inversion");
if (strcmp (val, "INVERSION_OFF") == 0)
g_object_set (dvbbasebin, "inversion", 0, NULL);
else if (strcmp (val, "INVERSION_ON") == 0)
g_object_set (dvbbasebin, "inversion", 1, NULL);
else
g_object_set (dvbbasebin, "inversion", 2, NULL);
} else if (strcmp (type, "atsc") == 0) {
gchar *val;
val = g_hash_table_lookup (params, "modulation"); ret = TRUE;
if (strcmp (val, "QAM_64") == 0)
g_object_set (dvbbasebin, "modulation", 3, NULL); val = g_hash_table_lookup (params, "modulation");
else if (strcmp (val, "QAM_256") == 0) if (strcmp (val, "QAM_64") == 0)
g_object_set (dvbbasebin, "modulation", 5, NULL); g_object_set (dvbbasebin, "modulation", 3, NULL);
else if (strcmp (val, "8VSB") == 0) else if (strcmp (val, "QAM_256") == 0)
g_object_set (dvbbasebin, "modulation", 7, NULL); g_object_set (dvbbasebin, "modulation", 5, NULL);
else if (strcmp (val, "16VSB") == 0) else if (strcmp (val, "8VSB") == 0)
g_object_set (dvbbasebin, "modulation", 8, NULL); g_object_set (dvbbasebin, "modulation", 7, NULL);
else else if (strcmp (val, "16VSB") == 0)
ret = FALSE; g_object_set (dvbbasebin, "modulation", 8, NULL);
} else
} ret = FALSE;
destroy_channels_hash (channels);
} }
destroy_channels_hash (channels);
beach:
return ret; return ret;
unknown_channel:
{
GST_ELEMENT_ERROR (dvbbasebin, RESOURCE, READ, (NULL),
("Couldn't find configuration properties for channel \"%s\"",
channel_name));
destroy_channels_hash (channels);
return FALSE;
}
} }