src/rtpsession_priv.h

00001 /*
00002   The oRTP library is an RTP (Realtime Transport Protocol - rfc3550) stack.
00003   Copyright (C) 2001  Simon MORLAT simon.morlat@linphone.org
00004 
00005   This library is free software; you can redistribute it and/or
00006   modify it under the terms of the GNU Lesser General Public
00007   License as published by the Free Software Foundation; either
00008   version 2.1 of the License, or (at your option) any later version.
00009 
00010   This library is distributed in the hope that it will be useful,
00011   but WITHOUT ANY WARRANTY; without even the implied warranty of
00012   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00013   Lesser General Public License for more details.
00014 
00015   You should have received a copy of the GNU Lesser General Public
00016   License along with this library; if not, write to the Free Software
00017   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00018 */
00019 
00020 #ifndef rtpsession_priv_h
00021 #define rtpsession_priv_h
00022 
00023 #include "ortp/rtpsession.h"
00024 
00025 typedef enum {
00026         RTP_SESSION_RECV_SYNC=1,        /* the rtp session is synchronising in the incoming stream */
00027         RTP_SESSION_FIRST_PACKET_DELIVERED=1<<1,
00028         RTP_SESSION_SCHEDULED=1<<2,/* the scheduler controls this session*/
00029         RTP_SESSION_BLOCKING_MODE=1<<3, /* in blocking mode */
00030         RTP_SESSION_RECV_NOT_STARTED=1<<4,      /* the application has not started to try to recv */
00031         RTP_SESSION_SEND_NOT_STARTED=1<<5,  /* the application has not started to send something */
00032         RTP_SESSION_IN_SCHEDULER=1<<6,  /* the rtp session is in the scheduler list */
00033         RTP_SESSION_USING_EXT_SOCKETS=1<<7, /* the session is using externaly supplied sockets */
00034         RTP_SOCKET_CONNECTED=1<<8,
00035         RTCP_SOCKET_CONNECTED=1<<9,
00036         RTP_SESSION_USING_TRANSPORT=1<<10
00037 }RtpSessionFlags;
00038 
00039 #define rtp_session_using_transport(s, stream) (((s)->flags & RTP_SESSION_USING_TRANSPORT) && (s->stream.tr != 0))
00040 
00041 void rtp_session_update_payload_type(RtpSession * session, int pt);
00042 void rtp_putq(queue_t *q, mblk_t *mp);
00043 mblk_t * rtp_getq(queue_t *q, uint32_t ts, int *rejected);
00044 int rtp_session_rtp_recv(RtpSession * session, uint32_t ts);
00045 int rtp_session_rtcp_recv(RtpSession * session);
00046 int rtp_session_rtp_send (RtpSession * session, mblk_t * m);
00047 int rtp_session_rtcp_send (RtpSession * session, mblk_t * m);
00048 
00049 void rtp_session_rtp_parse(RtpSession *session, mblk_t *mp, uint32_t local_str_ts, struct sockaddr *addr, socklen_t addrlen);
00050 void rtp_session_rtcp_parse(RtpSession *session, mblk_t *mp);
00051 
00052 void rtp_session_dispatch_event(RtpSession *session, OrtpEvent *ev);
00053 
00054 #endif

Generated on Thu Apr 5 18:59:20 2007 for oRTP by  doxygen 1.5.1