Menu

Request: Filter data with len 188

Anonymous
2015-11-17
2015-12-09
  • Anonymous

    Anonymous - 2015-11-17

    Hi,

    I just checked the provider ORF for the EMM data.
    As they are using 4 TS pakets (~3,5 EMMs in each) to transfer the EMM data the TS Header will be needed.
    Each TS paket have set the PUSI flag and if the EMM data isn't finished the following paket is including the missing data. But without the TS header it is not possible to determine if the first byte is new or remaining data.

    Log of the EMMs:

    #0
    47 42 58 10 00 82 40 3F 0A 27 45 00 00 00 38 8F   GBX   @? 'E   8 
    F9 DC 9C E1 1B 0F 4D 35 D2 39 84 45 68 DC CB 8F   ùÜ á  M5Ò9 EhÜË 
    D3 0F 51 38 2E F7 D3 F7 82 1E 05 B7 DF DF F0 DF   Ó Q8.÷Ó÷    ßßðß
    ED 1B 07 53 F8 7A B9 3E 95 CB D0 AF 02 E5 EF 94   í  Søz > ËÐ  åï 
    B4 E4 19 D3 98 4C 25 82 40 3F 0A 3C 52 00 00 00    ä Ó L% @? <R   
    38 22 34 53 37 F0 F3 6C A7 93 A3 B8 1E 0F 6E 61   8"4S7ðól      na
    88 B1 99 EC FF AA 30 35 0C B6 7D E7 9B 28 6B BF      ìÿ 05  }ç (k 
    49 EF E6 91 42 39 17 CF 1D B2 29 60 D1 C7 87 20   Iïæ B9 Ï  )`ÑÇ  
    2B 22 67 08 59 C9 E4 46 57 82 40 3F 0A 3C 44 00   +"g YÉäFW @? <D 
    00 00 38 E0 2B BC 68 48 BD A2 9F 0D A4 3B F7 B7     8à+ hH     ;÷ 
    7E 29 50 E6 BE E3 8A A4 94 34 6A 7D C5 25 16 52   ~)Pæ ã   4j}Å% R
    AB BD A2 80 73 9E 9A 3E 5C A1 33 0E                  €s  >\ 3 
    
    uint8_t p0[188] = {
    0x47, 0x42, 0x58, 0x10,
    0x00,
    0x82, 0x40, 0x3F, 0x0A, 0x27, 0x45, 0x00, 0x00, 0x00, 0x38, 0x8F, 0xF9, 0xDC, 0x9C, 0xE1, 0x1B, 0x0F, 0x4D, 0x35, 0xD2, 0x39, 0x84, 0x45, 0x68, 0xDC, 0xCB, 0x8F, 0xD3, 0x0F, 0x51, 0x38, 0x2E, 0xF7, 0xD3, 0xF7, 0x82, 0x1E, 0x05, 0xB7, 0xDF, 0xDF, 0xF0, 0xDF, 0xED, 0x1B, 0x07, 0x53, 0xF8, 0x7A, 0xB9, 0x3E, 0x95, 0xCB, 0xD0, 0xAF, 0x02, 0xE5, 0xEF, 0x94, 0xB4, 0xE4, 0x19, 0xD3, 0x98, 0x4C, 0x25,
    0x82, 0x40, 0x3F, 0x0A, 0x3C, 0x52, 0x00, 0x00, 0x00, 0x38, 0x22, 0x34, 0x53, 0x37, 0xF0, 0xF3, 0x6C, 0xA7, 0x93, 0xA3, 0xB8, 0x1E, 0x0F, 0x6E, 0x61, 0x88, 0xB1, 0x99, 0xEC, 0xFF, 0xAA, 0x30, 0x35, 0x0C, 0xB6, 0x7D, 0xE7, 0x9B, 0x28, 0x6B, 0xBF, 0x49, 0xEF, 0xE6, 0x91, 0x42, 0x39, 0x17, 0xCF, 0x1D, 0xB2, 0x29, 0x60, 0xD1, 0xC7, 0x87, 0x20, 0x2B, 0x22, 0x67, 0x08, 0x59, 0xC9, 0xE4, 0x46, 0x57,
    0x82, 0x40, 0x3F, 0x0A, 0x3C, 0x44, 0x00, 0x00, 0x00, 0x38, 0xE0, 0x2B, 0xBC, 0x68, 0x48, 0xBD, 0xA2, 0x9F, 0x0D, 0xA4, 0x3B, 0xF7, 0xB7, 0x7E, 0x29, 0x50, 0xE6, 0xBE, 0xE3, 0x8A, 0xA4, 0x94, 0x34, 0x6A, 0x7D, 0xC5, 0x25, 0x16, 0x52, 0xAB, 0xBD, 0xA2, 0x80, 0x73, 0x9E, 0x9A, 0x3E, 0x5C, 0xA1, 0x33, 0x0E
    };
    
    #1
    47 42 58 11 0F D7 35 52 53 48 11 39 2C F8 AD A0   GBX  ×5RSH 9,ø  
    1F 0B 2D C6 82 40 3F 0A 3C 47 00 00 00 38 71 CD     -Æ @? <G   8qÍ
    A3 37 56 B5 52 0F 52 D0 B2 90 E3 5E B4 72 D5 2D    7V R RÐ  ã^ rÕ-
    47 70 EB 5F AC 7A 46 F6 73 5B 43 E6 61 87 E0 1D   Gpë_ zFös[Cæa à 
    96 26 43 DF FF 2B A7 46 7D 5A D7 3E 5F 03 6A 0B    &Cßÿ+ F}Z×>_ j 
    FC DC 6B B4 F2 0C 82 40 3F 0A 26 D4 00 00 00 38   üÜk ò  @? &Ô   8
    FE 92 30 EF 18 C7 F2 A8 04 41 35 5C 87 77 06 E1   þ 0ï Çò  A5\ w á
    A9 F5 B1 7A 2E C3 08 75 BB 92 9D 6F 49 10 D7 F3    õ z.Ã u   oI ×ó
    70 9F E3 F2 E7 3A 62 BB AF 55 91 DD 38 7E 45 7A   p ãòç:b  U Ý8~Ez
    50 62 5C 0F F7 87 52 A8 82 40 3F 0A 27 54 00 00   Pb\ ÷ R  @? 'T  
    00 38 89 47 43 13 B7 2E FC FF B3 8E 01 B8 70 24    8 GC  .üÿ    p$
    CE 1F D1 B6 FB 47 BF 3F 82 A5 FA D7               Î Ñ ûG ?  ú×
    
    uint8_t p1[188] = {
    0x47, 0x42, 0x58, 0x11,
    0x0F,
    0xD7, 0x35, 0x52, 0x53, 0x48, 0x11, 0x39, 0x2C, 0xF8, 0xAD, 0xA0, 0x1F, 0x0B, 0x2D, 0xC6
    0x82, 0x40, 0x3F, 0x0A, 0x3C, 0x47, 0x00, 0x00, 0x00, 0x38, 0x71, 0xCD, 0xA3, 0x37, 0x56, 0xB5, 0x52, 0x0F, 0x52, 0xD0, 0xB2, 0x90, 0xE3, 0x5E, 0xB4, 0x72, 0xD5, 0x2D, 0x47, 0x70, 0xEB, 0x5F, 0xAC, 0x7A, 0x46, 0xF6, 0x73, 0x5B, 0x43, 0xE6, 0x61, 0x87, 0xE0, 0x1D, 0x96, 0x26, 0x43, 0xDF, 0xFF, 0x2B, 0xA7, 0x46, 0x7D, 0x5A, 0xD7, 0x3E, 0x5F, 0x03, 0x6A, 0x0B, 0xFC, 0xDC, 0x6B, 0xB4, 0xF2, 0x0C,
    0x82, 0x40, 0x3F, 0x0A, 0x26, 0xD4, 0x00, 0x00, 0x00, 0x38, 0xFE, 0x92, 0x30, 0xEF, 0x18, 0xC7, 0xF2, 0xA8, 0x04, 0x41, 0x35, 0x5C, 0x87, 0x77, 0x06, 0xE1, 0xA9, 0xF5, 0xB1, 0x7A, 0x2E, 0xC3, 0x08, 0x75, 0xBB, 0x92, 0x9D, 0x6F, 0x49, 0x10, 0xD7, 0xF3, 0x70, 0x9F, 0xE3, 0xF2, 0xE7, 0x3A, 0x62, 0xBB, 0xAF, 0x55, 0x91, 0xDD, 0x38, 0x7E, 0x45, 0x7A, 0x50, 0x62, 0x5C, 0x0F, 0xF7, 0x87, 0x52, 0xA8,
    0x82, 0x40, 0x3F, 0x0A, 0x27, 0x54, 0x00, 0x00, 0x00, 0x38, 0x89, 0x47, 0x43, 0x13, 0xB7, 0x2E, 0xFC, 0xFF, 0xB3, 0x8E, 0x01, 0xB8, 0x70, 0x24, 0xCE, 0x1F, 0xD1, 0xB6, 0xFB, 0x47, 0xBF, 0x3F, 0x82, 0xA5, 0xFA, 0xD7
    };
    
    #2
    47 42 58 12 1E 85 98 E0 E0 D8 9D 51 B9 0B 67 D0   GBX    ààØ Q  gÐ
    B0 40 62 94 38 A6 72 96 FC BF 74 94 77 31 B9 83    @b 8 r ü t w1  
    65 BA FC 82 40 3F 0A 27 01 00 00 00 38 57 AD 2F   e ü @? '    8W /
    58 8E 89 ED D2 CB 71 C4 AF 90 72 96 DA 74 A2 11   X  íÒËqÄ  r Út  
    78 C7 6B 12 0B 98 6A CD BD 92 30 9F 7A AB F0 2F   xÇk   jÍ  0 z ð/
    E0 25 4A B8 2E 51 2A 54 4C D6 E1 9D 07 8C 3A 53   à%J .Q*TLÖá   :S
    E1 63 D5 DD 2B 82 40 3F 0A 27 0A 00 00 00 38 A9   ácÕÝ+ @? '    8 
    DC B0 8E 48 18 B9 36 72 61 88 03 9A 5E 2D 62 34   Ü  H  6ra   ^-b4
    3B AB AF 79 1A 8E 20 CE F5 91 2B 3A 3E 12 26 A2   ;  y   Îõ +:> & 
    04 8D E7 7A FF 57 32 C8 74 F1 C1 1E 8A D3 CB 50     çzÿW2ÈtñÁ  ÓËP
    E6 FF 59 A2 93 3F F6 82 40 3F 0A 27 1F 00 00 00   æÿY  ?ö @? '    
    38 8A 21 51 3E 6E AE 83 84 8E 0C 25               8 !Q>n     %
    
    //#2
    uint8_t p2[188] = {
    0x47, 0x42, 0x58, 0x12,
    0x1E,
    0x85, 0x98, 0xE0, 0xE0, 0xD8, 0x9D, 0x51, 0xB9, 0x0B, 0x67, 0xD0, 0xB0, 0x40, 0x62, 0x94, 0x38, 0xA6, 0x72, 0x96, 0xFC, 0xBF, 0x74, 0x94, 0x77, 0x31, 0xB9, 0x83, 0x65, 0xBA, 0xFC
    0x82, 0x40, 0x3F, 0x0A, 0x27, 0x01, 0x00, 0x00, 0x00, 0x38, 0x57, 0xAD, 0x2F, 0x58, 0x8E, 0x89, 0xED, 0xD2, 0xCB, 0x71, 0xC4, 0xAF, 0x90, 0x72, 0x96, 0xDA, 0x74, 0xA2, 0x11, 0x78, 0xC7, 0x6B, 0x12, 0x0B, 0x98, 0x6A, 0xCD, 0xBD, 0x92, 0x30, 0x9F, 0x7A, 0xAB, 0xF0, 0x2F, 0xE0, 0x25, 0x4A, 0xB8, 0x2E, 0x51, 0x2A, 0x54, 0x4C, 0xD6, 0xE1, 0x9D, 0x07, 0x8C, 0x3A, 0x53, 0xE1, 0x63, 0xD5, 0xDD, 0x2B,
    0x82, 0x40, 0x3F, 0x0A, 0x27, 0x0A, 0x00, 0x00, 0x00, 0x38, 0xA9, 0xDC, 0xB0, 0x8E, 0x48, 0x18, 0xB9, 0x36, 0x72, 0x61, 0x88, 0x03, 0x9A, 0x5E, 0x2D, 0x62, 0x34, 0x3B, 0xAB, 0xAF, 0x79, 0x1A, 0x8E, 0x20, 0xCE, 0xF5, 0x91, 0x2B, 0x3A, 0x3E, 0x12, 0x26, 0xA2, 0x04, 0x8D, 0xE7, 0x7A, 0xFF, 0x57, 0x32, 0xC8, 0x74, 0xF1, 0xC1, 0x1E, 0x8A, 0xD3, 0xCB, 0x50, 0xE6, 0xFF, 0x59, 0xA2, 0x93, 0x3F, 0xF6,
    0x82, 0x40, 0x3F, 0x0A, 0x27, 0x1F, 0x00, 0x00, 0x00, 0x38, 0x8A, 0x21, 0x51, 0x3E, 0x6E, 0xAE, 0x83, 0x84, 0x8E, 0x0C, 0x25
    };
    
    #3
    47 42 58 13 2D ED BC E5 60 14 45 41 0E 94 FA D3   GBX -í å` EA  úÓ
    51 75 AC 9F 53 93 C3 86 81 29 56 A5 7E 23 7F C9   Qu  S Ã  )V ~#É
    8D A9 99 AA D2 B6 A5 F7 27 EB AB 56 2F 7A 25 8F       Ò  ÷'ë V/z% 
    34 E9 82 40 3F 0A 26 E1 00 00 00 38 C6 76 B8 24   4é @? &á   8Æv $
    2F BA 8D AF 1C AE 57 A7 C4 37 11 4B C6 84 24 3C   /     W Ä7 KÆ $<
    BA A1 F7 CB FE C5 97 6D 3B 4D E1 17 06 E0 E8 40     ÷ËþÅ m;Má  àè@
    1E 48 BB 6C F6 2B 3E 08 6B 2A 59 39 07 E0 4E 52    H lö+> k*Y9 àNR
    0C 75 39 5C 82 40 3F 0A 27 02 00 00 00 38 78 8E    u9\ @? '    8x 
    69 66 F4 9A F7 F8 7B F3 BB 61 E4 F4 67 37 8F 8D   ifô ÷ø{ó aäôg7  
    AE DE 16 BC D3 90 94 62 4D 92 09 8B 55 39 CD F6    Þ  Ó  bM   U9Íö
    30 67 25 EA D7 B3 A4 27 CD 08 D2 E5 9A 96 86 95   0g%ê×  'Í Òå    
    06 6F AF 32 BA E3 FF FF FF FF FF FF                o 2 ãÿÿÿÿÿÿ
    
    //#3
    uint8_t p3[188] = {
    0x47, 0x42, 0x58, 0x13,
    0x2D,
    0xED, 0xBC, 0xE5, 0x60, 0x14, 0x45, 0x41, 0x0E, 0x94, 0xFA, 0xD3, 0x51, 0x75, 0xAC, 0x9F, 0x53, 0x93, 0xC3, 0x86, 0x81, 0x29, 0x56, 0xA5, 0x7E, 0x23, 0x7F, 0xC9, 0x8D, 0xA9, 0x99, 0xAA, 0xD2, 0xB6, 0xA5, 0xF7, 0x27, 0xEB, 0xAB, 0x56, 0x2F, 0x7A, 0x25, 0x8F, 0x34, 0xE9,
    0x82, 0x40, 0x3F, 0x0A, 0x26, 0xE1, 0x00, 0x00, 0x00, 0x38, 0xC6, 0x76, 0xB8, 0x24, 0x2F, 0xBA, 0x8D, 0xAF, 0x1C, 0xAE, 0x57, 0xA7, 0xC4, 0x37, 0x11, 0x4B, 0xC6, 0x84, 0x24, 0x3C, 0xBA, 0xA1, 0xF7, 0xCB, 0xFE, 0xC5, 0x97, 0x6D, 0x3B, 0x4D, 0xE1, 0x17, 0x06, 0xE0, 0xE8, 0x40, 0x1E, 0x48, 0xBB, 0x6C, 0xF6, 0x2B, 0x3E, 0x08, 0x6B, 0x2A, 0x59, 0x39, 0x07, 0xE0, 0x4E, 0x52, 0x0C, 0x75, 0x39, 0x5C,
    0x82, 0x40, 0x3F, 0x0A, 0x27, 0x02, 0x00, 0x00, 0x00, 0x38, 0x78, 0x8E, 0x69, 0x66, 0xF4, 0x9A, 0xF7, 0xF8, 0x7B, 0xF3, 0xBB, 0x61, 0xE4, 0xF4, 0x67, 0x37, 0x8F, 0x8D, 0xAE, 0xDE, 0x16, 0xBC, 0xD3, 0x90, 0x94, 0x62, 0x4D, 0x92, 0x09, 0x8B, 0x55, 0x39, 0xCD, 0xF6, 0x30, 0x67, 0x25, 0xEA, 0xD7, 0xB3, 0xA4, 0x27, 0xCD, 0x08, 0xD2, 0xE5, 0x9A, 0x96, 0x86, 0x95, 0x06, 0x6F, 0xAF, 0x32, 0xBA, 0xE3,
    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
    };
    
     
  • PlusPlus

    PlusPlus - 2015-11-17

    Hi

    Are there any documentation about passing packets with header. Current version of code works well with magority of known MDAPI and I don't like to break it.

     
  • Anonymous

    Anonymous - 2015-11-17

    https://en.wikipedia.org/wiki/MPEG_transport_stream

    The Header is very usefull if data (PAT/CAT/PMT/ECM/EMM...) is splited to several ts packets.
    Payload Unit Start Indicator: telling the user that the data payload is starting in this packet
    PID: make it easier to filter the packets by PID. Right now I handle it through the filter_number -> PID.
    Adaptation field exist: necessary to skip those data in packet
    Contains payload: are there some usefull payload in the packet?
    Continuity counter: needed to assemble the data if it is splited to two or more packets.

    If the header is missing it is only possible to guess if the second packet will fit to the first what got received. With the header you can be sure...

     
  • PlusPlus

    PlusPlus - 2015-11-17

    The DS filter process TS stream, so the code splits it into the packets and process packetes headers. My question is: how the plugin may ask filter to pass packets with or without headers?

     
  • Anonymous

    Anonymous - 2015-11-17

    It can be done on setting the filter by the PID.
    As the PID can be max 0x1FFF you can use PID | 0x8000 to signal that 188 bytes should be used instead 184.
    I think ProgDVB is handling this in the same way.

     
  • PlusPlus

    PlusPlus - 2015-11-17

    Ok, it seems to be useful. I'll implement this feature and let you know

     
  • PlusPlus

    PlusPlus - 2015-11-18

    I've made the changes and pushd it. Unfortunately I cannot check it. Do you need updated installation in order to check the changes?

     
  • Anonymous

    Anonymous - 2015-11-18

    Great, thx!

    I will check the source first. Will take some time.
    By the way, is there a way to check the MDAPI+ revision?

    Because if I or the PID with 0x8000 on older versions there will be no data filtered because of "unreal" PID.

    And yes, I think I will need an updated installation for this because my system isn't set up to compile the source.

     

    Last edit: Anonymous 2015-11-18
  • PlusPlus

    PlusPlus - 2015-11-18

    There are two abilities for version checking. I could add version and build number in the string which host application reports in answer to MDAPI_GET_VERSION message. This string also might be changed in INI file for any plugin, so it is not so good idea. Another way is to check if the plugin loaded from MDAPIHost.exe applicaion and then check file version. Version where 188 packets are implemented will has build number > 1610

     
    • Anonymous

      Anonymous - 2015-11-18

      Thx for this idea, I will try...

       
  • PlusPlus

    PlusPlus - 2015-11-18

    The sample code which shows the version is in MDAPIHost\MDAPIHost.cpp file

    Sorry, in MDHostAbout.cpp file

     

    Last edit: PlusPlus 2015-11-18
  • MDAPI_Plus

    MDAPI_Plus - 2015-11-19

    Hey,
    I have pushed also the vs2010 branch to be able to build it.

     
    • Dale

      Dale - 2015-11-20

      I was looking for TS-188 support.

      So I downloede you old file. I was expecting to see mdapifilter.ax or similar type of file, as the original Agarwal's filter.

      But instead I see MDAPI_Plus_0_9_0_1606.exe

      Can you explained the diference?

      Also do you intent to post the final binary with TS-188 support.

      Thanks to both. To the author and for the user requesting what I was looking.

       
  • PlusPlus

    PlusPlus - 2015-11-20

    Hi, Dale

    exe file just installs the filter (.ax) and all required stuff. I've attached here new build with 188 bytes packets support. It is not tested.

     
  • Dale

    Dale - 2015-11-21

    Please take a minute to understand me. Seting up media Portal takes a lot of work. I do not want to risk my instalation by using you automatic install. I prefer just to received "mdapifilter.ax" compatible file.
    So I installed you files some place else. I do not see mdapifilter.ax instead I see MDAPI_Plus.ax but it is Half the original size!! Is this the correct file?


    Let me explain what I am trying to do.
    I have a new plugin. Its deveoper told me that in order to work in Media Portal it:

    So DVB-App developers need to change their applications slightly:
    1) PID = (PID | 0x8000) means please send TS-188, instead of TS-184.
    2) Use the modified TS buffer after its changes in the plugin.

    So under this pluging no furder process in ffdecsa.dll is required as its job is done internally in the plugin. ts returned is unencrypted.

    But please leave the option as it is nice to have it for other plugins such as Biss.

     

    Last edit: Dale 2015-11-21
  • MDAPI_Plus

    MDAPI_Plus - 2015-11-21

    The Plugin was rewritten from scrach so it's normal that the size is different, you need to use the setup because you have also the mdapihost.exe working in background to let you have windows plugin available (not the case with mdapifilter) and setup in program directory.

    You can always unregister the new .ax if you want to use the old.ax (after installation from exe is finished).

    This work correctly with mediaportal.

     
  • PlusPlus

    PlusPlus - 2015-11-21

    Dale,

    function of DS filter (.ax file) is to decode the stream, function of plugin is to provide the keys for decryption. Not I have decided it, it is the standard. You may use it as is or take the sources and create your data pipeline.

    I've created MDAPI_Plus to make it easy to install and use in opposite to Agarwal's filter which requires a lot of manual configuration.

     
  • Dale

    Dale - 2015-11-21

    1rst thanks for this great aplication.
    My apologies for thinking on the required work to learn and use a new aplication. Without taking in acount your time and work. So I was lucky, I found a couple of tutorials on your aplication. And in fact I did install allready with you setup. And yes it is easy to install good job.

    "function of DS filter (.ax file) is to decode the stream, function of plugin is to provide the keys for decryption."

    I know, but you are asuming that CSA is the only method for decryption as I guess at least the mayority it is. For other systems a more creative methods have to be implemented.

    So yes I may be searching for a not usual solution. I like Media Portal and Agarwal's filter was the only thing I knew. Then I found this message thread.

    I am no expert on this but my understanding is that the pluging I want to use require to received the whole encrypted TS, The pluging will decode. DS filter will not be required to send ts to CSA dlls.

    In my test last night, the program crash when try to activate the plugin. That error sims to go away when I increse the buffer size. Buffer size still at 184 multiple in setup!! Should it be in my case 188?

    I found a set up that allowed the plugin to execute. And I saw it was generating the keys required. But screen was black. I asume that the Video/Audio part of TS was not sent to plugin or your app was not letting the ts untouch afterwards.

    I also saw that your app will shutoff the plugin as soon as I change to a clear channel.

    Any way, for the time the plugin work generating keys, I could asume that the TS188 part is working, I guess the buffer size is what I wonder.

    Where can I found the source with the latest changes made for this TS188?
    Can you sugest any reading in the web that talks about DS Filter?

    Thanks in advance.

     

    Last edit: Dale 2015-11-23
  • PlusPlus

    PlusPlus - 2015-11-23

    Hi Dale,

    Thank you for good words.

    Could you please create new thread and post there all posible log files. Unfortynately I have only DVB-C (cable) TV tuner and I don't use any sharing or server based solutions.

     
  • PlusPlus

    PlusPlus - 2015-12-09

    Hello all
    It seems like 188 bytes mode is finally debuged and works well. I've uploaded new build.

     

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.