blob: 3f864a427cd7bdcdaccbb738138947981459734b [file] [log] [blame]
// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Test helper class that builds rtp packets.
#ifndef MEDIA_CAST_NET_RTP_RTP_PACKET_BUILDER_H_
#define MEDIA_CAST_NET_RTP_RTP_PACKET_BUILDER_H_
#include <stdint.h>
#include "base/macros.h"
#include "media/cast/net/rtp/rtp_defines.h"
namespace media {
namespace cast {
// TODO(miu): Consolidate with RtpPacketizer as a single Cast packet
// serialization implementation.
class RtpPacketBuilder {
public:
RtpPacketBuilder();
void SetKeyFrame(bool is_key);
void SetFrameIds(uint32_t frame_id, uint32_t reference_frame_id);
void SetPacketId(uint16_t packet_id);
void SetMaxPacketId(uint16_t max_packet_id);
void SetTimestamp(uint32_t timestamp);
void SetSequenceNumber(uint16_t sequence_number);
void SetMarkerBit(bool marker);
void SetPayloadType(int payload_type);
void SetSsrc(uint32_t ssrc);
void BuildHeader(uint8_t* data, uint32_t data_length);
private:
bool is_key_;
uint32_t frame_id_;
uint16_t packet_id_;
uint16_t max_packet_id_;
uint32_t reference_frame_id_;
uint32_t timestamp_;
uint16_t sequence_number_;
bool marker_;
int payload_type_;
uint32_t ssrc_;
void BuildCastHeader(uint8_t* data, uint32_t data_length);
void BuildCommonHeader(uint8_t* data, uint32_t data_length);
DISALLOW_COPY_AND_ASSIGN(RtpPacketBuilder);
};
} // namespace cast
} // namespace media
#endif // MEDIA_CAST_NET_RTP_RTP_PACKET_BUILDER_H_