tsdecrypt reads and decrypts CSA encrypted incoming mpeg transport stream over UDP/RTP using code words obtained from OSCAM or similar CAM server. tsdecrypt communicates with CAM server using cs378x (camd35 over tcp) protocol or newcamd protocol. https://georgi.unixsol.org/programs/tsdecrypt/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

FAQ.txt 3.0KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. -------
  2. FFdecsa
  3. -------
  4. FFdecsa is a fast implementation of the CSA decryption algorithm for MPEG
  5. TS packets.
  6. Q: What does FF stands for?
  7. A: FFdecsa means "Fucking Fast decsa".
  8. Q: Why would you use such a rude name?
  9. A: Because this code is fucking fast, more than 800% the speed of the best
  10. implementation I'm able to find around at the moment.
  11. Q: How it that possible? Are all other programmers stupid?
  12. A: No, they just tried to save a cycle or two tweaking a fundamentally wrong
  13. implementation. The algorithm has to be implemented in a totally different
  14. way to achieve good speed.
  15. Q: Do you use multimedia instructions?
  16. A: I use every trick I could come up with, including multimedia instructions.
  17. They are not fundamental in achieving speed, a version without them runs
  18. at 6x the speed of the best implementation around (which uses MMX).
  19. Q: So how did you do that?
  20. A: By using a different approach for the implementation. This code is not
  21. exploiting some new CSA vulnerability, it is just doing the same
  22. calculations better. Think about replacing bubble sort with quick sort.
  23. Q: You're joking, it's impossible to gain so much speed.
  24. A: Speed test are available, technical documentation is available, source
  25. code is available. Try it yourself.
  26. If you want details, these are some of the documented tricks I used
  27. (more details in the docs directory):
  28. TRICK NUMBER 0: emulate the hardware
  29. TRICK NUMBER 1: virtual shift registers
  30. TRICK NUMBER 2: parallel bitslice
  31. TRICK NUMBER 3: multimedia instructions
  32. TRICK NUMBER 4: parallel byteslice
  33. TRICK NUMBER 5: efficient bit permutation
  34. TRICK NUMBER 6: efficient normal<->slice conversion
  35. TRICK NUMBER 7: try hard to process packets together
  36. TRICK NUMBER 8: try to avoid doing the same thing many times
  37. TRICK NUMBER 9: compiler
  38. TRICK NUMBER a: a lot of brain work
  39. Q: How can be this code useful?
  40. A: You can use this code in place of the old slow implementations and save a
  41. lot of CPU power.
  42. Q: Just that?
  43. A: Well, new applications are possible.
  44. Decrypting a whole transponder is easily doable now. Well, a $50 CPU can
  45. decrypt four transponder at the same time if you have four DVB boards (but
  46. I couldn't test that).
  47. Q: You're cheating, this code is fake, I don't believe one word.
  48. A: Go away. This is technical stuff for people with brains.
  49. Q: This code is great, may I distribute your code in original or modified
  50. form?
  51. A: Only if you respect the license.
  52. Q: May I use your code in my player/library/plugin...?
  53. A: Again, you have to respect the license.
  54. Q: Are you an extraterrestrial programmer?
  55. A: No, just a Turkish guy with a PC to play with :-)
  56. Q: Why did you spend your time doing this?
  57. A: Because I thought that my approach was doable and I was sure it would
  58. have been much faster, so I had to implement it to confirm I was right.
  59. I got 8x the speed and that's enough to be proud of it. And I could not
  60. just keep the code for myself only.
  61. Q: What is the answer to the meaning of the universe?
  62. A: 42,43,71,5f,65,85,f6,76,0d,13,28,96,...