diff options
| author | Luiz Augusto von Dentz <luiz.dentz@openbossa.org> | 2007-10-18 23:02:24 +0000 | 
|---|---|---|
| committer | Luiz Augusto von Dentz <luiz.dentz@openbossa.org> | 2007-10-18 23:02:24 +0000 | 
| commit | 347675ea994642c0ccd60f7af70f369f7a2d7a88 (patch) | |
| tree | 34946ab29ceed3cfd7983935d733ae7fb3f423fa | |
| parent | 2dda76438063672e2bdccf1709db3615d453ad5b (diff) | |
Add rtp header.
| -rw-r--r-- | audio/gsta2dpsink.c | 55 | ||||
| -rw-r--r-- | audio/pcm_bluetooth.c | 55 | ||||
| -rw-r--r-- | audio/rtp.h | 76 | 
3 files changed, 78 insertions, 108 deletions
| diff --git a/audio/gsta2dpsink.c b/audio/gsta2dpsink.c index 1bb88b36..433846eb 100644 --- a/audio/gsta2dpsink.c +++ b/audio/gsta2dpsink.c @@ -37,6 +37,7 @@  #include "ipc.h"  #include "sbc.h" +#include "rtp.h"  #include "gsta2dpsink.h" @@ -87,60 +88,6 @@ struct bluetooth_data {  	struct bluetooth_a2dp a2dp;	/* A2DP data */  }; -#if __BYTE_ORDER == __LITTLE_ENDIAN - -struct rtp_header { -	uint8_t cc:4; -	uint8_t x:1; -	uint8_t p:1; -	uint8_t v:2; - -	uint8_t pt:7; -	uint8_t m:1; - -	uint16_t sequence_number; -	uint32_t timestamp; -	uint32_t ssrc; -	uint32_t csrc[0]; -} __attribute__ ((packed)); - -struct rtp_payload { -	uint8_t frame_count:4; -	uint8_t rfa0:1; -	uint8_t is_last_fragment:1; -	uint8_t is_first_fragment:1; -	uint8_t is_fragmented:1; -} __attribute__ ((packed)); - -#elif __BYTE_ORDER == __BIG_ENDIAN - -struct rtp_header { -	uint8_t v:2; -	uint8_t p:1; -	uint8_t x:1; -	uint8_t cc:4; - -	uint8_t m:1; -	uint8_t pt:7; - -	uint16_t sequence_number; -	uint32_t timestamp; -	uint32_t ssrc; -	uint32_t csrc[0]; -} __attribute__ ((packed)); - -struct rtp_payload { -	uint8_t is_fragmented:1; -	uint8_t is_first_fragment:1; -	uint8_t is_last_fragment:1; -	uint8_t rfa0:1; -	uint8_t frame_count:4; -} __attribute__ ((packed)); - -#else -#error "Unknown byte order" -#endif -  #define IS_SBC(n) (strcmp((n), "audio/x-sbc") == 0)  #define IS_MPEG(n) (strcmp((n), "audio/mpeg") == 0) diff --git a/audio/pcm_bluetooth.c b/audio/pcm_bluetooth.c index 806ed37b..ae1a1bcd 100644 --- a/audio/pcm_bluetooth.c +++ b/audio/pcm_bluetooth.c @@ -38,6 +38,7 @@  #include "ipc.h"  #include "sbc.h" +#include "rtp.h"  //#define ENABLE_DEBUG @@ -66,60 +67,6 @@  #define SCO_RXBUFS 0x04  #endif -#if __BYTE_ORDER == __LITTLE_ENDIAN - -struct rtp_header { -	uint8_t cc:4; -	uint8_t x:1; -	uint8_t p:1; -	uint8_t v:2; - -	uint8_t pt:7; -	uint8_t m:1; - -	uint16_t sequence_number; -	uint32_t timestamp; -	uint32_t ssrc; -	uint32_t csrc[0]; -} __attribute__ ((packed)); - -struct rtp_payload { -	uint8_t frame_count:4; -	uint8_t rfa0:1; -	uint8_t is_last_fragment:1; -	uint8_t is_first_fragment:1; -	uint8_t is_fragmented:1; -} __attribute__ ((packed)); - -#elif __BYTE_ORDER == __BIG_ENDIAN - -struct rtp_header { -	uint8_t v:2; -	uint8_t p:1; -	uint8_t x:1; -	uint8_t cc:4; - -	uint8_t m:1; -	uint8_t pt:7; - -	uint16_t sequence_number; -	uint32_t timestamp; -	uint32_t ssrc; -	uint32_t csrc[0]; -} __attribute__ ((packed)); - -struct rtp_payload { -	uint8_t is_fragmented:1; -	uint8_t is_first_fragment:1; -	uint8_t is_last_fragment:1; -	uint8_t rfa0:1; -	uint8_t frame_count:4; -} __attribute__ ((packed)); - -#else -#error "Unknown byte order" -#endif -  struct bluetooth_a2dp {  	sbc_t sbc;			/* Codec data */  	int codesize;			/* SBC codesize */ diff --git a/audio/rtp.h b/audio/rtp.h new file mode 100644 index 00000000..931b7346 --- /dev/null +++ b/audio/rtp.h @@ -0,0 +1,76 @@ +/* + * + *  BlueZ - Bluetooth protocol stack for Linux + * + *  Copyright (C) 2004-2007  Marcel Holtmann <marcel@holtmann.org> + * + * + *  This library is free software; you can redistribute it and/or + *  modify it under the terms of the GNU Lesser General Public + *  License as published by the Free Software Foundation; either + *  version 2.1 of the License, or (at your option) any later version. + * + *  This library is distributed in the hope that it will be useful, + *  but WITHOUT ANY WARRANTY; without even the implied warranty of + *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU + *  Lesser General Public License for more details. + * + *  You should have received a copy of the GNU Lesser General Public + *  License along with this library; if not, write to the Free Software + *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA + * + */ + +#if __BYTE_ORDER == __LITTLE_ENDIAN + +struct rtp_header { +	uint8_t cc:4; +	uint8_t x:1; +	uint8_t p:1; +	uint8_t v:2; + +	uint8_t pt:7; +	uint8_t m:1; + +	uint16_t sequence_number; +	uint32_t timestamp; +	uint32_t ssrc; +	uint32_t csrc[0]; +} __attribute__ ((packed)); + +struct rtp_payload { +	uint8_t frame_count:4; +	uint8_t rfa0:1; +	uint8_t is_last_fragment:1; +	uint8_t is_first_fragment:1; +	uint8_t is_fragmented:1; +} __attribute__ ((packed)); + +#elif __BYTE_ORDER == __BIG_ENDIAN + +struct rtp_header { +	uint8_t v:2; +	uint8_t p:1; +	uint8_t x:1; +	uint8_t cc:4; + +	uint8_t m:1; +	uint8_t pt:7; + +	uint16_t sequence_number; +	uint32_t timestamp; +	uint32_t ssrc; +	uint32_t csrc[0]; +} __attribute__ ((packed)); + +struct rtp_payload { +	uint8_t is_fragmented:1; +	uint8_t is_first_fragment:1; +	uint8_t is_last_fragment:1; +	uint8_t rfa0:1; +	uint8_t frame_count:4; +} __attribute__ ((packed)); + +#else +#error "Unknown byte order" +#endif | 
