TV-Server crashes on scanning channels with Hauppauge WinTV HVR-900H (1 Viewer)

Curry

MP Donator
  • Premium Supporter
  • May 4, 2009
    39
    1
    Eindhoven
    Home Country
    Netherlands Netherlands
    Considering it's also an update to the issue mentioned in this thread: morpheus' CI-updating test build does not solve my issues.

    Something I'm curious about - it appears Hauppauge and other TV-card manufacturers don't bother to cooperate with HTPC software developers on integration of their products. Are they just ignorant about the reason a lot of their customers buy their products? It's not like their own WinTV software is worth a shit, and the whole idea is seamless integration for us end users. I kicked them in their own forums, hopefully they'll listen ;)

    Keep up the good work anyway guys, and whenever there's new stuff to test I'm up for it :)
     

    Curry

    MP Donator
  • Premium Supporter
  • May 4, 2009
    39
    1
    Eindhoven
    Home Country
    Netherlands Netherlands
    New update:

    I've did an SVN Export of the whole TVServer trunk and did some local testing with a custom self-written app already :) Weird thing is that my test program scans and recognizes all channels, but the CI interface won't show up on my laptop. I've isolated it to the following line of code:
    Code:
    DsDevice[] capDevices = DsDevice.GetDevicesOfCat(FilterCategory.AMKSCapture);
    For some reason it's a no-show there while it should be in that category according to the core code. When I have more time I'll debug it some more. Is there some trick to trigger DirectShow in a rescan of capable devices?
     

    Curry

    MP Donator
  • Premium Supporter
  • May 4, 2009
    39
    1
    Eindhoven
    Home Country
    Netherlands Netherlands
    Reinstalling the Hauppauge drivers fixed the undetected filter problem mentioned above.

    So I went debugging, and found a 'probable cause'. Can't debug for shit on my setup though so please help me review whether this code change is bullshit or not ;)

    In TvCardDvbBase.cs, function TvLibrary.Implementations.DVB.TvCardDvbBase.AddWinTvCIModule, line 776 reads as follows in the current trunk:
    Code:
          hr = _capBuilder.RenderStream(null, null, tmpCiFilter, null, _infTeeMain);
    This consistently returned status 0x80004005, causing the code to retry adding the device in several different modes.

    I changed it to:
    Code:
          hr = _capBuilder.RenderStream(null, MediaType.Video, tmpCiFilter, null, _infTeeMain);
    Specifying the media type explicitly caused it to return a proper 0, and have the CI added to the graph as it should. After this it fails on connecting the inftee main to MPEG2 demux with code 0x80040217 or "No combination of intermediate filters could be found to make the connection", but that is probably caused by me debugging on a semi-setup laptop without a proper MediaPortal install.
     

    Curry

    MP Donator
  • Premium Supporter
  • May 4, 2009
    39
    1
    Eindhoven
    Home Country
    Netherlands Netherlands
    Attached is a recompiled 1.0.2 build of tvlibrary.dll - if anyone with another WinTV CI setup can check it that would be cool :)
     

    Curry

    MP Donator
  • Premium Supporter
  • May 4, 2009
    39
    1
    Eindhoven
    Home Country
    Netherlands Netherlands
    But of course :) Attached is the fresh SVN-trunk based 1.0.3 build. I did have to disable Digital EveryWhere FireSAT support for this build since the code relies on new C# features my VS2k5 doesn't support :)
     

    morpheus_xx

    Retired Team Member
  • Team MediaPortal
  • March 24, 2007
    12,070
    7,459
    Home Country
    Germany Germany
    I did have to disable Digital EveryWhere FireSAT support for this build since the code relies on new C# features my VS2k5 doesn't support :)
    really ?! I didn't noticed that I introduced such new things...
     

    Curry

    MP Donator
  • Premium Supporter
  • May 4, 2009
    39
    1
    Eindhoven
    Home Country
    Netherlands Netherlands
    3 actually, but I fixed the other 2 in my local build. In Encoder.cs:
    Code:
          string[] videoEncoders = new[] { "InterVideo Video Encoder", ... };
    'Implicit typing' is a new language feature, for old C# you have to explicitly use:
    Code:
          string[] videoEncoders = new string[] { "InterVideo Video Encoder", ... };
    The FireSAT code uses an implicit shorthard struct constructor at line 190 of DigitalEveryWhere.cs which is a new feature as well.
     

    infinite.loop

    Retired Team Member
  • Premium Supporter
  • December 26, 2004
    16,154
    4,133
    127.0.0.1
    Home Country
    Austria Austria
    But of course :) Attached is the fresh SVN-trunk based 1.0.3 build. I did have to disable Digital EveryWhere FireSAT support for this build since the code relies on new C# features my VS2k5 doesn't support :)

    Tested with this build, and things are still working.
    but as you know, i did not had issues/crashes before either. :)
     

    Curry

    MP Donator
  • Premium Supporter
  • May 4, 2009
    39
    1
    Eindhoven
    Home Country
    Netherlands Netherlands
    Thanks, great :) I'll try to deploy this build on my live systems then and if that doesn't give problems build a proper patch :)
     

    Users who are viewing this thread

    Top Bottom