]> git.sesse.net Git - vlc/commitdiff
DTV: add stream parameter for DVB-S2 (refs #12034)
authorRémi Denis-Courmont <remi@remlab.net>
Wed, 18 Feb 2015 17:40:42 +0000 (19:40 +0200)
committerRémi Denis-Courmont <remi@remlab.net>
Wed, 18 Feb 2015 17:41:55 +0000 (19:41 +0200)
modules/access/dtv/access.c
modules/access/dtv/bdagraph.cpp
modules/access/dtv/dtv.h
modules/access/dtv/linux.c

index 11f93a6d5d086950068b09735e87810a7771a005..f7d3befc2411916b73b76bbb9266dd539b9c6232 100644 (file)
@@ -151,6 +151,8 @@ static const char *const hierarchy_user[] = { N_("Automatic"),
 #define TIME_INTERLEAVING_B_TEXT N_("Layer B time interleaving")
 #define TIME_INTERLEAVING_C_TEXT N_("Layer C time interleaving")
 
+#define STREAM_ID_TEXT N_("Stream identifier")
+
 #define PILOT_TEXT N_("Pilot")
 
 #define ROLLOFF_TEXT N_("Roll-off factor")
@@ -358,6 +360,9 @@ vlc_module_begin ()
         change_safe ()
 
     set_section (N_("DVB-S2 parameters"), NULL)
+    add_integer ("dvb-stream", 0, STREAM_ID_TEXT, STREAM_ID_TEXT, false)
+        change_integer_range (0, 255)
+        change_safe ()
     add_integer ("dvb-pilot", -1, PILOT_TEXT, PILOT_TEXT, true)
         change_integer_list (auto_off_on_vlc, auto_off_on_user)
         change_safe ()
@@ -872,8 +877,9 @@ static int dvbs2_setup (vlc_object_t *obj, dvb_device_t *dev, uint64_t freq)
     uint32_t srate = var_InheritInteger (obj, "dvb-srate");
     int pilot = var_InheritInteger (obj, "dvb-pilot");
     int rolloff = var_InheritInteger (obj, "dvb-rolloff");
+    uint8_t sid = var_InheritInteger (obj, "dvb-stream");
 
-    int ret = dvb_set_dvbs2 (dev, freq, mod, srate, fec, pilot, rolloff);
+    int ret = dvb_set_dvbs2 (dev, freq, mod, srate, fec, pilot, rolloff, sid);
     if (ret == 0)
         sec_setup (obj, dev, freq);
     return ret;
index 507f6ea9f87e8cf8b68c4581b9f43be586912c75..fd33a606cfdaadcded732a3a905a0ed128115bfe 100644 (file)
@@ -209,7 +209,8 @@ int dvb_set_dvbs (dvb_device_t *d, uint64_t freq, uint32_t srate, uint32_t fec)
 }
 
 int dvb_set_dvbs2 (dvb_device_t *, uint64_t /*freq*/, const char * /*mod*/,
-                   uint32_t /*srate*/, uint32_t /*fec*/, int /*pilot*/, int /*rolloff*/)
+                   uint32_t /*srate*/, uint32_t /*fec*/, int /*pilot*/, int /*rolloff*/,
+                   uint8_t /*sid*/)
 {
     return VLC_EGENERIC;
 }
index 8a3b2fb281c7ce048d250d0b961cf0d3b1ba6305..e218076340c888e0f9e5044d9de948f7d30bd4f2 100644 (file)
@@ -75,7 +75,8 @@ int dvb_set_dvbc (dvb_device_t *, uint32_t freq, const char *mod,
 /* DVB-S */
 int dvb_set_dvbs (dvb_device_t *, uint64_t freq, uint32_t srate, uint32_t fec);
 int dvb_set_dvbs2 (dvb_device_t *, uint64_t freq, const char *mod,
-                   uint32_t srate, uint32_t fec, int pilot, int rolloff);
+                   uint32_t srate, uint32_t fec, int pilot, int rolloff,
+                   uint8_t sid);
 int dvb_set_sec (dvb_device_t *, uint64_t freq, char pol,
                  uint32_t lowf, uint32_t highf, uint32_t switchf);
 
index 4f369c0f7f8f8bf6a023ef54b7f2f4e12abcc654..46307cfcbaff22ded531e7cd9652306373e9a402 100644 (file)
@@ -888,7 +888,8 @@ int dvb_set_dvbs (dvb_device_t *d, uint64_t freq_Hz,
 }
 
 int dvb_set_dvbs2 (dvb_device_t *d, uint64_t freq_Hz, const char *modstr,
-                   uint32_t srate, uint32_t fec, int pilot, int rolloff)
+                   uint32_t srate, uint32_t fec, int pilot, int rolloff,
+                   uint8_t sid)
 {
     uint32_t freq = freq_Hz / 1000;
     unsigned mod = dvb_parse_modulation (modstr, QPSK);