catalinii / minisatip

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

Inject a virtual SDT instead of mapping PID 17 from the first PMT #1084

Closed Jalle19 closed 1 year ago

Jalle19 commented 1 year ago

Should fix accidentally overwriting PID 18 (the virtual EIT) on the DDCI adapter with an SDT that has been mapped from PID 17 to PID 18.

Still not runtime tested, but the test cases pass now.

Jalle19 commented 1 year ago

Considering rewriting ddci_create_epg to return just the table, then we can use buffer_to_ts just like we do for PAT, SDT and PMTs. I also believe it's not necessary to write an EIT for the virtual CA service ID (MAKE_SID_FOR_CA), so we could skip that. The main point is that the EIT PID should be present, that's all the standard says.

catalinii commented 1 year ago

I added this for my CAM, I can test it next time it needs an update.

catalinii commented 1 year ago

I am fine either way...I will test this later anyway

Yuri666 commented 1 year ago

Now my old Viaccess CI+ 1.2 CAM get URI and start decrypting after 3-4 secs instead 10-12 secs when without patch. Now decrypting starts at DDCI as fast as in embedded CI

Jalle19 commented 1 year ago

Wow, that's great!

Jalle19 commented 1 year ago

Runtime testing this too right now, so far so good

Jalle19 commented 1 year ago

Testing out changes to the EIT PID at the same time. Biggest change is that we no longer include an EIT for the dummy SID, only for the SIDs defined in the SDT and that have PMTs. Up until now we've been doing it wrong, the specification says that when we're using:

actual TS, present/following event information = table_id = 0x4E

Then the table should only contain events for services in the current transport stream. The dummy SID is not part of the transport stream.

Jalle19 commented 1 year ago

https://github.com/Jalle19/minisatip/commit/5a7c363a934470ce916942751e047ccb1a27bae2

Jalle19 commented 1 year ago

Rebased