- Main Page
- Data Structures
- Files

- File List
- Globals

# 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