rtp: Share the rtp header between the proxy and the mgcp code
This commit is contained in:
parent
6019b5a508
commit
983c99113d
|
@ -14,7 +14,7 @@ noinst_HEADERS = abis_nm.h abis_rsl.h db.h gsm_04_08.h gsm_data.h \
|
||||||
osmo_msc_data.h osmo_bsc_grace.h sms_queue.h abis_om2000.h \
|
osmo_msc_data.h osmo_bsc_grace.h sms_queue.h abis_om2000.h \
|
||||||
bss.h gsm_data_shared.h control_cmd.h ipaccess.h mncc_int.h \
|
bss.h gsm_data_shared.h control_cmd.h ipaccess.h mncc_int.h \
|
||||||
arfcn_range_encode.h nat_rewrite_trie.h bsc_nat_callstats.h \
|
arfcn_range_encode.h nat_rewrite_trie.h bsc_nat_callstats.h \
|
||||||
osmux.h mgcp_transcode.h
|
osmux.h mgcp_transcode.h rtp.h
|
||||||
|
|
||||||
openbsc_HEADERS = gsm_04_08.h meas_rep.h bsc_api.h
|
openbsc_HEADERS = gsm_04_08.h meas_rep.h bsc_api.h
|
||||||
openbscdir = $(includedir)/openbsc
|
openbscdir = $(includedir)/openbsc
|
||||||
|
|
|
@ -0,0 +1,38 @@
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
/* attempt to determine byte order */
|
||||||
|
#include <sys/param.h>
|
||||||
|
#include <limits.h>
|
||||||
|
#include <time.h>
|
||||||
|
|
||||||
|
#ifndef __BYTE_ORDER
|
||||||
|
# ifdef __APPLE__
|
||||||
|
# define __BYTE_ORDER __DARWIN_BYTE_ORDER
|
||||||
|
# define __LITTLE_ENDIAN __DARWIN_LITTLE_ENDIAN
|
||||||
|
# define __BIG_ENDIAN __DARWIN_BIG_ENDIAN
|
||||||
|
# else
|
||||||
|
# error "__BYTE_ORDER should be defined by someone"
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* according to rtp_proxy.c RFC 3550 */
|
||||||
|
struct rtp_hdr {
|
||||||
|
#if __BYTE_ORDER == __LITTLE_ENDIAN
|
||||||
|
uint8_t csrc_count:4,
|
||||||
|
extension:1,
|
||||||
|
padding:1,
|
||||||
|
version:2;
|
||||||
|
uint8_t payload_type:7,
|
||||||
|
marker:1;
|
||||||
|
#elif __BYTE_ORDER == __BIG_ENDIAN
|
||||||
|
uint8_t version:2,
|
||||||
|
padding:1,
|
||||||
|
extension:1,
|
||||||
|
csrc_count:4;
|
||||||
|
uint8_t marker:1,
|
||||||
|
payload_type:7;
|
||||||
|
#endif
|
||||||
|
uint16_t sequence;
|
||||||
|
uint32_t timestamp;
|
||||||
|
uint32_t ssrc;
|
||||||
|
} __attribute__((packed));
|
|
@ -34,47 +34,12 @@
|
||||||
|
|
||||||
#include <openbsc/mgcp.h>
|
#include <openbsc/mgcp.h>
|
||||||
#include <openbsc/mgcp_internal.h>
|
#include <openbsc/mgcp_internal.h>
|
||||||
|
#include <openbsc/rtp.h>
|
||||||
|
|
||||||
#include <openbsc/osmux.h>
|
#include <openbsc/osmux.h>
|
||||||
|
|
||||||
#warning "Make use of the rtp proxy code"
|
#warning "Make use of the rtp proxy code"
|
||||||
|
|
||||||
/* attempt to determine byte order */
|
|
||||||
#include <sys/param.h>
|
|
||||||
#include <limits.h>
|
|
||||||
#include <time.h>
|
|
||||||
|
|
||||||
#ifndef __BYTE_ORDER
|
|
||||||
# ifdef __APPLE__
|
|
||||||
# define __BYTE_ORDER __DARWIN_BYTE_ORDER
|
|
||||||
# define __LITTLE_ENDIAN __DARWIN_LITTLE_ENDIAN
|
|
||||||
# define __BIG_ENDIAN __DARWIN_BIG_ENDIAN
|
|
||||||
# else
|
|
||||||
# error "__BYTE_ORDER should be defined by someone"
|
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* according to rtp_proxy.c RFC 3550 */
|
|
||||||
struct rtp_hdr {
|
|
||||||
#if __BYTE_ORDER == __LITTLE_ENDIAN
|
|
||||||
uint8_t csrc_count:4,
|
|
||||||
extension:1,
|
|
||||||
padding:1,
|
|
||||||
version:2;
|
|
||||||
uint8_t payload_type:7,
|
|
||||||
marker:1;
|
|
||||||
#elif __BYTE_ORDER == __BIG_ENDIAN
|
|
||||||
uint8_t version:2,
|
|
||||||
padding:1,
|
|
||||||
extension:1,
|
|
||||||
csrc_count:4;
|
|
||||||
uint8_t marker:1,
|
|
||||||
payload_type:7;
|
|
||||||
#endif
|
|
||||||
uint16_t sequence;
|
|
||||||
uint32_t timestamp;
|
|
||||||
uint32_t ssrc;
|
|
||||||
} __attribute__((packed));
|
|
||||||
|
|
||||||
#define RTP_SEQ_MOD (1 << 16)
|
#define RTP_SEQ_MOD (1 << 16)
|
||||||
#define RTP_MAX_DROPOUT 3000
|
#define RTP_MAX_DROPOUT 3000
|
||||||
|
|
|
@ -36,6 +36,7 @@
|
||||||
#include <openbsc/rtp_proxy.h>
|
#include <openbsc/rtp_proxy.h>
|
||||||
#include <openbsc/mncc.h>
|
#include <openbsc/mncc.h>
|
||||||
#include <openbsc/trau_upqueue.h>
|
#include <openbsc/trau_upqueue.h>
|
||||||
|
#include <openbsc/rtp.h>
|
||||||
|
|
||||||
/* attempt to determine byte order */
|
/* attempt to determine byte order */
|
||||||
#include <sys/param.h>
|
#include <sys/param.h>
|
||||||
|
@ -76,28 +77,6 @@ struct rtcp_hdr {
|
||||||
|
|
||||||
#define RTCP_IE_CNAME 1
|
#define RTCP_IE_CNAME 1
|
||||||
|
|
||||||
/* according to RFC 3550 */
|
|
||||||
struct rtp_hdr {
|
|
||||||
#if __BYTE_ORDER == __LITTLE_ENDIAN
|
|
||||||
uint8_t csrc_count:4,
|
|
||||||
extension:1,
|
|
||||||
padding:1,
|
|
||||||
version:2;
|
|
||||||
uint8_t payload_type:7,
|
|
||||||
marker:1;
|
|
||||||
#elif __BYTE_ORDER == __BIG_ENDIAN
|
|
||||||
uint8_t version:2,
|
|
||||||
padding:1,
|
|
||||||
extension:1,
|
|
||||||
csrc_count:4;
|
|
||||||
uint8_t marker:1,
|
|
||||||
payload_type:7;
|
|
||||||
#endif
|
|
||||||
uint16_t sequence;
|
|
||||||
uint32_t timestamp;
|
|
||||||
uint32_t ssrc;
|
|
||||||
} __attribute__((packed));
|
|
||||||
|
|
||||||
struct rtp_x_hdr {
|
struct rtp_x_hdr {
|
||||||
uint16_t by_profile;
|
uint16_t by_profile;
|
||||||
uint16_t length;
|
uint16_t length;
|
||||||
|
|
Loading…
Reference in New Issue