- September 1, 2008
- 21,577
- 8,224
- Home Country
- New Zealand
Hi all
I've been a user of MediaPortal since version 0.2.3, however this is the first time I've submitted a patch so please go easy on me. I have tried to follow all the guidelines so hopefully I've done everything correctly...
----------------------------------------------------------------------------------------------------------
Recently I bought myself two second hand Pinnacle 7010ix 4 in 1 (2xhybrid DVB-T/Analog TV/FM + 2xDVB-S) tuner cards from Ebay Germany. They are fantastic cards and work nicely with MediaPortal except for two issues:
1. FM radio didn't work correctly
2. DiSEqC switching doesn't work
This patch is meant to solve issue 1 (I have a solution for issue 2 as well but I'm still working on the implementation).
Problem detail:
I need to be more specific about what I mean when I say FM radio didn't work "correctly". The tuning and playback of FM radio *did* actually work - it is just that the card failed to detect or lock on actual stations. This means that when I did an FM scan, the card would detect random frequencies (90% of which were not real stations - in fact they were usually about as far away from any real station frequency as it was possible to get!). You could successfully tune to the random frequencies picked up by the scan and hear white noise or sometimes "fuzzy" music/speech if the frequency was close to a real station. However you couldn't fix the frequency of one of the random stations or manually add a new station with a real frequency - the tuner just refused to lock.
Investigation detail:
It turns out that my card's driver was returning signal strength values outside of the range specified by the DirectShow interface. IAMTuner:: SignalPresent specifies that the driver should return '1' if the tuner is locked, however my card was returning 2, 3, 4 and sometimes even 5 for frequencies where there were real stations. I think the driver probably contains a manufacturer specific implementation of signal strength/quality with 1 being the weakest lock and 5 being the strongest . Note that the driver does correctly return 0 (meaning 'no signal') when there is really no station present.
Fix detail:
The fix is very simple - only one line of code is changed. Instead of determining lock by checking for 'signal present' or 'has-no-signal-strength', I assume lock and check for 'no lock' to determine if the tuner isn't actually locked.
Okay well hopefully I have given all the information that needs to be given. The patch (which is taken from the SVN HEAD) is attached!
[Edit: I meant to also say that perhaps this issue is connected to Mantis issue 0002445. The card is not a Hauppauge, however you never know...]
----------------------------------------------------
Update 2010-11-18
- Add binary patch for 1.2.0a
----------------------------------------------------
Update 2010-12-18
- Add binary patch for 1.1.2
----------------------------------------------------
Update 2011-04-03
- Add binary patch for 1.1.3
I've been a user of MediaPortal since version 0.2.3, however this is the first time I've submitted a patch so please go easy on me. I have tried to follow all the guidelines so hopefully I've done everything correctly...
----------------------------------------------------------------------------------------------------------
Recently I bought myself two second hand Pinnacle 7010ix 4 in 1 (2xhybrid DVB-T/Analog TV/FM + 2xDVB-S) tuner cards from Ebay Germany. They are fantastic cards and work nicely with MediaPortal except for two issues:
1. FM radio didn't work correctly
2. DiSEqC switching doesn't work
This patch is meant to solve issue 1 (I have a solution for issue 2 as well but I'm still working on the implementation).
Problem detail:
I need to be more specific about what I mean when I say FM radio didn't work "correctly". The tuning and playback of FM radio *did* actually work - it is just that the card failed to detect or lock on actual stations. This means that when I did an FM scan, the card would detect random frequencies (90% of which were not real stations - in fact they were usually about as far away from any real station frequency as it was possible to get!). You could successfully tune to the random frequencies picked up by the scan and hear white noise or sometimes "fuzzy" music/speech if the frequency was close to a real station. However you couldn't fix the frequency of one of the random stations or manually add a new station with a real frequency - the tuner just refused to lock.
Investigation detail:
It turns out that my card's driver was returning signal strength values outside of the range specified by the DirectShow interface. IAMTuner:: SignalPresent specifies that the driver should return '1' if the tuner is locked, however my card was returning 2, 3, 4 and sometimes even 5 for frequencies where there were real stations. I think the driver probably contains a manufacturer specific implementation of signal strength/quality with 1 being the weakest lock and 5 being the strongest . Note that the driver does correctly return 0 (meaning 'no signal') when there is really no station present.
Fix detail:
The fix is very simple - only one line of code is changed. Instead of determining lock by checking for 'signal present' or 'has-no-signal-strength', I assume lock and check for 'no lock' to determine if the tuner isn't actually locked.
Okay well hopefully I have given all the information that needs to be given. The patch (which is taken from the SVN HEAD) is attached!
[Edit: I meant to also say that perhaps this issue is connected to Mantis issue 0002445. The card is not a Hauppauge, however you never know...]
----------------------------------------------------
Update 2010-11-18
- Add binary patch for 1.2.0a
----------------------------------------------------
Update 2010-12-18
- Add binary patch for 1.1.2
----------------------------------------------------
Update 2011-04-03
- Add binary patch for 1.1.3