summaryrefslogtreecommitdiffstats
path: root/sys/dvb/parsechannels.c
diff options
context:
space:
mode:
authorMichael Krufky <mkrufky@linuxtv.org>2008-08-18 11:13:07 +0000
committerZaheer Abbas Merali <zaheerabbas@merali.org>2008-08-18 11:13:07 +0000
commite2c08fe7360b03477ccbeef57dab648cfe2874aa (patch)
tree5523cccb325a30d9a75e0bb000f4787f5758bb8e /sys/dvb/parsechannels.c
parentcbc51271903c1e88b142b7d8de4e3fb558009fcc (diff)
downloadgst-plugins-bad-e2c08fe7360b03477ccbeef57dab648cfe2874aa.tar.gz
gst-plugins-bad-e2c08fe7360b03477ccbeef57dab648cfe2874aa.tar.bz2
gst-plugins-bad-e2c08fe7360b03477ccbeef57dab648cfe2874aa.zip
sys/dvb/: Add ATSC tunning and channels.conf parsing support.
Original commit message from CVS: patch by: Michael Krufky * sys/dvb/gstdvbsrc.c: * sys/dvb/parsechannels.c: Add ATSC tunning and channels.conf parsing support. Fixes #537455
Diffstat (limited to 'sys/dvb/parsechannels.c')
-rw-r--r--sys/dvb/parsechannels.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/sys/dvb/parsechannels.c b/sys/dvb/parsechannels.c
index 0bb7d898..ed07e537 100644
--- a/sys/dvb/parsechannels.c
+++ b/sys/dvb/parsechannels.c
@@ -101,6 +101,15 @@ parse_channels_conf_from_file (const gchar * filename)
g_hash_table_insert (params, g_strdup ("frequency"),
g_strdup (fields[1]));
parsed = TRUE;
+ } else if (numfields == 6) {
+ /* atsc (vsb/qam) */
+ g_hash_table_insert (params, g_strdup ("type"), g_strdup ("atsc"));
+ g_hash_table_insert (params, g_strdup ("modulation"),
+ g_strdup (fields[2]));
+
+ g_hash_table_insert (params, g_strdup ("frequency"),
+ g_strdup (fields[1]));
+ parsed = TRUE;
}
if (parsed) {
g_hash_table_insert (params, g_strdup ("sid"),
@@ -352,6 +361,22 @@ set_properties_for_channel (GObject * dvbbasebin, const gchar * channel_name)
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;
+
+ val = g_hash_table_lookup (params, "modulation");
+ if (strcmp (val, "QAM_64") == 0)
+ g_object_set (dvbbasebin, "modulation", 3, NULL);
+ else if (strcmp (val, "QAM_256") == 0)
+ g_object_set (dvbbasebin, "modulation", 5, NULL);
+ else if (strcmp (val, "8VSB") == 0)
+ g_object_set (dvbbasebin, "modulation", 7, NULL);
+ else if (strcmp (val, "16VSB") == 0)
+ g_object_set (dvbbasebin, "modulation", 8, NULL);
+ else
+ ret = FALSE;
}
}
destroy_channels_hash (channels);