Opened 15 years ago
Closed 14 years ago
Last modified 14 years ago
#8501 closed defect (Fixed)
DVB-S: Same transponder frequency, different polarity (h/v) problems
Reported by: | Owned by: | stuartm | |
---|---|---|---|
Priority: | minor | Milestone: | 0.24 |
Component: | MythTV - General | Version: | Master Head |
Severity: | medium | Keywords: | |
Cc: | Ticket locked: | no |
Description
When scanning the satellite Optus D2 satellite at 12706000 Vertical the channels were found, but at an SQL level they used the 12706000 Horizontal polarization multiplex in the "channel" table's "mplexid", and there wasn't a vertical multiplex inserted into the "dtv_multiplex" table.
I think an SQL query only checks the "frequency" in the SQL table but not the "polarity" when checking whether a multiplex already exists before deciding whether to inserting a new one or use an already existing one.
I had to manually change the polarity to create a new vertical multiplex and update the channels, but it works great now. :-)
I was using a channels.conf file to scan (attached) in mythtv-setup.
Attachments (3)
Change History (11)
Changed 15 years ago by
Attachment: | optusd2.conf added |
---|
Changed 15 years ago by
Attachment: | ticket8501-check-polarity-in-dtv_multiplex.patch added |
---|
comment:1 Changed 15 years ago by
Milestone: | unknown → 0.24 |
---|---|
Owner: | changed from Isaac Richards to Stuart Auchterlonie |
Status: | new → accepted |
Can you try the attached patch?
It adds the polarity to the check for an existing mux.
Stuart
comment:2 Changed 14 years ago by
That patch had a number of problems. I've attached a modified patch which I've tested to work on DVB-S2 only using your patch as a starting point. Please feel free to change it to suit the style of MythTV etc (I'm mostly a python developer):
- First of all, the polarity signed char needed to be added as a string of v/h in the SQL queries (it was being added as an integer)
- My Twinhan AD-SP400 with the alpha mantis drivers (DVB-S2) wasn't being scanned in "DVB" mode ("sistandard" was a blank string when scanning using channels.conf) so I made it to always check polarity if it's > 0
- I modified the UPDATE query in "insert_dtv_multiplex()" so that it doesn't overwrite every mux at that frequency with the supplied polarity when inserting additional new channels
Also, was there a reason for using 'QString("%1").arg((char)polarity)' instead of the shorter "QString(polarity)"? If there was, please change it in "get_dtv_multiplex" :-)
One possible side effect is if the polarity it is case insensitive - if polarity can be V/H as well as v/h please take that into consideration.
Thanks,
- David Morrissey
Changed 14 years ago by
Attachment: | channelutil.cpp.diff added |
---|
a modified version of Stuart's patch
comment:3 Changed 14 years ago by
Owner: | changed from Stuart Auchterlonie to stuartm |
---|---|
Version: | 0.23-fixes → Trunk Head |
comment:4 Changed 14 years ago by
Resolution: | → Fixed |
---|---|
Status: | accepted → closed |
comment:5 Changed 14 years ago by
comment:6 Changed 14 years ago by
Are you sure this patch works in channels.conf scan mode? I logged when writing this patch that "sistandard" was always ""
when scanning in channels.conf mode, so I'm not sure the line query.bindValue(":POLARITY", QString(polarity));
in get_dtv_multiplex
will ever be executed.
I don't have a DVB-S card any more to test it with (my Twinhan PCI card failed) and I now use an external satellite tuner.
Sorry for bothering you, just wanted to make sure :)
David M.
comment:7 Changed 14 years ago by
The lack of sistandard when scanning from channels.conf data would be a separate bug, including workarounds as part of this fix would not have been appropriate. sistandard needs to contain a valid value.
comment:8 Changed 14 years ago by
OK fair enough, I didn't really understand why it was blank in the first place :-)
Check polarity of the mux when checking it's existence