X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Packets%2FMPEGDVBBundle%2FTransportPacket.test.cc;h=7879ff0730dc1cb2cb145009c37838b5935fabf6;hb=165ec46dc3d091c354ef8dbda67dcf7b1a97fc7d;hp=91f0f28a6aa33e9dfcd045138f67ce1cb1024d87;hpb=034f9bec0a66d26314fb6ebc83dedf1618a2c19d;p=senf.git diff --git a/Packets/MPEGDVBBundle/TransportPacket.test.cc b/Packets/MPEGDVBBundle/TransportPacket.test.cc index 91f0f28..7879ff0 100644 --- a/Packets/MPEGDVBBundle/TransportPacket.test.cc +++ b/Packets/MPEGDVBBundle/TransportPacket.test.cc @@ -30,28 +30,37 @@ #include "../../Utils/auto_unit_test.hh" #include +#include #define prefix_ ///////////////////////////////cc.p//////////////////////////////////////// using namespace senf; -BOOST_AUTO_UNIT_TEST(transportPacket_packet) +BOOST_AUTO_UNIT_TEST(transportPacket_parse) { // TransportStream-Packet containing a ULE encoded IPv6 ping packet, // captured with dvbsnoop unsigned char data[] = { - 0x47, 0x41, 0x0f, 0x1e, 0x00, 0x80, 0x4c, 0x86, - 0xdd, 0x60, 0x00, 0x00, 0x00, 0x00, 0x20, 0x11, - 0x40, 0xfe, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x48, 0x7c, 0x7e, 0xff, 0xfe, 0x23, 0x68, - 0xaf, 0xff, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, - 0x04 ,0x02, 0x8c, 0x02, 0x8c, 0x00, 0x20, 0x58, - 0xe1, 0x11, 0x05, 0x12, 0x67, 0x06, 0x2f, 0x01, - 0x00, 0x20, 0x01, 0x06, 0x38, 0x04, 0x09, 0x10, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, - 0x00, 0x1d, 0xc4, 0xe8, 0xc1, 0xff, 0xff, 0xff, + // Transport Packet Header + 0x47, 0x41, 0x0f, 0x1e, + // Payload Pointer + 0x00, + // SNDU Header + 0x80, 0x4c, 0x86, 0xdd, + // IPv6 Packet + 0x60, 0x00, 0x00, 0x00, 0x00, 0x20, 0x11, 0x40, + 0xfe, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x48, 0x7c, 0x7e, 0xff, 0xfe, 0x23, 0x68, 0xaf, + 0xff, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x04, + 0x02, 0x8c, 0x02, 0x8c, 0x00, 0x20, 0x58, 0xe1, + 0x11, 0x05, 0x12, 0x67, 0x06, 0x2f, 0x01, 0x00, + 0x20, 0x01, 0x06, 0x38, 0x04, 0x09, 0x10, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, + // SNDU footer (crc-32) + 0x1d, 0xc4, 0xe8, 0xc1, + // Transport Packet stuffing 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, @@ -64,19 +73,51 @@ BOOST_AUTO_UNIT_TEST(transportPacket_packet) 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }; - senf::TransportPacket p (senf::TransportPacket::create(data)); + TransportPacket p (TransportPacket::create(data)); BOOST_CHECK_EQUAL( p->sync_byte(), TransportPacketType::SYNC_BYTE+0 ); BOOST_CHECK( ! p->transport_error_indicator() ); BOOST_CHECK( p->pusi() ); BOOST_CHECK( ! p->transport_priority() ); - BOOST_CHECK_EQUAL( p->pid(), 0x010fu ); - BOOST_CHECK_EQUAL( p->transport_scrmbl_ctrl(), 0x0u ); + BOOST_CHECK_EQUAL( p->pid(), 0x010fu ); + BOOST_CHECK_EQUAL( p->transport_scrmbl_ctrl(), 0x0u ); BOOST_CHECK_EQUAL( p->adaptation_field_ctrl(), 0x1u ); - BOOST_CHECK_EQUAL( p->continuity_counter(), 0x0eu ); + BOOST_CHECK_EQUAL( p->continuity_counter(), 0x0eu ); + BOOST_CHECK_EQUAL( p->pointer_field(), 0x0u ); +} + + +BOOST_AUTO_UNIT_TEST(transportPacket_create_with_pusi) +{ + TransportPacket ts_packet (TransportPacket::create()); + ts_packet->setPUSI(true); + ts_packet->pid() = 0x010fu; + ts_packet->continuity_counter() = 0x0eu; + + unsigned char payload_data[] = { // see test above + // SNDU Header + 0x80, 0x4c, 0x86, 0xdd, + // IPv6 Packet + 0x60, 0x00, 0x00, 0x00, 0x00, 0x20, 0x11, 0x40, + 0xfe, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x48, 0x7c, 0x7e, 0xff, 0xfe, 0x23, 0x68, 0xaf, + 0xff, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x04, + 0x02, 0x8c, 0x02, 0x8c, 0x00, 0x20, 0x58, 0xe1, + 0x11, 0x05, 0x12, 0x67, 0x06, 0x2f, 0x01, 0x00, + 0x20, 0x01, 0x06, 0x38, 0x04, 0x09, 0x10, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, + // SNDU footer (crc-32) + 0x1d, 0xc4, 0xe8, 0xc1 + }; + senf::DataPacket payload (senf::DataPacket::createAfter( ts_packet, payload_data)); + + //TransportPacketType::addStuffingPacketAfter( ts_packet); + + //senf::hexdump(ts_packet.data().begin(), ts_packet.data().end(), std::cout); } ///////////////////////////////cc.e////////////////////////////////////////