libtsfuncs is a library for mpeg PSI parsing and generation. https://georgi.unixsol.org/programs/libtsfuncs/
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.

tsfuncs_eit_test.c 2.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #include "tsfuncs.h"
  2. void test1(struct ts_eit *eit) { // Exactly one TS packet (188 bytes)
  3. ts_eit_add_short_event_descriptor(eit, 4, time(NULL), 3600,
  4. "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
  5. "yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy****");
  6. }
  7. void test2(struct ts_eit *eit) { // One TS packet + 2 bytes (2 bytes of the CRC are in the next packet
  8. ts_eit_add_short_event_descriptor(eit, 4, time(NULL), 3600,
  9. "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
  10. "yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy**");
  11. }
  12. void test3(struct ts_eit *eit) { // Test 4096 PSI packet
  13. int i;
  14. for (i=0;i<15;i++) {
  15. // Maximum descriptor size, 255 bytes
  16. if (ts_eit_add_short_event_descriptor(eit, 4, time(NULL), 3600, "zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx") != 1) {
  17. break;
  18. }
  19. }
  20. ts_eit_add_short_event_descriptor(eit, 4, time(NULL), 3600, "00000000000000000000000", "1111111111111111111111111111111");
  21. }
  22. void test4(struct ts_eit *eit) { // Test almost full PSI packet on the TS packet boundary
  23. int i;
  24. for (i=0;i<15;i++) {
  25. // Maximum descriptor size, 255 bytes
  26. if (ts_eit_add_short_event_descriptor(eit, 4, time(NULL), 3600, "zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx") != 1) {
  27. break;
  28. }
  29. }
  30. ts_eit_add_short_event_descriptor(eit, 4, time(NULL), 3600, "aaaaaaaaBBBB", NULL);
  31. }
  32. int main(int argc, char **argv) {
  33. int i;
  34. struct ts_eit *eit = ts_eit_alloc_init(1, 2, 3);
  35. // test1(eit);
  36. // test2(eit);
  37. // test3(eit);
  38. // test4(eit);
  39. ts_eit_dump(eit);
  40. // write(1, eit->section_header->packet_data, eit->section_header->num_packets * TS_PACKET_SIZE);
  41. ts_eit_free(eit);
  42. return 0;
  43. }