home
products
contribute
download
documentation
forum
Home
Forums
New posts
Search forums
What's new
New posts
All posts
Latest activity
Members
Registered members
Current visitors
Donate
Log in
Register
What's new
Search
Search
Search titles only
By:
New posts
Search forums
Search titles only
By:
Menu
Log in
Register
Navigation
Install the app
Install
More options
Contact us
Close Menu
Forums
General Forums
Newcomers Forum
Annoying CI OSD asking continuously for Rights Check
Contact us
RSS
JavaScript is disabled. For a better experience, please enable JavaScript in your browser before proceeding.
You are using an out of date browser. It may not display this or other websites correctly.
You should upgrade or use an
alternative browser
.
Reply to thread
Message
<blockquote data-quote="morpheus_xx" data-source="post: 546962" data-attributes="member: 48495"><p>this is the code for patching the PMT for AstonCrypt2. I think that this does only work partitially, maybe more streams/pid need patching too. </p><p></p><p>missing some PIDs might result in a message from CAM, that it was not able to descramble something...</p><p></p><p>[CODE] /// <summary></p><p> /// Patches the PMT to force standard AC3 header.</p><p> /// </summary></p><p> /// <param name="PMT">byte array containing the PMT</param></p><p> /// <param name="pmtLength">length of the pmt array</param></p><p> /// <param name="newPmtLength">The new PMT length</param></p><p> /// <returns></returns></p><p> private static byte[] PatchPMT_AstonCrypt2(byte[] PMT, int pmtLength, out int newPmtLength)</p><p> {</p><p> byte[] newPMT = new byte[1024]; // create a new array.</p><p></p><p> int ps = 0;</p><p> int pd = 0;</p><p></p><p> for (int i = 0; i < 12; ++i)</p><p> newPMT[pd++] = PMT[ps++];</p><p> for (int i = 0; i < PMT[11]; ++i)</p><p> newPMT[pd++] = PMT[ps++];</p><p></p><p> // Need to patch audio AC3 channels 0x06, , , , ,0x6A in real AC3 descriptor 0x81, .... for ( at least !) ASTONCRYPT CAM module</p><p> while ((ps + 5 < pmtLength) && (pd < 1024))</p><p> {</p><p> int len = PMT[ps + 4] + 5;</p><p> for (int i = 0; i < len; ++i)</p><p> {</p><p> if (pd >= 1024)</p><p> break;</p><p> if ((i == 0) && (PMT[ps] == 0x06) && (PMT[ps + 5] == 0x6A)) { newPMT[pd++] = 0x81; ps++; }</p><p> else</p><p> newPMT[pd++] = PMT[ps++];</p><p> }</p><p> }</p><p></p><p> newPmtLength = pd;</p><p> return newPMT;</p><p> }</p><p>[/CODE]</p><p></p><p>Question: Do the CAM messages also occur, if you set the CAM type to default (means no patching)?</p></blockquote><p></p>
[QUOTE="morpheus_xx, post: 546962, member: 48495"] this is the code for patching the PMT for AstonCrypt2. I think that this does only work partitially, maybe more streams/pid need patching too. missing some PIDs might result in a message from CAM, that it was not able to descramble something... [CODE] /// <summary> /// Patches the PMT to force standard AC3 header. /// </summary> /// <param name="PMT">byte array containing the PMT</param> /// <param name="pmtLength">length of the pmt array</param> /// <param name="newPmtLength">The new PMT length</param> /// <returns></returns> private static byte[] PatchPMT_AstonCrypt2(byte[] PMT, int pmtLength, out int newPmtLength) { byte[] newPMT = new byte[1024]; // create a new array. int ps = 0; int pd = 0; for (int i = 0; i < 12; ++i) newPMT[pd++] = PMT[ps++]; for (int i = 0; i < PMT[11]; ++i) newPMT[pd++] = PMT[ps++]; // Need to patch audio AC3 channels 0x06, , , , ,0x6A in real AC3 descriptor 0x81, .... for ( at least !) ASTONCRYPT CAM module while ((ps + 5 < pmtLength) && (pd < 1024)) { int len = PMT[ps + 4] + 5; for (int i = 0; i < len; ++i) { if (pd >= 1024) break; if ((i == 0) && (PMT[ps] == 0x06) && (PMT[ps + 5] == 0x6A)) { newPMT[pd++] = 0x81; ps++; } else newPMT[pd++] = PMT[ps++]; } } newPmtLength = pd; return newPMT; } [/CODE] Question: Do the CAM messages also occur, if you set the CAM type to default (means no patching)? [/QUOTE]
Insert quotes…
Verification
Post reply
Forums
General Forums
Newcomers Forum
Annoying CI OSD asking continuously for Rights Check
Contact us
RSS
Top
Bottom