avprofile.c

来自「linphone源码-1.3.5.tar.gz,linphone源码-1.3.5」· C语言 代码 · 共 289 行

C
289
字号
/*  The oRTP library is an RTP (Realtime Transport Protocol - rfc1889) stack.  Copyright (C) 2001  Simon MORLAT simon.morlat@linphone.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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA*/#include <ortp/payloadtype.h>char offset127=127; char offset0xD5=(char)0xD5; char offset0=0;/* IMPORTANT *//* some compiler don't support the "field:" syntax. Those macros are there to trap the problemThis means that if you want to keep portability, payload types must be defined with their fieldsin the right order. */#if !defined(__hpux) && !defined(WIN32) #define TYPE(val) type: (val)#define CLOCK_RATE(val) clock_rate: (val)#define BITS_PER_SAMPLE(val) bits_per_sample: (val)#define ZERO_PATTERN(val)   zero_pattern: (val)#define PATTERN_LENGTH(val) pattern_length: (val)#define NORMAL_BITRATE(val) normal_bitrate: (val)#define MIME_TYPE(val) mime_type: (val)#define FMTP(val) FMTP : (val)#else#define TYPE(val) (val)#define CLOCK_RATE(val) (val)#define BITS_PER_SAMPLE(val) (val)#define ZERO_PATTERN(val) (val)#define PATTERN_LENGTH(val) (val)#define NORMAL_BITRATE(val) (val)#define MIME_TYPE(val) (val)#define FMTP(val)	(val)#endifPayloadType payload_type_pcmu8000={	TYPE( PAYLOAD_AUDIO_CONTINUOUS),	CLOCK_RATE( 8000),	BITS_PER_SAMPLE(8),	ZERO_PATTERN( &offset127),	PATTERN_LENGTH( 1),	NORMAL_BITRATE( 64000),	MIME_TYPE ("PCMU")};PayloadType payload_type_pcma8000={	TYPE( PAYLOAD_AUDIO_CONTINUOUS),	CLOCK_RATE(8000),	BITS_PER_SAMPLE(8),	ZERO_PATTERN( &offset0xD5),	PATTERN_LENGTH( 1),	NORMAL_BITRATE( 64000),	MIME_TYPE ("PCMA")};PayloadType payload_type_pcm8000={	TYPE( PAYLOAD_AUDIO_CONTINUOUS),	CLOCK_RATE(8000),	BITS_PER_SAMPLE(16),	ZERO_PATTERN( &offset0),	PATTERN_LENGTH(1),	NORMAL_BITRATE( 128000),	MIME_TYPE ("PCM")};PayloadType payload_type_lpc1016={	TYPE( PAYLOAD_AUDIO_PACKETIZED),	CLOCK_RATE(8000),	BITS_PER_SAMPLE( 0),	ZERO_PATTERN( NULL),	PATTERN_LENGTH( 0),	NORMAL_BITRATE( 2400),	MIME_TYPE ("1016")};PayloadType payload_type_gsm={	TYPE( PAYLOAD_AUDIO_PACKETIZED),	CLOCK_RATE(8000),	BITS_PER_SAMPLE( 0),	ZERO_PATTERN(NULL),	PATTERN_LENGTH( 0),	NORMAL_BITRATE( 13500),	MIME_TYPE ("GSM")};PayloadType payload_type_g7231={	TYPE( PAYLOAD_AUDIO_PACKETIZED),	CLOCK_RATE(8000),	BITS_PER_SAMPLE( 0),	ZERO_PATTERN(NULL),	PATTERN_LENGTH( 0),	NORMAL_BITRATE( 6300),	MIME_TYPE ("G723")};PayloadType payload_type_g729={	TYPE( PAYLOAD_AUDIO_PACKETIZED),	CLOCK_RATE(8000),	BITS_PER_SAMPLE( 0),	ZERO_PATTERN(NULL),	PATTERN_LENGTH( 0),	NORMAL_BITRATE( 8000),	MIME_TYPE ("G729")};PayloadType payload_type_mpv={	TYPE( PAYLOAD_VIDEO),	CLOCK_RATE(90000),	BITS_PER_SAMPLE(0),	ZERO_PATTERN(NULL),	PATTERN_LENGTH(0),	NORMAL_BITRATE( 256000),	MIME_TYPE ("MPV")};PayloadType payload_type_h261={	TYPE( PAYLOAD_VIDEO),	CLOCK_RATE(90000),	BITS_PER_SAMPLE(0),	ZERO_PATTERN(NULL),	PATTERN_LENGTH(0),	NORMAL_BITRATE(0),	MIME_TYPE ("H261")};PayloadType payload_type_h263={	TYPE( PAYLOAD_VIDEO),	CLOCK_RATE(90000),	BITS_PER_SAMPLE(0),	ZERO_PATTERN(NULL),	PATTERN_LENGTH(0),	NORMAL_BITRATE(256000),	MIME_TYPE ("H263")};PayloadType payload_type_truespeech={	TYPE( PAYLOAD_AUDIO_PACKETIZED),	CLOCK_RATE(8000),	BITS_PER_SAMPLE( 0),	ZERO_PATTERN(NULL),	PATTERN_LENGTH( 0),	NORMAL_BITRATE(8536),	MIME_TYPE ("TSP0")};#ifdef __cplusplusextern "C"{#endifRtpProfile av_profile;#ifdef __cplusplus}#endifvoid av_profile_init(RtpProfile *profile){	rtp_profile_clear_all(profile);	rtp_profile_set_name(profile,"AV profile");	rtp_profile_set_payload(profile,0,&payload_type_pcmu8000);	rtp_profile_set_payload(profile,1,&payload_type_lpc1016);	rtp_profile_set_payload(profile,3,&payload_type_gsm);	rtp_profile_set_payload(profile,4,&payload_type_g7231);	rtp_profile_set_payload(profile,8,&payload_type_pcma8000);	rtp_profile_set_payload(profile,18,&payload_type_g729);	rtp_profile_set_payload(profile,31,&payload_type_h261);	rtp_profile_set_payload(profile,32,&payload_type_mpv);	rtp_profile_set_payload(profile,34,&payload_type_h263);}	/* these are extra payload types that can be used dynamically */PayloadType payload_type_lpc1015={    TYPE( PAYLOAD_AUDIO_PACKETIZED),    CLOCK_RATE(8000),    BITS_PER_SAMPLE(0),    ZERO_PATTERN(NULL),    PATTERN_LENGTH(0),    NORMAL_BITRATE(2400),    MIME_TYPE ("1015")};PayloadType payload_type_speex_nb={    TYPE( PAYLOAD_AUDIO_PACKETIZED),    CLOCK_RATE(8000),    BITS_PER_SAMPLE(0),    ZERO_PATTERN(NULL),    PATTERN_LENGTH(0),    NORMAL_BITRATE(8000),   /*not true: 8000 is the minimum*/    MIME_TYPE ("speex")};PayloadType payload_type_speex_wb={    TYPE( PAYLOAD_AUDIO_PACKETIZED),    CLOCK_RATE(16000),    BITS_PER_SAMPLE(0),    ZERO_PATTERN(NULL),    PATTERN_LENGTH(0),    NORMAL_BITRATE(28000),    MIME_TYPE ("speex")};PayloadType payload_type_ilbc={	 TYPE( PAYLOAD_AUDIO_PACKETIZED),    CLOCK_RATE(8000),    BITS_PER_SAMPLE(0),    ZERO_PATTERN(NULL),    PATTERN_LENGTH(0),    NORMAL_BITRATE(13300), /* the minimum, with 30ms frames */     MIME_TYPE ("iLBC"),};PayloadType payload_type_amr={	TYPE(PAYLOAD_AUDIO_PACKETIZED),	CLOCK_RATE(8000),	BITS_PER_SAMPLE(0),	ZERO_PATTERN(NULL),	PATTERN_LENGTH(0),	NORMAL_BITRATE(0),	MIME_TYPE ("AMR")};PayloadType payload_type_amrwb={	TYPE(PAYLOAD_AUDIO_PACKETIZED),	CLOCK_RATE(16000),	BITS_PER_SAMPLE(0),	ZERO_PATTERN(NULL),	PATTERN_LENGTH(0),	NORMAL_BITRATE(0),	MIME_TYPE ("AMR-WB")};PayloadType payload_type_mp4v={	TYPE( PAYLOAD_VIDEO),	CLOCK_RATE(90000),	BITS_PER_SAMPLE(0),	ZERO_PATTERN(NULL),	PATTERN_LENGTH(0),	NORMAL_BITRATE(0),	MIME_TYPE ("MP4V-ES")};        PayloadType payload_type_h263_1998={	TYPE( PAYLOAD_VIDEO),	CLOCK_RATE(90000),	BITS_PER_SAMPLE(0),	ZERO_PATTERN(NULL),	PATTERN_LENGTH(0),	NORMAL_BITRATE(256000),	MIME_TYPE ("H263-1998")};PayloadType payload_type_h263_2000={	TYPE( PAYLOAD_VIDEO),	CLOCK_RATE(90000),	BITS_PER_SAMPLE(0),	ZERO_PATTERN(NULL),	PATTERN_LENGTH(0),	NORMAL_BITRATE(0),	MIME_TYPE ("H263-2000")};

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?