Opened 14 years ago

Closed 14 years ago

Last modified 13 years ago

#8501 closed defect (Fixed)

DVB-S: Same transponder frequency, different polarity (h/v) problems

Reported by: frozball@… 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)

optusd2.conf (338 bytes) - added by frozball@… 14 years ago.
ticket8501-check-polarity-in-dtv_multiplex.patch (1.8 KB) - added by Stuart Auchterlonie 14 years ago.
Check polarity of the mux when checking it's existence
channelutil.cpp.diff (4.4 KB) - added by frozball@… 14 years ago.
a modified version of Stuart's patch

Download all attachments as: .zip

Change History (11)

Changed 14 years ago by frozball@…

Attachment: optusd2.conf added

Changed 14 years ago by Stuart Auchterlonie

Check polarity of the mux when checking it's existence

comment:1 Changed 14 years ago by Stuart Auchterlonie

Milestone: unknown0.24
Owner: changed from Isaac Richards to Stuart Auchterlonie
Status: newaccepted

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 frozball@…

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 frozball@…

Attachment: channelutil.cpp.diff added

a modified version of Stuart's patch

comment:3 Changed 14 years ago by stuartm

Owner: changed from Stuart Auchterlonie to stuartm
Version: 0.23-fixesTrunk Head

comment:4 Changed 14 years ago by stuartm

Resolution: Fixed
Status: acceptedclosed

(In [26946]) Check polarity when comparing against existing multiplexes during a scan. Fixes DVB-S multiplexes overwriting another with the same frequency but different polarity. Fixes #8501

comment:5 Changed 13 years ago by stuartm

(In [26969]) Backport. Check polarity when comparing against existing multiplexes during a scan. Fixes DVB-S multiplexes overwriting another with the same frequency but different polarity. Fixes #8501

comment:6 Changed 13 years ago by frozball@…

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 13 years ago by anonymous

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 13 years ago by frozball@…

OK fair enough, I didn't really understand why it was blank in the first place :-)

Note: See TracTickets for help on using tickets.