diff options
author | Michael Krufky <mkrufky@linuxtv.org> | 2008-08-18 11:13:07 +0000 |
---|---|---|
committer | Zaheer Abbas Merali <zaheerabbas@merali.org> | 2008-08-18 11:13:07 +0000 |
commit | e2c08fe7360b03477ccbeef57dab648cfe2874aa (patch) | |
tree | 5523cccb325a30d9a75e0bb000f4787f5758bb8e /sys/dvb/parsechannels.c | |
parent | cbc51271903c1e88b142b7d8de4e3fb558009fcc (diff) | |
download | gst-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.c | 25 |
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); |