Ticket #13519: 20191129-hdhr-fix-debug.patch

File 20191129-hdhr-fix-debug.patch, 3.3 KB (added by Klaas de Waal, 6 years ago)

HDHR fix and debug output to file ./log/hdhr-dbg.log

  • mythtv/libs/libmythtv/recorders/hdhrstreamhandler.cpp

    diff --git a/mythtv/libs/libmythtv/recorders/hdhrstreamhandler.cpp b/mythtv/libs/libmythtv/recorders/hdhrstreamhandler.cpp
    index 9ab44a402e..0de4b96026 100644
    a b HDHRStreamHandler::HDHRStreamHandler(const QString &device, int inputid,  
    104104    , m_majorid(majorid)
    105105{
    106106    setObjectName("HDHRStreamHandler");
     107
     108    // KdW HDHR debug
     109    m_hdhomerun_debug = hdhomerun_debug_create();
     110    hdhomerun_debug_set_filename(m_hdhomerun_debug, "./log/hdhr-dbg.log");
     111    hdhomerun_debug_enable(m_hdhomerun_debug);
    107112}
    108113
    109114/** \fn HDHRStreamHandler::run(void)
    void HDHRStreamHandler::run(void)  
    113118{
    114119    RunProlog();
    115120
    116     /* Create TS socket. */
    117     if (!hdhomerun_device_stream_start(m_hdhomerun_device))
    118121    {
    119         LOG(VB_GENERAL, LOG_ERR, LOC +
    120             "Starting recording (set target failed). Aborting.");
    121         m_bError = true;
    122         RunEpilog();
    123         return;
     122        QMutexLocker locker(&m_hdhr_lock);
     123
     124        /* Create TS socket. */
     125        if (!hdhomerun_device_stream_start(m_hdhomerun_device))
     126        {
     127            LOG(VB_GENERAL, LOG_ERR, LOC +
     128                "Starting recording (set target failed). Aborting.");
     129            m_bError = true;
     130            RunEpilog();
     131            return;
     132        }
     133        hdhomerun_device_stream_flush(m_hdhomerun_device);
    124134    }
    125     hdhomerun_device_stream_flush(m_hdhomerun_device);
    126135
    127136    SetRunning(true, false, false);
    128137
    void HDHRStreamHandler::run(void)  
    184193
    185194    RemoveAllPIDFilters();
    186195
    187     hdhomerun_device_stream_stop(m_hdhomerun_device);
     196    {
     197        QMutexLocker locker(&m_hdhr_lock);
     198        hdhomerun_device_stream_stop(m_hdhomerun_device);
     199    }
    188200
    189201    if (VERBOSE_LEVEL_CHECK(VB_RECORD, LOG_INFO))
    190202    {
    void HDHRStreamHandler::Close(void)  
    365377
    366378bool HDHRStreamHandler::Connect(void)
    367379{
    368     m_device_selector = hdhomerun_device_selector_create(nullptr);
     380    // m_device_selector = hdhomerun_device_selector_create(nullptr);
     381    m_device_selector = hdhomerun_device_selector_create(m_hdhomerun_debug);        // KdW HDHR debug
    369382    if (!m_device_selector)
    370383    {
    371384        LOG(VB_GENERAL, LOG_ERR, LOC + "Unable to create device selector");
    QString HDHRStreamHandler::TunerSet(  
    480493
    481494void HDHRStreamHandler::GetTunerStatus(struct hdhomerun_tuner_status_t *status)
    482495{
     496    QMutexLocker locker(&m_hdhr_lock);
     497
    483498    hdhomerun_device_get_tuner_status(m_hdhomerun_device, nullptr, status);
    484499}
    485500
  • mythtv/libs/libmythtv/recorders/hdhrstreamhandler.h

    diff --git a/mythtv/libs/libmythtv/recorders/hdhrstreamhandler.h b/mythtv/libs/libmythtv/recorders/hdhrstreamhandler.h
    index 72c60417fb..a8a0c90a94 100644
    a b class HDHRStreamHandler : public StreamHandler  
    8989  private:
    9090    hdhomerun_device_t          *m_hdhomerun_device {nullptr};
    9191    hdhomerun_device_selector_t *m_device_selector  {nullptr};
     92    hdhomerun_debug_t           *m_hdhomerun_debug  {nullptr};    // KdW HDHR debug
    9293    int                          m_tuner            {-1};
    9394    vector<DTVTunerType>         m_tuner_types;
    9495    HDHRTuneMode                 m_tune_mode        {hdhrTuneModeNone}; // debug self check