INET Framework for OMNeT++/OMNEST
inet::rtp::RtpMpegPacketSerializer Class Reference

Converts between RtpMpegPacket and binary (network byte order) RTP MPEG packet. More...

#include <RtpMpegPacketSerializer.h>

Inheritance diagram for inet::rtp::RtpMpegPacketSerializer:
inet::FieldsChunkSerializer inet::ChunkSerializer

Public Member Functions

 RtpMpegPacketSerializer ()
 
- Public Member Functions inherited from inet::FieldsChunkSerializer
virtual void serialize (MemoryOutputStream &stream, const Ptr< const Chunk > &chunk, b offset, b length) const override
 Serializes a chunk into a stream by writing the bytes representing the chunk at the end of the stream. More...
 
virtual const Ptr< Chunkdeserialize (MemoryInputStream &stream, const std::type_info &typeInfo) const override
 Deserializes a chunk from a stream by reading the bytes at the current position of the stream. More...
 

Protected Member Functions

virtual void serialize (MemoryOutputStream &stream, const Ptr< const Chunk > &chunk) const override
 Serializes a chunk into a stream by writing all bytes representing the chunk at the end of the stream. More...
 
virtual const Ptr< Chunkdeserialize (MemoryInputStream &stream) const override
 Deserializes a chunk from a stream by reading the bytes at the current position of the stream. More...
 

Additional Inherited Members

- Static Public Attributes inherited from inet::ChunkSerializer
static b totalSerializedLength = b(0)
 
static b totalDeserializedLength = b(0)
 

Detailed Description

Converts between RtpMpegPacket and binary (network byte order) RTP MPEG packet.

Constructor & Destructor Documentation

◆ RtpMpegPacketSerializer()

inet::rtp::RtpMpegPacketSerializer::RtpMpegPacketSerializer ( )
inline
24 : FieldsChunkSerializer() {}

Member Function Documentation

◆ deserialize()

const Ptr< Chunk > inet::rtp::RtpMpegPacketSerializer::deserialize ( MemoryInputStream stream) const
overrideprotectedvirtual

Deserializes a chunk from a stream by reading the bytes at the current position of the stream.

The current stream position is updated according to the length of the returned chunk.

Implements inet::FieldsChunkSerializer.

37 {
38  auto rtpMpegHeader = makeShared<RtpMpegHeader>();
39  /*rtpMpegHeader->setMbz(stream.readNBitsToUint64Be(5));
40  rtpMpegHeader->setTwo(stream.readBit());
41  rtpMpegHeader->setTemporalReference(stream.readNBitsToUint64Be(10));
42  rtpMpegHeader->setActiveN(stream.readBit());
43  rtpMpegHeader->setNewPictureHeader(stream.readBit());
44  rtpMpegHeader->setSequenceHeaderPresent(stream.readBit());
45  rtpMpegHeader->setBeginningOfSlice(stream.readBit());
46  rtpMpegHeader->setEndOfSlice(stream.readBit());
47  rtpMpegHeader->setPictureType(stream.readNBitsToUint64Be(3));
48  rtpMpegHeader->setFbv(stream.readBit());
49  rtpMpegHeader->setBfc(stream.readNBitsToUint64Be(3));
50  rtpMpegHeader->setFfv(stream.readBit());
51  rtpMpegHeader->setFfc(stream.readNBitsToUint64Be(3));*/
52  rtpMpegHeader->setPayloadLength(stream.readUint16Be());
53  rtpMpegHeader->setPictureType(stream.readUint16Be());
54  return rtpMpegHeader;
55 }

◆ serialize()

void inet::rtp::RtpMpegPacketSerializer::serialize ( MemoryOutputStream stream,
const Ptr< const Chunk > &  chunk 
) const
overrideprotectedvirtual

Serializes a chunk into a stream by writing all bytes representing the chunk at the end of the stream.

Implements inet::FieldsChunkSerializer.

17 {
18  const auto& rtpMpegHeader = staticPtrCast<const RtpMpegHeader>(chunk);
19  /*stream.writeNBitsOfUint64Be(rtpMpegHeader->getMbz(), 5);
20  stream.writeBit(rtpMpegHeader->getTwo());
21  stream.writeNBitsOfUint64Be(rtpMpegHeader->getTemporalReference(), 10);
22  stream.writeBit(rtpMpegHeader->getActiveN());
23  stream.writeBit(rtpMpegHeader->getNewPictureHeader());
24  stream.writeBit(rtpMpegHeader->getSequenceHeaderPresent());
25  stream.writeBit(rtpMpegHeader->getBeginningOfSlice());
26  stream.writeBit(rtpMpegHeader->getEndOfSlice());
27  stream.writeNBitsOfUint64Be(rtpMpegHeader->getPictureType(), 3);
28  stream.writeBit(rtpMpegHeader->getFbv());
29  stream.writeNBitsOfUint64Be(rtpMpegHeader->getBfc(), 3);
30  stream.writeBit(rtpMpegHeader->getFfv());
31  stream.writeNBitsOfUint64Be(rtpMpegHeader->getFfc(), 3);*/
32  stream.writeUint16Be(rtpMpegHeader->getPayloadLength());
33  stream.writeUint16Be(rtpMpegHeader->getPictureType());
34 }

The documentation for this class was generated from the following files: