]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
linuxdvb: add DVB-S2X parameters
authorsmp79 <sergey79@gmail.com>
Thu, 21 Dec 2023 21:33:53 +0000 (00:33 +0300)
committerFlole998 <Flole998@users.noreply.github.com>
Fri, 5 Jan 2024 04:58:31 +0000 (05:58 +0100)
src/input/mpegts/dvb.h
src/input/mpegts/dvb_support.c
src/input/mpegts/linuxdvb/linuxdvb_frontend.c
src/input/mpegts/mpegts_mux_dvb.c

index 3f9411eb507f779188efec42eeeabe84bf0d9acd..311e27cd514ad7664e3c791184415cf2b6468666 100644 (file)
@@ -446,6 +446,7 @@ typedef enum dvb_fe_code_rate {
   DVB_FEC_AUTO,
   DVB_FEC_1_2   =  102,
   DVB_FEC_1_3   =  103,
+  DVB_FEC_1_4   =  104,
   DVB_FEC_1_5   =  105,
   DVB_FEC_2_3   =  203,
   DVB_FEC_2_5   =  205,
@@ -491,6 +492,8 @@ typedef enum dvb_fe_modulation {
   DVB_MOD_QAM_64     =  3064,
   DVB_MOD_QAM_128    =  3128,
   DVB_MOD_QAM_256    =  3256,
+  DVB_MOD_QAM_1024   =  31024,
+  DVB_MOD_QAM_4096   =  34096,
   DVB_MOD_VSB_8      =  4008,
   DVB_MOD_VSB_16     =  4016,
   DVB_MOD_PSK_8      =  5008,
@@ -567,6 +570,9 @@ typedef enum dvb_fe_pilot {
 typedef enum dvb_fe_rolloff {
   DVB_ROLLOFF_NONE       =   0,
   DVB_ROLLOFF_AUTO,
+  DVB_ROLLOFF_5          = 50,
+  DVB_ROLLOFF_10         = 100,
+  DVB_ROLLOFF_15         = 150,
   DVB_ROLLOFF_20         = 200,
   DVB_ROLLOFF_25         = 250,
   DVB_ROLLOFF_35         = 350,
index d73673126748adf5a8b5b75532e18b47451231df..762ddb341ebc52db763c998358430972c31d45c3 100644 (file)
@@ -744,6 +744,9 @@ const char *dvb_rolloff2str(int p)
 int dvb_str2rolloff(const char *p)
 {
   static int rolloff_table[] = {
+    DVB_ROLLOFF_5,
+    DVB_ROLLOFF_10,
+    DVB_ROLLOFF_15,
     DVB_ROLLOFF_20,
     DVB_ROLLOFF_25,
     DVB_ROLLOFF_35,
@@ -851,6 +854,7 @@ int dvb_str2fec(const char *p)
   static int fec_table[] = {
     DVB_FEC_1_2,
     DVB_FEC_1_3,
+    DVB_FEC_1_4,
     DVB_FEC_1_5,
     DVB_FEC_2_3,
     DVB_FEC_2_5,
@@ -911,6 +915,10 @@ static const struct strtab qamtab[] = {
   { "QAM128",    DVB_MOD_QAM_128 },
   { "QAM/256",   DVB_MOD_QAM_256 },
   { "QAM256",    DVB_MOD_QAM_256 },
+  { "QAM/1024",  DVB_MOD_QAM_1024 },
+  { "QAM1024",   DVB_MOD_QAM_1024 },
+  { "QAM/4096",  DVB_MOD_QAM_4096 },
+  { "QAM4096",   DVB_MOD_QAM_4096 },
   { "VSB/8",     DVB_MOD_VSB_8 },
   { "8VSB",      DVB_MOD_VSB_8 },
   { "VSB/16",    DVB_MOD_VSB_16 },
index 8db3ef42cfcf59686494c1f34b977854dc140a44..cea5042522e1c1cba3f531e944f42d5e57c40336 100644 (file)
@@ -1621,6 +1621,28 @@ linuxdvb_frontend_tune0
     { .t = DVB_FEC_8_9,                 .l = FEC_8_9   },
 #if DVB_VER_ATLEAST(5,0)
     { .t = DVB_FEC_9_10,                .l = FEC_9_10  },
+#endif
+#if DVB_VER_ATLEAST(5,12)
+    { .t = DVB_FEC_1_3,                 .l = FEC_1_3   },
+    { .t = DVB_FEC_1_4,                 .l = FEC_1_4   },
+    { .t = DVB_FEC_4_15,                .l = FEC_4_15  },
+    { .t = DVB_FEC_5_9,                 .l = FEC_5_9   },
+    { .t = DVB_FEC_7_9,                 .l = FEC_7_9   },
+    { .t = DVB_FEC_7_15,                .l = FEC_7_15  },
+    { .t = DVB_FEC_8_15,                .l = FEC_8_15  },
+    { .t = DVB_FEC_9_20,                .l = FEC_9_20  },
+    { .t = DVB_FEC_11_15,               .l = FEC_11_15 },
+    { .t = DVB_FEC_11_20,               .l = FEC_11_20 },
+    { .t = DVB_FEC_11_45,               .l = FEC_11_45 },
+    { .t = DVB_FEC_13_18,               .l = FEC_13_18 },
+    { .t = DVB_FEC_13_45,               .l = FEC_13_45 },
+    { .t = DVB_FEC_14_45,               .l = FEC_14_45 },
+    { .t = DVB_FEC_23_36,               .l = FEC_23_36 },
+    { .t = DVB_FEC_25_36,               .l = FEC_25_36 },
+    { .t = DVB_FEC_26_45,               .l = FEC_26_45 },
+    { .t = DVB_FEC_28_45,               .l = FEC_28_45 },
+    { .t = DVB_FEC_32_45,               .l = FEC_32_45 },
+    { .t = DVB_FEC_77_90,               .l = FEC_77_90 },    
 #endif
     { .t = TABLE_EOD }
   };
@@ -1645,6 +1667,15 @@ linuxdvb_frontend_tune0
 #endif
 #if DVB_VER_ATLEAST(5,7)
     { .t = DVB_MOD_QAM_4_NR,            .l = QAM_4_NR },
+#endif
+#if DVB_VER_ATLEAST(5,12)
+    { .t = DVB_MOD_QAM_1024,            .l = QAM_1024 },
+    { .t = DVB_MOD_QAM_4096,            .l = QAM_4096 },
+    { .t = DVB_MOD_APSK_8_L,            .l = APSK_8_L },
+    { .t = DVB_MOD_APSK_16_L,           .l = APSK_16_L},
+    { .t = DVB_MOD_APSK_32_L,           .l = APSK_32_L},
+    { .t = DVB_MOD_APSK_64,             .l = APSK_64  },
+    { .t = DVB_MOD_APSK_64_L,           .l = APSK_64_L},
 #endif
     { .t = TABLE_EOD }
   };
@@ -1689,7 +1720,7 @@ linuxdvb_frontend_tune0
     { .t = DVB_HIERARCHY_4,             .l = HIERARCHY_4    },
     { .t = TABLE_EOD }
   };
-#if DVB_API_VERSION >= 5
+#if DVB_VER_ATLEAST(5,0)
   static linuxdvb_tbl_t pilot_tbl[] = {
     { .t = DVB_PILOT_AUTO,              .l = PILOT_AUTO },
     { .t = DVB_PILOT_ON,                .l = PILOT_ON   },
@@ -1698,6 +1729,11 @@ linuxdvb_frontend_tune0
   };
   static linuxdvb_tbl_t rolloff_tbl[] = {
     { .t = DVB_HIERARCHY_AUTO,          .l = ROLLOFF_AUTO },
+#if DVB_VER_ATLEAST(5,12)
+    { .t = DVB_ROLLOFF_5,               .l = ROLLOFF_5    },
+    { .t = DVB_ROLLOFF_10,              .l = ROLLOFF_10   },
+    { .t = DVB_ROLLOFF_15,              .l = ROLLOFF_15   },    
+#endif
     { .t = DVB_ROLLOFF_20,              .l = ROLLOFF_20   },
     { .t = DVB_ROLLOFF_25,              .l = ROLLOFF_25   },
     { .t = DVB_ROLLOFF_35,              .l = ROLLOFF_35   },
index 726e3aa39ad67c351bfa0f6aae0fa38700b2aa7d..454019dba02b02cd83b45b6336844153fb1aea46 100644 (file)
@@ -362,12 +362,20 @@ dvb_mux_class_X(dvbs, qpsk, fec_inner, fec, fec,
                      DVB_FEC_AUTO, DVB_FEC_NONE,
                      DVB_FEC_1_2, DVB_FEC_2_3, DVB_FEC_3_4, DVB_FEC_3_5,
                      DVB_FEC_4_5, DVB_FEC_5_6, DVB_FEC_7_8, DVB_FEC_8_9,
-                     DVB_FEC_9_10);
+                     DVB_FEC_9_10, DVB_FEC_1_3, DVB_FEC_1_4, DVB_FEC_4_15,
+                     DVB_FEC_5_9, DVB_FEC_7_9, DVB_FEC_7_15, DVB_FEC_8_15,
+                     DVB_FEC_9_20, DVB_FEC_11_15, DVB_FEC_11_20, DVB_FEC_11_45,
+                     DVB_FEC_13_18, DVB_FEC_13_45, DVB_FEC_14_45, DVB_FEC_23_36,
+                     DVB_FEC_25_36, DVB_FEC_26_45, DVB_FEC_28_45, DVB_FEC_32_45,
+                     DVB_FEC_77_90);
 dvb_mux_class_R(dvbs, modulation, qam, qam,
-                     DVB_MOD_AUTO, DVB_MOD_QPSK, DVB_MOD_QAM_16,
-                     DVB_MOD_PSK_8, DVB_MOD_APSK_16, DVB_MOD_APSK_32);
+                     DVB_MOD_AUTO, DVB_MOD_QPSK, DVB_MOD_QAM_16, DVB_MOD_QAM_1024,
+                     DVB_MOD_QAM_4096, DVB_MOD_PSK_8, DVB_MOD_APSK_16, DVB_MOD_APSK_32,
+                     DVB_MOD_APSK_64, DVB_MOD_APSK_8_L, DVB_MOD_APSK_16_L,
+                     DVB_MOD_APSK_32_L, DVB_MOD_APSK_64_L);
 dvb_mux_class_R(dvbs, rolloff, rolloff, rolloff,
-                     DVB_ROLLOFF_35, DVB_ROLLOFF_20, DVB_ROLLOFF_25);
+                     DVB_HIERARCHY_AUTO, DVB_ROLLOFF_5, DVB_ROLLOFF_10, DVB_ROLLOFF_15,
+                     DVB_ROLLOFF_20, DVB_ROLLOFF_25, DVB_ROLLOFF_35);
 dvb_mux_class_R(dvbs, pilot, pilot, pilot,
                      DVB_PILOT_AUTO, DVB_PILOT_ON, DVB_PILOT_OFF);
 dvb_mux_class_X(dvbs, qpsk, polarisation, polarisation, pol,