diff options
Diffstat (limited to 'remoting/protocol/rtp_utils.h')
-rw-r--r-- | remoting/protocol/rtp_utils.h | 117 |
1 files changed, 0 insertions, 117 deletions
diff --git a/remoting/protocol/rtp_utils.h b/remoting/protocol/rtp_utils.h deleted file mode 100644 index 4441d78..0000000 --- a/remoting/protocol/rtp_utils.h +++ /dev/null @@ -1,117 +0,0 @@ -// Copyright (c) 2010 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. - -#ifndef REMOTING_PROTOCOL_RTP_UTILS_H_ -#define REMOTING_PROTOCOL_RTP_UTILS_H_ - -#include "base/basictypes.h" - -namespace remoting { -namespace protocol { - -struct RtpHeader { - RtpHeader(); - - // RTP version is always set to 2. - // version = 2 - bool padding; - bool extension; - uint8 sources; - bool marker; - uint8 payload_type; - uint16 sequence_number; - uint32 timestamp; - uint32 sync_source_id; - uint32 source_id[15]; -}; - -struct RtcpReceiverReport { - RtcpReceiverReport(); - - uint32 receiver_ssrc; - uint32 sender_ssrc; - uint8 loss_fraction; // 8bit fixed point value in the interval [0..1]. - uint32 total_lost_packets; - uint32 last_sequence_number; - uint32 jitter; - uint32 last_sender_report_timestamp; - uint32 last_sender_report_delay; -}; - -// Vp8Descriptor struct used to store values of the VP8 RTP descriptor -// fields. Meaning of each field is documented in the RTP Payload -// Format for VP8 spec: http://www.webmproject.org/code/specs/rtp/ . -struct Vp8Descriptor { - enum FragmentationInfo { - NOT_FRAGMENTED = 0, - FIRST_FRAGMENT = 1, - MIDDLE_FRAGMENT = 2, - LAST_FRAGMENT = 3, - }; - - Vp8Descriptor() - : non_reference_frame(false), - fragmentation_info(NOT_FRAGMENTED), - frame_beginning(false), - picture_id(kuint32max) { - } - - bool non_reference_frame; - uint8 fragmentation_info; - bool frame_beginning; - - // PictureID is considered to be absent if |picture_id| is set to kuint32max. - uint32 picture_id; -}; - -// Returns size of RTP header for the specified number of sources. -int GetRtpHeaderSize(const RtpHeader& header); - -// Packs RTP header into the buffer. -void PackRtpHeader(const RtpHeader& header, uint8* buffer, int buffer_size); - -// Unpacks RTP header and stores unpacked values in |header|. -int UnpackRtpHeader(const uint8* buffer, int buffer_size, RtpHeader* header); - -// Three following functions below are used to pack and unpack RTCP -// Receiver Report packets. They implement only subset of RTCP that is -// useful for chromoting. Particularly there are following -// limitations: -// -// 1. Only one report per packet. There is always only one sender and -// only one receiver in chromotocol session, so we never need to -// have more than one report per packet. -// 2. No RTCP Sender Report. Sender Reports are useful for streams -// synchronization (e.g. audio/video syncronization), but it is -// not needed for screencasts. - -// Returns size of RTCP Receiver Report packet. -int GetRtcpReceiverReportSize(const RtcpReceiverReport& report); - -// Packs RTCP Receiver Report into the |buffer|. -void PackRtcpReceiverReport(const RtcpReceiverReport& report, - uint8* buffer, int buffer_size); - -// Unpack RTCP Receiver Report packet. If the packet is invalid -// returns -1, othewise returns size of the data that was read from -// the packet. -int UnpackRtcpReceiverReport(const uint8* buffer, int buffer_size, - RtcpReceiverReport* report); - -// Returns size of VP8 Payload Descriptor. -int GetVp8DescriptorSize(const Vp8Descriptor& descriptor); - -// Packs VP8 Payload Descriptor into the |buffer|. -void PackVp8Descriptor(const Vp8Descriptor& descriptor, uint8* buffer, - int buffer_size); - -// Unpacks VP8 Payload Descriptor. If the descriptor is not valid -// returns -1, otherwise returns size of the descriptor. -int UnpackVp8Descriptor(const uint8* buffer, int buffer_size, - Vp8Descriptor* descriptor); - -} // namespace protocol -} // namespace remoting - -#endif // REMOTING_PROTOCOL_RTP_UTILS_H_ |