79 lines
2.1 KiB
C
79 lines
2.1 KiB
C
|
/*
|
||
|
* Copyright (c) 2011 The WebRTC project authors. All Rights Reserved.
|
||
|
*
|
||
|
* Use of this source code is governed by a BSD-style license
|
||
|
* that can be found in the LICENSE file in the root of the source
|
||
|
* tree. An additional intellectual property rights grant can be found
|
||
|
* in the file PATENTS. All contributing project authors may
|
||
|
* be found in the AUTHORS file in the root of the source tree.
|
||
|
*/
|
||
|
|
||
|
/*
|
||
|
* RTP data struct and related functions.
|
||
|
*/
|
||
|
|
||
|
#ifndef RTP_H
|
||
|
#define RTP_H
|
||
|
|
||
|
#include "typedefs.h"
|
||
|
|
||
|
#include "codec_db.h"
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
WebRtc_UWord16 seqNumber;
|
||
|
WebRtc_UWord32 timeStamp;
|
||
|
WebRtc_UWord32 ssrc;
|
||
|
int payloadType;
|
||
|
const WebRtc_Word16 *payload;
|
||
|
WebRtc_Word16 payloadLen;
|
||
|
WebRtc_Word16 starts_byte1;
|
||
|
WebRtc_Word16 rcuPlCntr;
|
||
|
} RTPPacket_t;
|
||
|
|
||
|
/****************************************************************************
|
||
|
* WebRtcNetEQ_RTPPayloadInfo(...)
|
||
|
*
|
||
|
* Converts a datagram into an RTP header struct.
|
||
|
*
|
||
|
* Input:
|
||
|
* - Datagram : UDP datagram from the network
|
||
|
* - DatagramLen : Length in bytes of the datagram
|
||
|
*
|
||
|
* Output:
|
||
|
* - RTPheader : Structure with the datagram info
|
||
|
*
|
||
|
* Return value : 0 - Ok
|
||
|
* -1 - Error
|
||
|
*/
|
||
|
|
||
|
int WebRtcNetEQ_RTPPayloadInfo(WebRtc_Word16* pw16_Datagram, int i_DatagramLen,
|
||
|
RTPPacket_t* RTPheader);
|
||
|
|
||
|
/****************************************************************************
|
||
|
* WebRtcNetEQ_RedundancySplit(...)
|
||
|
*
|
||
|
* Splits a Redundancy RTP struct into two RTP structs. User has to check
|
||
|
* that it's really the redundancy payload. No such check is done inside this
|
||
|
* function.
|
||
|
*
|
||
|
* Input:
|
||
|
* - RTPheader : First header holds the whole RTP packet (with the redundancy payload)
|
||
|
* - MaximumPayloads:
|
||
|
* The maximum number of RTP payloads that should be
|
||
|
* extracted (1+maximum_no_of_Redundancies).
|
||
|
*
|
||
|
* Output:
|
||
|
* - RTPheader : First header holds the main RTP data, while 2..N
|
||
|
* holds the redundancy data.
|
||
|
* - No_Of
|
||
|
*
|
||
|
* Return value : 0 - Ok
|
||
|
* -1 - Error
|
||
|
*/
|
||
|
|
||
|
int WebRtcNetEQ_RedundancySplit(RTPPacket_t* RTPheader[], int i_MaximumPayloads,
|
||
|
int *i_No_Of_Payloads);
|
||
|
|
||
|
#endif
|