X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Packets%2FMPEGDVBBundle%2FTransportPacket.hh;h=ae1f540b88fce197c025826856622382d23d5314;hb=fb2fe88ee9a9d2a777ecaf3327d04b60479fcc8d;hp=2bf00b37ec08dad3438c13f68bcb237c20ced56e;hpb=c05c8072901783422ac21cd9cc2438cd610b46f1;p=senf.git diff --git a/Packets/MPEGDVBBundle/TransportPacket.hh b/Packets/MPEGDVBBundle/TransportPacket.hh index 2bf00b3..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,29 +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 pointer_field() const; void init_fields() const; + void setPUSI(bool pusi) const; + SENF_PARSER_INIT() { defaultInit(); init_fields(); } - -// UInt8Parser payload_pointer() const { -// return parse( TransportPacketParser::fixed_bytes ); -// } }; /** \brief Transport Stream packet