⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 msqueue.h

📁 linphone-2.1,最新版本的LINUX平台下的SIP电话源代码
💻 H
字号:
/*mediastreamer2 library - modular sound and video processing and streamingCopyright (C) 2006  Simon MORLAT (simon.morlat@linphone.org)This program is free software; you can redistribute it and/ormodify it under the terms of the GNU General Public Licenseas published by the Free Software Foundation; either version 2of the License, or (at your option) any later version.This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See theGNU General Public License for more details.You should have received a copy of the GNU General Public Licensealong with this program; if not, write to the Free SoftwareFoundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.*/#ifndef MSQUEUE_H#define MSQUEUE_H#include "ortp/str_utils.h"/* for the moment these are stupid queues limited to one element*/typedef struct _MSCPoint{	struct _MSFilter *filter;	int pin;} MSCPoint;typedef struct _MSQueue{	queue_t q;	MSCPoint prev;	MSCPoint next;}MSQueue;MSQueue * ms_queue_new(struct _MSFilter *f1, int pin1, struct _MSFilter *f2, int pin2 );static inline mblk_t *ms_queue_get(MSQueue *q){	return getq(&q->q);}static inline void ms_queue_put(MSQueue *q, mblk_t *m){	putq(&q->q,m);	return;}static inline mblk_t * ms_queue_peek_last(MSQueue *q){	return qlast(&q->q);}static inline bool_t ms_queue_empty(MSQueue *q){	return qempty(&q->q);}void ms_queue_flush(MSQueue *q);void ms_queue_destroy(MSQueue *q);#define mblk_set_timestamp_info(m,ts) (m)->reserved1=(ts);#define mblk_get_timestamp_info(m)    ((m)->reserved1)#define mblk_set_marker_info(m,bit)   (m)->reserved2=((m)->reserved2|bit)#define mblk_get_marker_info(m)	      ((m)->reserved2&0x1)#define mblk_set_rate(m,bits)         (m)->reserved2=((m)->reserved2|(bits)<<1)#define mblk_get_rate(m)              (((m)->reserved2>>1)&0x3)#define mblk_set_payload_type(m,bits) (m)->reserved2=((m)->reserved2|(bits<<3))#define mblk_get_payload_type(m)      (((m)->reserved2>>3)&0xFF)struct _MSBufferizer{	queue_t q;	int size;};typedef struct _MSBufferizer MSBufferizer;#ifdef __cplusplusextern "C"{#endif/*allocates and initialize */MSBufferizer * ms_bufferizer_new(void);/*initialize in memory */void ms_bufferizer_init(MSBufferizer *obj);void ms_bufferizer_put(MSBufferizer *obj, mblk_t *m);/* put every mblk_t from q, into the bufferizer */void ms_bufferizer_put_from_queue(MSBufferizer *obj, MSQueue *q);int ms_bufferizer_read(MSBufferizer *obj, uint8_t *data, int datalen);/* returns the number of bytes available in the bufferizer*/static inline int ms_bufferizer_get_avail(MSBufferizer *obj){	return obj->size;}void ms_bufferizer_uninit(MSBufferizer *obj);void ms_bufferizer_destroy(MSBufferizer *obj);#ifdef __cplusplus}#endif#endif

⌨️ 快捷键说明

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