[mythtv] Adding PLP support (DTV_STREAM_ID)

Torbjorn Jansson torbjorn.jansson at mbox200.swipnet.se
Sun Jan 28 17:49:57 UTC 2018


On 2018-01-28 16:42, Peter Bennett wrote:
> 
> 
> On 01/28/2018 08:12 AM, Torbjorn Jansson wrote:
>> Hello.
>>
>> i have a few questions but first some background.
>>
>> several years ago i bought a usb based dvbt2 tuner with the intention to 
>> replace my pcie card.
>> i picked a TT CT2-4650 since it was supposed to have linux support already.
>> turned out that was not true since i got a newer version of it with no linux 
>> support, so with a bit of hacking on the drivers i was able to get it working 
>> due to the similarities with other cards.
>>
>> but i quickly realized i could not tune to any dvb-t2 mux, after a lot of 
>> troubleshooting i gave up and forgot about it.
>>
>> then a year or so later my dvb tv box broke down and i bought a new one (vu+ 
>> solo4k) and to my surprise it had the exact same issue.
>> after even more troubleshooting i found out i need to set PLP ID to 1 for 
>> tuning to work on dvb-t2 muxes.
>>
>> so then i realized that must be the same problem with my ct2-4650 and it was.
>> yesterday i got tvheadend working on the usb tuner successfully and thats the 
>> first time i got the usb tuner to do something useful.
>>
>> BUT channel scanning is not working, so mux must be setup manualy, that 
>> includes PLP ID and other paramters.
>> so i think the drivers don't do auto detect like my pcie card does.
>> and the downside of missing autodetect of plp is that most software dont know 
>> how to handle plp and this applies to mythtv too.
>>
>>
>>
>> so for mythtv to work with this card i need to convince the backend to 
>> specify plp when tuning.
>> so a new mux paramter need to be added to database and then used during tuning.
>> as i understand it this is done with a property called: DTV_STREAM_ID and i 
>> need to try to understand better how libs/libmythtv/recorders/dvbchannel.cpp 
>> works.
>>
>> can someone give me any pointers about this?
>> to start with i'm happy with a proof of concept hack that sets DTV_STREAM_ID 
>> to 1 on all dvb-t2 tuning attempts, then if it works i can try and get a 
>> proper patch for it.
>>
>> i probably wont be able to get the mux editor or settings working since i'm 
>> not familiar with how the setup gui works.
>> but if i get a new optional mux setting for plp in place then i'm happy.
>>
>> _______________________________________________
> 
> I cannot directly help since I am not familiar with DVB tuning and I am in the 
> USA where there is no DVB-T2. I think the best way to find out how it is 
> working is to use a debugger to stop at some point in the code, examine 
> backtraces and step through the code. You may want to set up a separate 
> development system for that.
> 

i already have a dev system system, it is a vm with the usb tuner attached and 
appears to work (can see the non dvb-t2 channels and frontend works)

> Changing setup is easy but it may require an extra database column if this is a 
> new parameter for the channel. Is the PLP ID different for each channel? Is 
> there a database column for it already?

PLP is per mux so yes a new column in dtv_multiplex table is needed.
adding another column is easy but im not yet familiar with the db update code 
and i know you need to be careful with it so you don't screw up the schema numbers.


> Setup is different in MythTV version 29. Are you using V29?

yes i noticed, i upgrded my dev box from 28 to 29 and yes i partly like the new 
setup but it gets very confusing with the options that is both a dropdown AND a 
sub menu.
this is not intuitive at all, so that part i dislike.


> If you do not have the time or the interest in debugging and figuring this out, 
> please create a ticket so that somebody can look at it later. However it may be 
> a long time before that happens.
> 
> If you do want to debug it and have questions about debugging let me know and I 
> can try to help.

i'll start reading up on dvbchannel.cpp and see if i can stick in a new 
property for this and hardcode plp (or stream id) to 1 for dvb-t2 muxes to see 
if it works.

a few things i know from tvheadend that i got working:
channel scanning don't detect the mux if PLP is wrong, this is exactly 
identical on my vu+4k box, wrong plp results in no signal and mux being skipped.
because of this, in tvheadend i had to specify the mux manually including all 
other parameters (qam and so on, think it was 3 parameters that was important)


but when i scanned yesterday and setup muxes manually in mythtv 29 i was able 
to define mux manually and make it scan and find the channels.
but actually tuning to one of those channels fails, and this i think is where 
the plp comes into play.
anyway, more testing is needed and some hacking on the code.


also i read from the dvb api documentation ( 
https://www.kernel.org/doc/html/v4.14/media/uapi/dvb/fe_property_parameters.html#dtv-stream-id 
) that apparently both dvb-t2 and dvb-s2 uses plp.



More information about the mythtv-dev mailing list