Beispiel #1
0
def parseTS_Packet(data):
    #log.debug("entering parseTS_Packet")
    bs = BitStructure('PACKET')
    bs.append(BitField('sync byte',		BIT_SIZE * 8))
    bs.append(BitField('Transport Error Indicator (TEI)', BIT_SIZE * 1)) #defult 0xbd
    bs.append(BitField('Payload Unit Start Indicator',		BIT_SIZE * 1))
    bs.append(BitField('Transport Priority',		BIT_SIZE * 1))
    bs.append(BitField('PID',		BIT_SIZE * 13))
    bs.append(BitField('Scrambling control',		BIT_SIZE * 2))
    bs.append(BitField('Adaptation field exist',		BIT_SIZE * 1))
    bs.append(BitField('Payload data exist',		BIT_SIZE * 1))
    bs.append(BitField('Continuity counter',		BIT_SIZE * 4))
    bs.set_array(data)
    pusi = bs.field('Payload Unit Start Indicator').value()
    pid = bs.field('PID').value()
    if (pusi == 0x1 and pid == 0x906):   
        print "PUSI !!! on: " + str(pid) 
        if (bs.field('Adaptation field exist').value() == 0x1):
            parseTS_Adaptation(bs, data)
        if (bs.field('Payload data exist').value() == 0x1) and (pusi == 0x1):
            parse_PES_START_INFO(bs, data)