[confirm] Bug in latest AdvancedCardAllocation.cs. (1 Viewer)

te3hpurp

Retired Team Member
  • Premium Supporter
  • September 23, 2008
    910
    231
    Rovaniemi
    Home Country
    Finland Finland
    MediaPortal Version: 1.1 RC Latest Svn+ Own patches
    MediaPortal Skin: Blue3Wide
    Windows Version: Windows 7 32Bit(finally this is main htpc Os) :)
    CPU Type: Intel Core 2 Duo E6400
    HDD: Seagate 320 & WD 500 GB
    Memory: DDR2 2GB
    Motherboard: Asus B5P
    Video Card: NVidia Gf 8400 GS(G98 new chip)
    Video Card Driver: NVidia 195.37 Beta
    Sound Card: Built-in Realtek 7.1 HD
    Sound Card AC3: SPDIF
    Sound Card Driver: realtek
    1. TV Card: Technotrend S2 3200
    1. TV Card Type: DVB-S
    1. TV Card Driver: 5.0.1.8
    2. TV Card: Pinnacle 70e
    2. TV Card Type: DVB-T
    2. TV Card Driver: latest
    3. TV Card:
    3. TV Card Type:
    3. TV Card Driver:
    4. TV Card:
    4. TV Card Type:
    4. TV Card Driver:
    MPEG2 Video Codec: Win 7 Internal
    MPEG2 Audio Codec: Win 7 Internal
    h.264 Video Codec: Win 7 Internal
    Satelite/CableTV Provider: Thor 1w
    HTPC Case: Antec fusion black
    Cooling:
    Power Supply:
    Remote: Technotrend 3200
    TV: Philips pfp 5532D 42"
    TV - HTPC Connection: DVI


    Hi.

    File in title has bug in GetAvailableCardsForChannel method.
    This new cardsUnAvailable list system is not working as it should.

    I have dvb-t and dvb-s cards which can tune to same channels. Channels are combined. dvb-t is higher priority
    so it's tried first.

    Well if I i have ongoing recording in dvb-t and i try to tune in different channel that exist in both cards
    and this channel is in different transponder in dvb-t card. Then dvb-s card is never tried.

    2010-02-28 23:33:37.202452 [(12)]: Controller: find free card for channel MTV3
    2010-02-28 23:33:37.223453 [(12)]: Controller: got 2 tuning details for MTV3
    2010-02-28 23:33:37.224453 [(12)]: Controller: channel #1 DVBT:tv:MTV Oy MTV3 Freq:674000 ONID:8438 TSID:8193 SID:49 PMT:0x100 FTA:True LCN:10000 BandWidth:8
    2010-02-28 23:33:37.227453 [(12)]: Controller: card:1 type:DvbIP cannot tune to channel
    2010-02-28 23:33:37.230453 [(12)]: Controller: card:3 type:DvbT cannot tune to channel
    2010-02-28 23:33:37.233454 [(12)]: Controller: card:2 type:DvbS cannot tune to channel
    2010-02-28 23:33:37.236454 [(12)]: Controller: card:4 type:RadioWebStream cannot tune to channel
    2010-02-28 23:33:37.237454 [(12)]: Controller: channel #2 DVBS:tv:Telenor MTV3 Freq:10809000 ONID:70 TSID:65 SID:1614 PMT:0x10A FTA:False LCN:382 SymbolRate:24500 Modulation:ModNotSet Polarisation:LinearH InnerFecRate:Rate7_8 DisEqc:None band:Universal Pilot:NotSet RollOff:NotSet
    2010-02-28 23:33:37.237454 [(12)]: Controller: card:1 has already been queried, skipping.
    2010-02-28 23:33:37.238454 [(12)]: Controller: card:3 has already been queried, skipping.
    2010-02-28 23:33:37.238454 [(12)]: Controller: card:2 has already been queried, skipping.
    2010-02-28 23:33:37.239454 [(12)]: Controller: card:4 has already been queried, skipping.

    Simplified presentation of codeblock:

    Code:
            foreach (IChannel tuningDetail in tuningDetails)
            {
              //for each card...
              while (enumerator.MoveNext())
              {
                 // in first iteration here dvb-s card is marked not available and allready queried
                // even we are dealing with dvb-t tuning space.
              }
           }

    In first iteration of foreach dvb-t tuningdetail is checked. And dvb-s card is put into cardsUnAvailable list.
    So when dvb-s tuningdetails are checked in foreach second iteration, card is not cheked because it is in
    cardsUnAvailable list.

    There are number of possible solutions, but one way is to clear cardsUnAvailable list after while loop:

    Code:
            foreach (IChannel tuningDetail in tuningDetails)
            {
              //for each card...
              while (enumerator.MoveNext())
              {
                 // in first iteration here dvb-s card is marked not available and allready queried
                // even we are dealing with dvb-t tuning space.
              }
              cardsUnAvailable .Clear();
           }

    It should work, because at the end cardsAvailable is used for actually tuning into channel so
    cardsUnAvailable is more or less useless.


    Regards,
     

    gibman

    Retired Team Member
  • Premium Supporter
  • October 4, 2006
    2,998
    1,372
    Aarhus
    Home Country
    Denmark Denmark
    Hi!

    Thanks for the notification.

    I think I realized this myself already.

    Did u test :

    Revision: 25139
    Author: gibman_dk
    Date: 19:41:05, 28. februar 2010
    Message:
    additional fix #2 for 2421: Channel status is not consistent in multiseat

    dictionary for ignoring already evaluated cards is now cleared between each new tuningdetail.
    ----
    Modified : /trunk/TvEngine3/TVLibrary/TvService/CardManagement/CardAllocation/AdvancedCardAllocation.cs

    /gibman
     

    te3hpurp

    Retired Team Member
  • Premium Supporter
  • September 23, 2008
    910
    231
    Rovaniemi
    Home Country
    Finland Finland
    Hi!

    Thanks for the notification.

    I think I realized this myself already.

    Did u test :

    Revision: 25139
    Author: gibman_dk
    Date: 19:41:05, 28. februar 2010
    Message:
    additional fix #2 for 2421: Channel status is not consistent in multiseat

    dictionary for ignoring already evaluated cards is now cleared between each new tuningdetail.
    ----
    Modified : /trunk/TvEngine3/TVLibrary/TvService/CardManagement/CardAllocation/AdvancedCardAllocation.cs

    /gibman

    Hi.

    Not yet, but will do today.
    :D

    br,
     

    Users who are viewing this thread

    Top Bottom