X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Packets%2FMPEGDVBBundle%2FTransportPacket.hh;h=ae1f540b88fce197c025826856622382d23d5314;hb=165ec46dc3d091c354ef8dbda67dcf7b1a97fc7d;hp=ab9d495e6fa1a7fec1674a3b508d2559fc58e335;hpb=16a7043409c142f245eb5f55daa6cfafb84bbd06;p=senf.git diff --git a/Packets/MPEGDVBBundle/TransportPacket.hh b/Packets/MPEGDVBBundle/TransportPacket.hh index ab9d495..ae1f540 100644 --- a/Packets/MPEGDVBBundle/TransportPacket.hh +++ b/Packets/MPEGDVBBundle/TransportPacket.hh @@ -23,11 +23,10 @@ /** \file \brief TransportPacket public header */ -#ifndef HH_TransportPacket_ -#define HH_TransportPacket_ 1 +#ifndef HH_SENF_Packets_MPEGDVBBundle_TransportPacket_ +#define HH_SENF_Packets_MPEGDVBBundle_TransportPacket_ 1 // Custom includes -#include #include "../../Packets/Packets.hh" //#include "TransportPacket.mpp" @@ -35,6 +34,13 @@ namespace senf { +// struct PSIPayloadPacketParser : public PacketParserBase +// { +// static const size_type fixed_bytes = 184; +// +// }; + + /** \brief Parse a Transport Stream packet Parser implementing the header of a MPEG Transport Stream packet. @@ -43,23 +49,31 @@ namespace senf { */ struct TransportPacketParser : public PacketParserBase { -# include SENF_FIXED_PARSER() +# include SENF_PARSER() - SENF_PARSER_FIELD ( sync_byte, UInt8Parser ); + SENF_PARSER_FIELD ( sync_byte, UInt8Parser ); - SENF_PARSER_BITFIELD ( transport_error_indicator, 1, bool ); - SENF_PARSER_BITFIELD ( pusi, 1, bool ); - SENF_PARSER_BITFIELD ( transport_priority, 1, bool ); - SENF_PARSER_BITFIELD ( pid, 13, unsigned ); - SENF_PARSER_BITFIELD ( transport_scrmbl_ctrl, 2, unsigned ); - SENF_PARSER_BITFIELD ( adaptation_field_ctrl, 2, unsigned ); - SENF_PARSER_BITFIELD ( continuity_counter, 4, unsigned ); + SENF_PARSER_BITFIELD ( transport_error_indicator, 1, bool ); + SENF_PARSER_BITFIELD_RO ( pusi, 1, bool ); + SENF_PARSER_BITFIELD ( transport_priority, 1, bool ); + SENF_PARSER_BITFIELD ( pid, 13, unsigned ); + SENF_PARSER_BITFIELD ( transport_scrmbl_ctrl, 2, unsigned ); + SENF_PARSER_BITFIELD ( adaptation_field_ctrl, 2, unsigned ); + SENF_PARSER_BITFIELD ( continuity_counter, 4, unsigned ); + SENF_PARSER_PRIVATE_VARIANT ( pointer_field_, pusi, + (senf::VoidPacketParser) (UInt8Parser) ); + SENF_PARSER_FINALIZE( TransportPacketParser ); - -// UInt8Parser payload_pointer() const { -// return parse( TransportPacketParser::fixed_bytes ); -// } + + UInt8Parser pointer_field() const; + void init_fields() const; + void setPUSI(bool pusi) const; + + SENF_PARSER_INIT() { + defaultInit(); + init_fields(); + } }; /** \brief Transport Stream packet