small pat/pmt scan fix
[enigma2.git] / lib / dvb / scan.cpp
index 0d466f96321234ca639dce2d654dc44ff412c739..fb8e544200456ada8c100027225f8e45c5422928 100644 (file)
@@ -164,7 +164,7 @@ RESULT eDVBScan::startFilter()
                        }
                        m_PMT = new eTable<ProgramMapSection>();
                        CONNECT(m_PMT->tableReady, eDVBScan::PMTready);
-                       PMTready(-1);
+                       PMTready(-2);
 
                        // KabelBW HACK ... on 618Mhz and 626Mhz the transport stream id in PAT and SDT is different
                        {
@@ -306,10 +306,9 @@ void eDVBScan::PMTready(int err)
                                                        {
                                                        case DTS_DESCRIPTOR:
                                                        case AAC_DESCRIPTOR:
-                                                               isaudio = 1;
                                                        case AC3_DESCRIPTOR:
                                                                isaudio = 1;
-                                                       break;
+                                                               break;
                                                        case REGISTRATION_DESCRIPTOR: /* some services don't have a separate AC3 descriptor */
                                                        {
                                                                        /* libdvbsi++ doesn't yet support this descriptor type, so work around. */
@@ -358,7 +357,7 @@ void eDVBScan::PMTready(int err)
                else
                        m_pmt_in_progress->second.serviceType = 100;
        }
-       if (err == -2) // aborted in sdt progress
+       if (err == -1) // aborted in sdt progress or pmt timout..
                m_pmts_to_read.erase(m_pmt_in_progress++);
        else if (m_pmt_running)
                ++m_pmt_in_progress;
@@ -656,7 +655,7 @@ void eDVBScan::channelDone()
                if (m_abort_current_pmt)
                {
                        m_abort_current_pmt = false;
-                       PMTready(-2);
+                       PMTready(-1);
                }
                return;
        }