diff options
author | Holger Hans Peter Freyther <holger@moiji-mobile.com> | 2014-06-22 22:30:28 +0200 |
---|---|---|
committer | Holger Hans Peter Freyther <holger@moiji-mobile.com> | 2014-07-07 19:24:21 +0200 |
commit | 983c99113d912ae4003a7fa18c0abd039c42e16d (patch) | |
tree | ccc7786f882442320dcfb7aa3e10816d04aef660 /openbsc/include/openbsc | |
parent | 6019b5a5083e91f207572b805c1f4a7902c7c5db (diff) |
rtp: Share the rtp header between the proxy and the mgcp code
Diffstat (limited to 'openbsc/include/openbsc')
-rw-r--r-- | openbsc/include/openbsc/Makefile.am | 2 | ||||
-rw-r--r-- | openbsc/include/openbsc/rtp.h | 38 |
2 files changed, 39 insertions, 1 deletions
diff --git a/openbsc/include/openbsc/Makefile.am b/openbsc/include/openbsc/Makefile.am index b739d0f46..23386f1f0 100644 --- a/openbsc/include/openbsc/Makefile.am +++ b/openbsc/include/openbsc/Makefile.am @@ -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 \ 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 \ - osmux.h mgcp_transcode.h + osmux.h mgcp_transcode.h rtp.h openbsc_HEADERS = gsm_04_08.h meas_rep.h bsc_api.h openbscdir = $(includedir)/openbsc diff --git a/openbsc/include/openbsc/rtp.h b/openbsc/include/openbsc/rtp.h new file mode 100644 index 000000000..451d0defa --- /dev/null +++ b/openbsc/include/openbsc/rtp.h @@ -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)); |