catalinii / minisatip

minisatip is an SATIP server for linux using local DVB-S2, DVB-C, DVB-T or ATSC cards
https://minisatip.org
330 stars 81 forks source link

RFE: view channels by PMT PID/SID without specifying the individual pids #291

Open joolzg opened 8 years ago

joolzg commented 8 years ago

Is it possible to add an auto mode where you give in the url the "sid" of channel and the pids are worked out via the satip client itself, i know this would involve pmt parsing but would make like a lot easier for lots of people.

catalinii commented 8 years ago

Yes its possible and minisatip stores the pmt information internally...

I will make it an RFE if someone is interesteed in it as well please let me know here..

joolzg commented 8 years ago

I am as I would like this as an option for a setup im playing with that has 16 dvb-s inputs  Joolz

On Saturday, 26 March 2016, 10:06, catalinii <notifications@github.com> wrote:

Yes its possible and minisatip stores the pmt information internally...I will make it an RFE if someone is interesteed in it as well please let me know here..— You are receiving this because you authored the thread. Reply to this email directly or view it on GitHub

lars18th commented 8 years ago

Hi,

This idea is good. However, I suggest to implement it using a request format (HTTP URL) based on existing format.

For example, the ZAP format used in Dreambox/OpenPLi:

http://minisatip/cgi-bin/zapTo?path=1:0:Mode:SID:TransponderID:NetworkID:Namespace:0:0:0: 

See more at: http://radiovibrations.com/dreambox/zapto.htm

catalinii commented 8 years ago

I think the ZAP format will just complicate the setup as minisatip will need to store transpoders ID, network ID translation to the actual transponder data, which means I will need to add the transpoder list to the application...

You can make a new ER if you want for the ZAP format... but I think they should be detached from each other....

lars18th commented 8 years ago

Hi @catalinii ,

I think the ZAP format will just complicate the setup as minisatip will need to store transpoders ID, network ID translation to the actual transponder data, which means I will need to add the transpoder list to the application...

Yes, this is true!

However, the request of @joolzg is for SID access. My suggestion is use the ZAP "format", not to be directly compatible with ZAP. Why? Because some other tools implement this format, and can be easy to write the URI to be compatible with minisatip maintaining the format... so some clients can be directly compatible.

The trick is use the "TransponderID" as the "frequency", and the rest as usual. See this example:

http://192.168.1.252/web/zapTo?path=1:0:1:2077:7FA:2:11A0000:0:0:0

a la minisatip can be:

http://192.168.1.252/web/zapTo?path=1:0:1:2077:11858000:2:11A0000:0:0:0

What you think?

catalinii commented 8 years ago

Lars, you still need to get different tuning parameters for the transponders except the frequency...

Thanks

lars18th commented 8 years ago

Hi @catalinii ,

Lars, you still need to get different tuning parameters for the transponders except the frequency...

Oh, yes! Sorry! You're right. ZAP protocol is based on the assumption that the server has a database with all scanned channels.

Then, please, forget my suggestion... except if you like to add support for channel frequencies files (like this: http://satellites-xml.eu/).

lars18th commented 8 years ago

Hi @catalinii ,

I have a new, and more simple, suggestion:

See this example of channel-list.m3u:

#EXTINF:0,1. Das Erste HD
rtsp://sat.ip/?src=1&freq=11494&pol=h&ro=0.35&msys=dvbs2&mtype=8psk&plts=on&sr=22000&fec=23&pids=0,17,18,5100,5101,5102,5104

So, I suggest to add a NEW parameter (custom for minisatip, perhaps a good suggestion for next revision of the standard). See this:

rtsp://sat.ip/?src=1&freq=11494&pol=h&ro=0.35&msys=dvbs2&mtype=8psk&plts=on&sr=22000&fec=23&sid=10301

This changes "pids" by "sid", a new parameter that indicates the SID of the program. Then the server only needs to search for this program in PAT/PMT tables for set the pid-list.

Of course, this can be used with RTSP and HTTP transport protocols. This is in fact the initial request from @joolzg .

You agree?

catalinii commented 8 years ago

Yeah I think it is a good idea,

the quick implementation can be with pmt=xx instead of sid=xx as this can be easily done (currently I am keeping the list of pmt_pids for the adapter), but I do not keep the sids.

If you think that the SID is easier to get compared with PID, I can do SID...

Thanks

lars18th commented 8 years ago

Hi @catalinii ,

I agree to use PMT, but SID is the typical "Program Identification Numer" used in table listings of transponders. Also, the pmt pid can be changed without changing the sid number, as you know.

However, perhaps you like to implement first the "pmt" parameter, and after add the "sid" parameter. With both parameters, the client can select any method: full pids list, pmt access, or sid access. The only high requirement is define the behaviour when multiple of them are present. My suggestion is quite simple: make the Union of all of them. So, if you request this:

rtsp://sat.ip/?...&sid=10301&pmt=1024&pids=0,15,16

Then you enable pids=0,15,16,1024... plus pids of program in pmt 1024 and pids of program with sid 10301 (and the pmt of this program).

Final goal can be enable lists in "sid" and "pmt" parameters, like:

rtsp://sat.ip/?...&sid=10301,10302&pmt=1024,1025,1026&pids=0,10,11,15,16

I hope you can implement all of this. And also hope that it will be included in the next revision of the standard. Thank you for your effort!

joolzg commented 8 years ago

Lars18th this is what i was looking for, as my implementation I only have the frequecy, symbol rate etc and sid.

And multiple would be good as well.!!!!!

catalinii commented 8 years ago

I will do this, however the biggest problem is that I need to change a good part of tables.c to accommodate for this feature

lars18th commented 8 years ago

Hi @catalinii ,

I will do this, however the biggest problem is that I need to change a good part of tables.c to accommodate for this feature

Then, a huge effort. I suggest to do in spare time. However, one option for playing channels without full pid info is a must have.

lars18th commented 8 years ago

Hi @catalinii ,

If you like to be compatible with Digital Devices OctopusNet "pid request mode", then the request format needs to be:

rtsp://sat.ip/?...&freq=11038&pol=v&msys=dvbs&sr=22000&x_pmt=1029

So, the parameter needs to be "x_pmt". Several developers are using "x_..." for "enhanced" parameteres.

We hope you can implement it!

catalinii commented 8 years ago

Hi,

I thought x_pmt is used to indicate the pmt of the channel being played for decrypting purposes.

Are you saying you can actually play a channel with the url you've posted?

lars18th commented 8 years ago

Hi @catalinii ,

Yes, you're right! Sorry! The "x_pmt" is for setting the decryption of the program with this pmt inside the server. But, perhaps you like to be compatible with this sintax. ;)

In any case, please, try to add support for "pmt" when you can. Thank you!

MadsBakholt commented 10 months ago

Any news on the SID parameter proposal, besides begin converted to a "RFE"?

lars18th commented 10 months ago

Hi @MadsBakholt ,

Sorry, no news! The implementation of the parameter x_sid= is stalled for now. Perhaps someone wants to contribute.