]> git.sesse.net Git - vlc/blobdiff - modules/access/dvb/linux_dvb.c
Used VLC_CODEC_* and vlc_fourcc_GetCodec when suitable.
[vlc] / modules / access / dvb / linux_dvb.c
index d0dbcf4a2bf89ad5da4665a0b0cf000559df6da5..2654fd1604103f580fe97954e77c604c705584eb 100644 (file)
@@ -65,7 +65,7 @@
 #   include "descriptors/dr.h"
 #   include "psi.h"
 #   include "demux.h"
-#   include "sdt.h"
+#   include "tables/sdt.h"
 #endif
 
 #ifdef ENABLE_HTTPD
@@ -402,6 +402,28 @@ void FrontendGetStatus( access_t *p_access, frontend_status_t *p_status )
     p_status->b_has_carrier = (p_frontend->i_last_status & FE_HAS_CARRIER) != 0;
     p_status->b_has_lock = (p_frontend->i_last_status & FE_HAS_LOCK) != 0;
 }
+static int ScanParametersDvbC( access_t *p_access, scan_parameter_t *p_scan )
+{
+    const frontend_t *p_frontend = p_access->p_sys->p_frontend;
+
+
+    memset( p_scan, 0, sizeof(*p_scan) );
+    p_scan->type = SCAN_DVB_C;
+    p_scan->b_exhaustive = false;
+
+    /* */
+    p_scan->frequency.i_min = p_frontend->info.frequency_min;
+    p_scan->frequency.i_max = p_frontend->info.frequency_max;
+    p_scan->frequency.i_step = p_frontend->info.frequency_stepsize ?: 166667;
+    p_scan->frequency.i_count = (p_scan->frequency.i_max-p_scan->frequency.i_min)/p_scan->frequency.i_step;
+
+    /* */
+    p_scan->bandwidth.i_min  = 6;
+    p_scan->bandwidth.i_max  = 8;
+    p_scan->bandwidth.i_step = 1;
+    p_scan->bandwidth.i_count = 3;
+    return VLC_SUCCESS;
+}
 static int ScanParametersDvbT( access_t *p_access, scan_parameter_t *p_scan )
 {
     const frontend_t *p_frontend = p_access->p_sys->p_frontend;
@@ -414,7 +436,7 @@ static int ScanParametersDvbT( access_t *p_access, scan_parameter_t *p_scan )
     /* */
     p_scan->frequency.i_min = p_frontend->info.frequency_min;
     p_scan->frequency.i_max = p_frontend->info.frequency_max;
-    p_scan->frequency.i_step = p_frontend->info.frequency_stepsize;
+    p_scan->frequency.i_step = p_frontend->info.frequency_stepsize ?: 166667;
     p_scan->frequency.i_count = (p_scan->frequency.i_max-p_scan->frequency.i_min)/p_scan->frequency.i_step;
 
     /* */
@@ -431,6 +453,8 @@ int  FrontendGetScanParameter( access_t *p_access, scan_parameter_t *p_scan )
 
     if( p_frontend->info.type == FE_OFDM )  // DVB-T
         return ScanParametersDvbT( p_access, p_scan );
+    else if( p_frontend->info.type == FE_QAM )  // DVB-C
+        return ScanParametersDvbC( p_access, p_scan );
 
     msg_Err( p_access, "Frontend type not supported for scanning" );
     return VLC_EGENERIC;
@@ -794,8 +818,13 @@ static fe_modulation_t DecodeModulationATSC( access_t *p_access )
 {
     switch( var_GetInteger( p_access, "dvb-modulation" ) )
     {
+        case 0:     return QAM_AUTO;
         case 8:     return VSB_8;
         case 16:    return VSB_16;
+        case 32:    return QAM_32;
+        case 64:    return QAM_64;
+        case 128:   return QAM_128;
+        case 256:   return QAM_256;
         default:
             msg_Dbg( p_access, "ATSC modulation not set, using VSB 8");
             return VSB_8;