PLI developer Oscam-EMU stream relay changes. From 13 Oct 2023
- abu baniaz
- Thread is marked as Resolved.
-
-
It's the namespace that is faked
(It is true that, in the case of oscam, the namespace is currently only a decoration and has no particular significance from oscam's point of view, and it is not oscam's task to calculate this...)
But since I don't have an e2 device, I was forced to calculate the value of the namespace myself.
C
Display More#include <stdio.h> #include <stdint.h> #include <stdlib.h> #define DVB_TYPE_NONE 0 #define DVB_TYPE_T 1 /* terrestrial */ #define DVB_TYPE_C 2 /* cable */ #define DVB_TYPE_S 3 /* satellite */ #define DVB_TYPE_ATSC_T 4 /* terrestrial - north america */ #define DVB_TYPE_ATSC_C 5 /* cable - north america */ #define DVB_TYPE_CABLECARD 6 /* CableCARD - North America */ #define DVB_TYPE_ISDB_T 7 /* terrestrial - japan, brazil */ #define DVB_TYPE_ISDB_C 8 /* cable - japan, brazil */ #define DVB_TYPE_ISDB_S 9 /* satellite - japan, brazil */ #define DVB_TYPE_DTMB 10 /* DTMB - china, cuba, hong kong, macau */ #define DVB_TYPE_DAB 11 /* digital radio (europe) */ // POLARISATION #define HORIZONTAL 0 #define VERTICAL 1 #define LEFT 2 #define RIGHT 3 int s; #define IGNORE_SUB_NETWORK 0 // Ignore DVB-x namespace sub network #define ENIGMA_2 1 // Enigma 2 (OpenPLI 8.0 and above) #define ENIGMA_2_OLD 2 // Enigma 2 (old) static uint32_t create_channel_namespace(uint16_t freq, int pos, uint8_t pol, uint16_t onid, uint16_t tsid, uint8_t type); int main() { uint16_t freq = 11914; // Frequency int pos = 192; // orbital position (19.2°W) uint8_t pol = HORIZONTAL; // polarisation (HORIZONTAL or VERTICAL) uint16_t onid = 133; // Original Network ID uint16_t tsid = 6; // Transport Stream ID uint32_t sid = 131; // VPID for(s = 2; s >= 0; s--) { uint32_t namespace = create_channel_namespace(freq, pos, pol, onid, tsid, DVB_TYPE_S); printf("namespace: %X %s\n", namespace, s ? (s == 1 ? "(new hash)" : "(old hash)") : "(namespace sub network ignoring)"); //printf("#SERVICE 1:0:""\"Service_Type""\":%X:%X:%X:%X:0:0:0: (sid: %x, onid: %X, tsid: %X, ens: %X)\n#",sid, tsid, onid, namespace, sid, onid, tsid, namespace); } return 0; } /*<-------------------------------------------------------------------->*/ static uint8_t isvalid(uint16_t onid, uint16_t tsid, int orbital_position) { //printf("%s\n", s ? (s == 1 ? "(new hash)" : "(old hash)") : "(namespace sub network ignoring)"); switch(s) { case ENIGMA_2: // OpenPLI 8.0 and above... if(onid == 0 || (onid == 1 && tsid < 2) || onid >= 0xFF00) { return 0; } else { return 1; } case ENIGMA_2_OLD: switch(onid) { case 0: case 0x1111: return 0; case 0x13E: // workaround for 11258H and 11470V on hotbird with same ONID/TSID (0x13E/0x578) return orbital_position != 130 && tsid != 0x578; case 1: return orbital_position == 192; case 0x00B1: return tsid != 0x00B0; case 0x00eb: return tsid != 0x4321; case 0x0002: return abs(orbital_position-282) < 6 && tsid != 2019; case 0x2000: return tsid != 0x1000; case 0x5E: return abs(orbital_position-48) < 3 && tsid != 1; case 0x0070: // Eutelsat W7 36.0E 12174L and 12284R have same ONID/TSID (0x0070/0x0008) return orbital_position != 360 || tsid != 0x0008; case 10100: // Eutelsat W7 36.0E 11644V and 11652V return orbital_position != 360 || tsid != 10187; case 42: // Tuerksat 42.0E return orbital_position != 420 || ( tsid != 8 && // 11830V 12729V tsid != 5 && // 12679V 12685H tsid != 2 && // 11096V 12015H tsid != 55); // 11996V 11716V case 100: // Intelsat 10 68.5E 3808V 3796V 4012V, Amos 4.0W 10723V 11571H return (orbital_position != 685 && orbital_position != 3560) || tsid != 1; case 70: // Thor 0.8W 11862H 12341V return abs(orbital_position-3592) < 3 && tsid != 46; case 32: // NSS 806 (40.5W) 4059R, 3774L return orbital_position != 3195 || tsid != 21; case 126: // 11221H and 11387H on Utelsat 7.0E with same ONID/TSID (126/40700) return orbital_position != 70 || (tsid != 40700 && tsid != 30300); case 3622: // 11881H and 12284V on Badr 26.0E with same ONID/TSID (3622/100) return orbital_position != 260 || tsid != 100; default: return onid < 0xFF00; } } } static uint32_t create_channel_namespace(uint16_t freq, int pos, uint8_t pol, uint16_t onid, uint16_t tsid, uint8_t type) { //printf("%s\n", s ? (s == 1 ? "(new hash)" : "(old hash)") : "(namespace sub network ignoring)"); uint32_t hash = 0; switch(type) { case DVB_TYPE_S: hash = (pos >= 0 ? pos : 3600 + pos) << 16; if((s != IGNORE_SUB_NETWORK) && !isvalid(onid, tsid, hash >> 16)) // on valid ONIDs, ignore frequency ("sub network") part { hash |= (freq) | (pol == VERTICAL ? 0x8000 : 0); } break; case DVB_TYPE_C: case DVB_TYPE_ATSC_C: hash = 0xFFFF0000; break; case DVB_TYPE_T: hash = 0xEEEE0000; break; case DVB_TYPE_ATSC_T: hash = 0xDDDD0000; break; default: return 0; } return hash; }
out:
namespace: C00000 (old hash)
namespace: C00000 (new hash)
namespace: C00000 (namespace sub network ignoring)
maybe this calculation example is wrong,
but the result is the same as in whitelist_streamrelay, that is, the namespace is C00000
It is still not clear to me exactly what is wrong and what needs to be changed or what is fake...
So again I ask what should be changed in oscam-emu if everything works fine?
-
but the result is the same as in whitelist_streamrelay, that is, the namespace is C00000
It is still not clear to me exactly what is wrong and what needs to be changed or what is fake...
So again I ask what should be changed in oscam-emu if everything works fine?
If you don't use a dummy namespace with an SR channel, then oscam never gets the request, thus it doesn't even attempt to decode anything.
-
On all channels that depend on streamrelay
-
Stream Relay configOpen Source Cam Emulator. Contribute to oscam-emu/oscam-patched development by creating an account on GitHub.github.com
-
Yes
-
To add a channel to the whitelist_streamrelay, open up the channel list by pressing up/down (not EPG button)
You will see the the option on the screen if your image has added the function.
To remove it, same process, but note the change in wording
-
As of roughly mid December 2023 some images have added a Stream Relay Settings page
For OpenATV (other images will have slighty differrnt menu)
Menu > Setup > Decryption > Parental Control > Stream Relay Settings
This page will list all the services that are added to the whitelist_streamrelay file. You can remove any channels from there.
This is a setup screen, so left/right will not work. To jump by page, press Ch +/-
-
Just to help those who might need it. Images have slightly different menu systems, I am not going to list every image.
For OpenViX 6.4 010 and newer
Menu > Setup > Softcam Management > Stream Relay Settings
This page will list all the services that are added to the whitelist_streamrelay file. You can also remove any channels from there if needed. As most Vix users use ABM, ABM will update the file for 28.2 services anyway.
-
Nice to see this feature I initiated a few mo the ago is adapted.
When the ‘editor’ for whitelisted services show the services as service like the ci assignment plugin for example this feature should be nice as plugin and showing in the softcam/ci menu. Softwaremanagent is a strange place.
-
Just to help those who might need it. Images have slightly different menu systems, I am not going to list every image.
For OpenViX 6.4 010 and newer
Menu > Setup > Softcam Management > Stream Relay Settings
This page will list all the services that are added to the whitelist_streamrelay file. You can also remove any channels from there if needed. As most Vix users use ABM, ABM will update the file for 28.2 services anyway.
Open PLI is the same ?
-
OpenPLi do not have the Stream Relay settings menu yet.
-
OpenPLi do not have the Stream Relay settings menu yet.
On the Nightly builds, which are quite stable, you can set certain channels to use stream relay.
Of course, you need oscam with icam and a decent share.
-
In the channel settings you can indeed mark and unmark services. It seems openvix added an extra tool where you see the servicerefs and are as far I can see able to add and remove them but in the snapshot it does not give a user friendly overview (yet). My ground idea was that you can put the whitelist to the box and for small adjustments you can use the context menu.
Adding it to abm does not have a real added value as not all the channels use icam. Then you also ‘relay’ services that do not need it (in the German sky arrives this is eg for Heimatkanal). So I think it is better to make whitelists available for download than creating features that at the end are also not really user friendly when you use a remote control. But unless this thanks for the merge request regarding these stream relay editors (sorry where is it?)
And indeed it is available in openpli Develop Nightly Builds… the first who had it. And also thanks to DimarCC who added stuff to make the streamrelay stuff even more stealthly and also fixes some other side effects.
-
stream relay installed on my box I managed to make it work well... but if you then want to use the decoder pley it crashes... the multimedia player no longer works... tested on the 920 decoder with OpenPli Nightly Bulid from April 2022....but I have a backup of the latest Pli soft which recently came out and works well,...now I put back my backup from a month ago which was perfect without stream relay.
-
In the channel settings you can indeed mark and unmark services. It seems openvix added an extra tool where you see the servicerefs and are as far I can see able to add and remove them but in the snapshot it does not give a user friendly overview (yet). My ground idea was that you can put the whitelist to the box and for small adjustments you can use the context menu.
Adding it to abm does not have a real added value as not all the channels use icam. Then you also ‘relay’ services that do not need it (in the German sky arrives this is eg for Heimatkanal). So I think it is better to make whitelists available for download than creating features that at the end are also not really user friendly when you use a remote control. But unless this thanks for the merge request regarding these stream relay editors (sorry where is it?)
And indeed it is available in openpli Develop Nightly Builds… the first who had it. And also thanks to DimarCC who added stuff to make the streamrelay stuff even more stealthly and also fixes some other side effects.
Maybe one day you will test things to see what they actually do, before you jump to conclusions about what they do, how they work and complain about what a bad idea it is .
-
Could e2 not read the oscam log and enable / disable stream relay as required ? There would be no need to maintain a whitelist then...
Really the drives should be patched and we would not even need stream relay. But I wont hold my breath there.
-
That can’t work… as you need to do the relay or not.
Regarding the whitelist editor I think it is smarter to make something available to download a complete whitelist. I think for users this is more user friendly… and less code/changes needed to enigma2.
-
That can’t work… as you need to do the relay or not.
EvO as always good stuff is taken from openpli but not always stuff is coming back. And I just mentioned that adding channels via whitelist has alsways issues without having already a kind of whitelist… and instead of an editor just put a whitelist file to the box is much easier than going with a remote through services also still kind of one by one…. And now I’m waiting for the merge request on openpli’s GitHub…
You are more than capable of pulling changes, instead of just waiting for merge requests.
No doubt if a merge request had been created, you would have refused it, or wanted months of discussions about how it should have been done, rather than how it has been done, before accepting it anyway. -
Do you really think it is helpful to go into attack mode here?
OSCam-EMU Support Forum
Participate now!
Don’t have an account yet? Register yourself now and be a part of our community!