Experimental TsReader development (9 Viewers)

HomeY

Test Group
  • Team MediaPortal
  • February 23, 2008
    6,475
    4,645
    49
    ::1
    Home Country
    Netherlands Netherlands
    Tested on HD/SD channels and recordings. No issues so far, but i do have a question:

    I case of a Continuity error in TsWriter log, should that result in desync on LiveTV or should TsReader 'fix' that? I haven't had any with v59 but with v57 i was having desync now and then after contuinity errors. I recall with previous versions that it resulted in a bit of stuttering while watching LiveTV, but i can't recall it resulting in desync.

    ** EDIT **

    Just had it running for about 35 mins and LiveTV started to stutter, which eventually resulted in a complete lockup of MP :(
     
    Last edited:

    Owlsroost

    Retired Team Member
  • Premium Supporter
  • October 28, 2008
    5,540
    5,038
    Cambridge
    Home Country
    United Kingdom United Kingdom
    Tested on HD/SD channels and recordings. No issues so far, but i do have a question:

    I case of a Continuity error in TsWriter log, should that result in desync on LiveTV or should TsReader 'fix' that? I haven't had any with v59 but with v57 i was having desync now and then after contuinity errors. I recall with previous versions that it resulted in a bit of stuttering while watching LiveTV, but i can't recall it resulting in desync.

    ** EDIT **

    Just had it running for about 35 mins and LiveTV started to stutter, which eventually resulted in a complete lockup of MP :(

    There are some huge jumps in the timestamps (> 7 seconds) - was this a long signal dropout, or a long network dropout ?

    Tony
     

    HomeY

    Test Group
  • Team MediaPortal
  • February 23, 2008
    6,475
    4,645
    49
    ::1
    Home Country
    Netherlands Netherlands
    Network never dropped out, so i assume it was a signal dropout. It started with some stuttering & artifacts, then resulted in freeze (but MP did respond) and after that it locked up. Couldn't start a stream after that and TvService had to be restarted to get LiveTV working again.

    I'm still testing and i did notice some desync on channels, but haven't seen the crash/freeze.
     

    Owlsroost

    Retired Team Member
  • Premium Supporter
  • October 28, 2008
    5,540
    5,038
    Cambridge
    Home Country
    United Kingdom United Kingdom
    Network never dropped out, so i assume it was a signal dropout. It started with some stuttering & artifacts, then resulted in freeze (but MP did respond) and after that it locked up. Couldn't start a stream after that and TvService had to be restarted to get LiveTV working again.

    I'm still testing and i did notice some desync on channels, but haven't seen the crash/freeze.

    Yes, from the logs it looked like TV service had hung/crashed eventually.

    Can you post logs of the desync situation please ?

    Tony
     

    Sebastiii

    Development Group
  • Team MediaPortal
  • November 12, 2007
    16,583
    10,403
    France
    Home Country
    France France
    Hi Tony,

    v59 crash too with dvbsub3 :

    Code:
        ntdll.dll!_ZwRaiseException@12()  + 0x12 bytes 
        ntdll.dll!_ZwRaiseException@12()  + 0x12 bytes 
        DVBSub3.ax!CBaseFilter::NonDelegatingQueryInterface(const _GUID & riid, void * * ppv)  Line 315    C++
        TsReader.ax!CTsReaderFilter::Run(__int64 tStart)  Line 580    C++
        quartz.dll!CFilterGraph::Run()  + 0x158 bytes 
        quartz.dll!CFGControl::IssueRun()  + 0x9f bytes 
        quartz.dll!CFGControl::CheckCued()  + 0xbf bytes 
        quartz.dll!CFGControl::CGraphWindow::OnReceiveMessage()  + 0x1cba6 bytes 
        quartz.dll!WndProc()  + 0x3e bytes

    I try to get another callstack :)

    It's maybe related to this :

    Code:
            if ((!wcsicmp(L"MediaPortal DVBSub2", filterInfo.achName)) || (!wcsicmp(L"MediaPortal DVBSub3", filterInfo.achName)))
            {
              HRESULT fhr = pFilter->QueryInterface( IID_IDVBSubtitle2, ( void**)&m_pDVBSubtitle );
     
              assert( fhr == S_OK);
              //LogDebug("Testing that DVBSub2/DVBSub3 works");

    Maybe it's related to here :) i try.
     
    Last edited:

    tourettes

    Retired Team Member
  • Premium Supporter
  • January 7, 2005
    17,301
    4,800
    Code:
            if ((!wcsicmp(L"MediaPortal DVBSub2", filterInfo.achName)) || (!wcsicmp(L"MediaPortal DVBSub3", filterInfo.achName)))
            {
              HRESULT fhr = pFilter->QueryInterface( IID_IDVBSubtitle2, ( void**)&m_pDVBSubtitle );
     
              assert( fhr == S_OK);
              //LogDebug("Testing that DVBSub2/DVBSub3 works");

    Maybe it's related to here :) i try.

    Could be since DVBSub3 doesn't support IID_IDVBSubtitle2.
     

    Sebastiii

    Development Group
  • Team MediaPortal
  • November 12, 2007
    16,583
    10,403
    France
    Home Country
    France France
    The attached patch solve DVBSub3 crash on my side :)
    It's ready to commit and i have bump the version : v0.0.59b XXX
    Sorry i messup my edit lol.

    Code:
    HRESULT CTsReaderFilter::FindSubtitleFilter()
    {
    if( m_pDVBSubtitle )
    {
    return S_OK;
    }
    //LogDebug( "FindSubtitleFilter - start");
     
    IEnumFilters * piEnumFilters = NULL;
    if (GetFilterGraph() && SUCCEEDED(GetFilterGraph()->EnumFilters(&piEnumFilters)))
    {
    IBaseFilter * pFilter;
    while (piEnumFilters->Next(1, &pFilter, 0) == NOERROR )
    {
    FILTER_INFO filterInfo;
    if (pFilter->QueryFilterInfo(&filterInfo) == S_OK)
    {
    if (!wcsicmp(L"MediaPortal DVBSub3", filterInfo.achName))
    {
    HRESULT fhr = pFilter->QueryInterface( IID_IDVBSubtitle3, ( void**)&m_pDVBSubtitle );
    assert( fhr == S_OK);
    //LogDebug("Testing that DVBSub3 works");
    m_pDVBSubtitle->Test(1);
    }
    else if (!wcsicmp(L"MediaPortal DVBSub2", filterInfo.achName))
    {
    HRESULT fhr = pFilter->QueryInterface( IID_IDVBSubtitle2, ( void**)&m_pDVBSubtitle );
    assert( fhr == S_OK);
    //LogDebug("Testing that DVBSub2 works");
    m_pDVBSubtitle->Test(1);
    }
    filterInfo.pGraph->Release();
    }
    pFilter->Release();
    pFilter = NULL;
    }
    piEnumFilters->Release();
    }
    //LogDebug( "FindSubtitleFilter - End");
    return S_OK;
    }

    Code:
    // {1CF3606B-6F89-4813-9D05-F9CA324CF2EA}
    DEFINE_GUID(CLSID_DVBSub2,
      0x1cf3606b, 0x6f89, 0x4813, 0x9d, 0x5, 0xf9, 0xca, 0x32, 0x4c, 0xf2, 0xea);
     
    // {901C9084-246A-47c9-BBCD-F8F398D30AB0}
    DEFINE_GUID(IID_IDVBSubtitle2,
      0x901c9084, 0x246a, 0x47c9, 0xbb, 0xcd, 0xf8, 0xf3, 0x98, 0xd3, 0xa, 0xb0);
     
    // {1E00BDAA-44AB-460b-A2CB-4D554D771392}
    DEFINE_GUID(IID_IDVBSubtitle3,
    0x1e00bdaa, 0x44ab, 0x460b, 0xa2, 0xcb, 0x4d, 0x55, 0x4d, 0x77, 0x13, 0x92);
     
    // {4A4fAE7C-6095-11DC-8314-0800200C9A66}
    DEFINE_GUID(IID_IDVBSubtitleSource,
      0x4a4fae7c, 0x6095, 0x11dc, 0x83, 0x14, 0x08, 0x00, 0x20, 0x0c, 0x9a, 0x66);
     

    Attachments

    • 0001-Fix-Crash-with-DVBSub3.rar
      5.3 MB

    Owlsroost

    Retired Team Member
  • Premium Supporter
  • October 28, 2008
    5,540
    5,038
    Cambridge
    Home Country
    United Kingdom United Kingdom
    Thanks Seb :) - committed.

    New v59b binary added to first page.

    Edit: new v59c binary added.

    Tony
     
    Last edited:

    Users who are viewing this thread

    Top Bottom