Ticket #7232: 7232-v1.patch

File 7232-v1.patch, 5.8 KB (added by danielk, 10 years ago)

possible fix

  • libs/libmythtv/dtvconfparserhelpers.h

     
    7373    static const DTVParamHelperStruct parseTable[];
    7474
    7575  public:
    76     typedef enum
    77     {
    78         //                           Modulations which may be supported
    79         kTunerTypeDVBS1   = 0x00, // QPSK
    80         kTunerTypeDVBS2   = 0x20, // QPSK, 8PSK, 16APSK, 32APSK
    81         kTunerTypeDVBC    = 0x01, // QAM-64, QAM-256
    82         kTunerTypeDVBT    = 0x02, // OFDM
    83         kTunerTypeATSC    = 0x03, // 8-VSB, 16-VSB, QAM-16, QAM-64, QAM-256, QPSK
    84         kTunerTypeUnknown = 0x80000000,
     76    // WARNING: kTunerTypes can not be defined by an enum because
     77    // gcc 4.3.3 will treat 0x80000000 inconsistently on 32-bit
     78    // platforms, so some of the time it is 0x80000000 and other
     79    // times it is 0xFFFFFFFF80000000.
    8580
    86         // Note: Just because some cards sold in different regions support the same
    87         // modulation scheme does not mean that they decode the same signals, there
    88         // are also region specific FEC algorithms and the tuner which precedes the
    89         // demodulator may be limited to frequencies used in that specific market.
    90         // The tuner may also be bandwidth limited to 6 or 7 Mhz, so it could not
    91         // support the 8 Mhz channels used in some contries, and/or the ADC which
    92         // sits between the tuner and the demodulator may be bandwidth limited.
    93         // While often the same hardware could physically support more than it
    94         // is designed for the card/device maker does not write the firmware
    95         // but licenses blocks of it and so only selects the pieces absolutely
    96         // necessary for their market segment. Some ATSC cards only supported
    97         // 8-VSB, newer cards don't support the unpopular 16-VSB, no consumer
    98         // card supports the QAM-16 or QPSK used for USA Cable PSIP, etc.
    99         // DVB-S cards also generally support DiSEqC signaling, and future
    100         // ATSC cards may support similar but incompatible signalling for
    101         // pointable antennas.
    102         //
    103         // Note 2: These values are keyed to the Linux DVB driver values, in
    104         // reality some hardware does support multiple formats and this should
    105         // be a mask. Also the transmission schemes used in Asia and South
    106         // America are not represented here.
    107     } my_enum;
     81    //                                // Modulations which may be supported
     82    static const int kTunerTypeDVBS1; // QPSK
     83    static const int kTunerTypeDVBS2; // QPSK, 8PSK, 16APSK, 32APSK
     84    static const int kTunerTypeDVBC;  // QAM-64, QAM-256
     85    static const int kTunerTypeDVBT;  // OFDM
     86    static const int kTunerTypeATSC;  // 8-VSB, 16-VSB,
     87                                      // QAM-16, QAM-64, QAM-256, QPSK
     88    static const int kTunerTypeUnknown;
    10889
    109     bool operator==(const my_enum& v) const { return value == (int) v; }
    110     bool operator!=(const my_enum& v) const { return value != (int) v; }
     90    // Note: Just because some cards sold in different regions support the same
     91    // modulation scheme does not mean that they decode the same signals, there
     92    // are also region specific FEC algorithms and the tuner which precedes the
     93    // demodulator may be limited to frequencies used in that specific market.
     94    // The tuner may also be bandwidth limited to 6 or 7 Mhz, so it could not
     95    // support the 8 Mhz channels used in some contries, and/or the ADC which
     96    // sits between the tuner and the demodulator may be bandwidth limited.
     97    // While often the same hardware could physically support more than it
     98    // is designed for the card/device maker does not write the firmware
     99    // but licenses blocks of it and so only selects the pieces absolutely
     100    // necessary for their market segment. Some ATSC cards only supported
     101    // 8-VSB, newer cards don't support the unpopular 16-VSB, no consumer
     102    // card supports the QAM-16 or QPSK used for USA Cable PSIP, etc.
     103    // DVB-S cards also generally support DiSEqC signaling, and future
     104    // ATSC cards may support similar but incompatible signalling for
     105    // pointable antennas.
     106    //
     107    // Note 2: These values are keyed to the Linux DVB driver values, in
     108    // reality some hardware does support multiple formats and this should
     109    // be a mask. Also the transmission schemes used in Asia and South
     110    // America are not represented here.
    111111
    112112    DTVTunerType(int _default = kTunerTypeUnknown)
    113113        : DTVParamHelper(_default) { initStr(); }
  • libs/libmythtv/dtvconfparserhelpers.cpp

     
    3838    return strings[index];
    3939}
    4040
     41const int DTVTunerType::kTunerTypeDVBS1   = 0x00;
     42const int DTVTunerType::kTunerTypeDVBS2   = 0x20;
     43const int DTVTunerType::kTunerTypeDVBC    = 0x01;
     44const int DTVTunerType::kTunerTypeDVBT    = 0x02;
     45const int DTVTunerType::kTunerTypeATSC    = 0x03;
     46const int DTVTunerType::kTunerTypeUnknown = 0x80000000;
     47
    4148static QMutex dtv_tt_canonical_str_lock;
    4249static QMap<int,QString> dtv_tt_canonical_str;
    4350void DTVTunerType::initStr(void)
  • libs/libmythtv/hdhrchannel.cpp

     
    6060
    6161    _tuner_types = _stream_handler->GetTunerTypes();
    6262    tunerType = (_tuner_types.empty()) ?
    63         DTVTunerType::kTunerTypeUnknown : _tuner_types[0];
     63        DTVTunerType::kTunerTypeUnknown : (int) _tuner_types[0];
    6464
    6565    if (!InitializeInputs())
    6666    {