OSDN Git Service

stop using trunk or dist directory in rec10 project.
[rec10/rec10-git.git] / tstools / DtsEdit / src / gpac / internal / ietf_dev.h
diff --git a/tstools/DtsEdit/src/gpac/internal/ietf_dev.h b/tstools/DtsEdit/src/gpac/internal/ietf_dev.h
deleted file mode 100644 (file)
index 8e5f38b..0000000
+++ /dev/null
@@ -1,327 +0,0 @@
-/*\r
- *                     GPAC - Multimedia Framework C SDK\r
- *\r
- *                     Copyright (c) Jean Le Feuvre 2000-2005\r
- *                                     All rights reserved\r
- *\r
- *  This file is part of GPAC / IETF RTP/RTSP/SDP sub-project\r
- *\r
- *  GPAC is free software; you can redistribute it and/or modify\r
- *  it under the terms of the GNU Lesser General Public License as published by\r
- *  the Free Software Foundation; either version 2, or (at your option)\r
- *  any later version.\r
- *   \r
- *  GPAC is distributed in the hope that it will be useful,\r
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of\r
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
- *  GNU Lesser General Public License for more details.\r
- *   \r
- *  You should have received a copy of the GNU Lesser General Public\r
- *  License along with this library; see the file COPYING.  If not, write to\r
- *  the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. \r
- *\r
- */\r
-\r
-#ifndef        _GF_IETF_DEV_H_\r
-#define _GF_IETF_DEV_H_\r
-\r
-#include <gpac/ietf.h>\r
-#include <gpac/thread.h>\r
-\r
-/*\r
-                       RTP intern\r
-*/\r
-\r
-typedef struct\r
-{\r
-       /*version of the packet. Must be 2*/\r
-       u8 Version;\r
-       /*padding bits at the end of the payload*/\r
-       u8 Padding;\r
-       /*number of reports*/\r
-       u8 Count;\r
-       /*payload type of RTCP pck*/\r
-       u8 PayloadType;\r
-       /*The length of this RTCP packet in 32-bit words minus one including the header and any padding*/\r
-       u16 Length;\r
-       /*sync source identifier*/\r
-       u32 SSRC;\r
-} GF_RTCPHeader;       \r
-\r
-\r
-typedef struct __PRO_item\r
-{\r
-       struct __PRO_item *next;\r
-       u32 pck_seq_num;\r
-       void *pck;\r
-       u32 size;\r
-} GF_POItem;\r
-\r
-typedef struct __PO\r
-{\r
-       struct __PRO_item *in;\r
-       u32 head_seqnum;\r
-       u32 Count;\r
-       u32 MaxCount;\r
-       u32 IsInit;\r
-       u32 MaxDelay, LastTime;\r
-} GF_RTPReorder;\r
-\r
-/* creates new RTP reorderer\r
-       @MaxCount: forces automatic packet flush. 0 means no flush\r
-       @MaxDelay: is the max time in ms the queue will wait for a missing packet\r
-*/\r
-GF_RTPReorder *gf_rtp_reorderer_new(u32 MaxCount, u32 MaxDelay);\r
-void gf_rtp_reorderer_del(GF_RTPReorder *po);\r
-/*reset the Queue*/\r
-void gf_rtp_reorderer_reset(GF_RTPReorder *po);\r
-\r
-/*Adds a packet to the queue. Packet Data is memcopied*/\r
-GF_Err gf_rtp_reorderer_add(GF_RTPReorder *po, void *pck, u32 pck_size, u32 pck_seqnum);\r
-/*gets the output of the queue. Packet Data IS YOURS to delete*/\r
-void *gf_rtp_reorderer_get(GF_RTPReorder *po, u32 *pck_size);\r
-\r
-\r
-/*the RTP channel with both RTP and RTCP sockets and buffers\r
-each channel is identified by a control string given in RTSP Describe\r
-this control string is used with Darwin\r
-*/\r
-struct __tag_rtp_channel\r
-{\r
-       /*global transport info for the session*/\r
-       GF_RTSPTransport net_info;\r
-       \r
-       /*RTP CHANNEL*/\r
-       GF_Socket *rtp;\r
-       /*RTCP CHANNEL*/\r
-       GF_Socket *rtcp;\r
-       \r
-       /*RTP Packet reordering. Turned on/off during initialization. The library forces a 200 ms\r
-       max latency at the reordering queue*/\r
-       GF_RTPReorder *po;\r
-\r
-       /*RTCP report times*/\r
-       u32 last_report_time;\r
-       u32 next_report_time;\r
-\r
-       /*NAT keep-alive*/\r
-       u32 last_nat_keepalive_time, nat_keepalive_time_period;\r
-\r
-       \r
-       /*the seq number of the first packet as signaled by the server if any, or first\r
-       RTP SN received (RTP multicast)*/\r
-       u32 rtp_first_SN;\r
-       /*the TS of the associated first packet as signaled by the server if any, or first\r
-       RTP TS received (RTP multicast)*/\r
-       u32 rtp_time;\r
-       /*NPT from the rtp_time*/\r
-       u32 CurrentTime;\r
-       /*num loops of pck sn*/\r
-       u32 num_sn_loops;\r
-       /*some mapping info - we should support # payloads*/\r
-       u8 PayloadType;\r
-       u32 TimeScale;\r
-\r
-       /*static buffer for RTP sending*/\r
-       char *send_buffer;\r
-       u32 send_buffer_size;\r
-       u32 pck_sent_since_last_sr;\r
-       u32 last_pck_ts;\r
-       u32 last_pck_ntp_sec, last_pck_ntp_frac;\r
-       u32 num_pck_sent, num_payload_bytes;\r
-\r
-       /*RTCP info*/\r
-       char *s_name, *s_email, *s_location, *s_phone, *s_tool, *s_note, *s_priv;\r
-//     s8 first_rtp_pck;\r
-       s8 first_SR;\r
-       u32 SSRC;\r
-       u32 SenderSSRC;\r
-\r
-       u32 last_pck_sn;\r
-\r
-       char *CName;\r
-\r
-       u32 rtcp_bytes_sent;\r
-       /*total pck rcv*/\r
-       u32 tot_num_pck_rcv, tot_num_pck_expected;\r
-       /*stats since last SR*/\r
-       u32 last_num_pck_rcv, last_num_pck_expected, last_num_pck_loss;\r
-       /*jitter compute*/\r
-       u32 Jitter, ntp_init;\r
-       s32 last_deviance;      \r
-       /*NTP of last SR*/\r
-       u32 last_SR_NTP_sec, last_SR_NTP_frac;\r
-       /*RTP time at last SR as indicated in SR*/\r
-       u32 last_SR_rtp_time;\r
-       /*payload info*/\r
-       u32 total_pck, total_bytes;\r
-};\r
-\r
-/*gets UTC in the channel RTP timescale*/\r
-u32 gf_rtp_channel_time(GF_RTPChannel *ch);\r
-/*gets time in 1/65536 seconds (for reports)*/\r
-u32 gf_rtp_get_report_time();\r
-/*updates the time for the next report (SR, RR)*/\r
-void gf_rtp_get_next_report_time(GF_RTPChannel *ch);\r
-\r
-\r
-/*\r
-                       RTSP intern\r
-*/\r
-\r
-#define GF_RTSP_DEFAULT_BUFFER         2048\r
-#define GF_RTSP_VERSION                "RTSP/1.0"\r
-\r
-/*macros for RTSP command and response formmating*/\r
-#define RTSP_WRITE_STEPALLOC   250\r
-\r
-#define RTSP_WRITE_ALLOC_STR(buf, buf_size, pos, str)          \\r
-       if (str) { \\r
-               if (strlen((const char *) str)+pos >= buf_size) {       \\r
-                       buf_size += RTSP_WRITE_STEPALLOC;       \\r
-                       buf = (char *) realloc(buf, buf_size);          \\r
-               }       \\r
-               strcpy(buf+pos, (const char *) str);            \\r
-               pos += strlen((const char *) str);              \\r
-       }\\r
-\r
-#define RTSP_WRITE_HEADER(buf, buf_size, pos, type, str)               \\r
-       if (str) { \\r
-               RTSP_WRITE_ALLOC_STR(buf, buf_size, pos, type);         \\r
-               RTSP_WRITE_ALLOC_STR(buf, buf_size, pos, ": ");         \\r
-               RTSP_WRITE_ALLOC_STR(buf, buf_size, pos, str);          \\r
-               RTSP_WRITE_ALLOC_STR(buf, buf_size, pos, "\r\n");               \\r
-       } \\r
-\r
-#define RTSP_WRITE_INT(buf, buf_size, pos, d, sig)             \\r
-       if (sig) { \\r
-               sprintf(temp, "%d", d);         \\r
-       } else { \\r
-               sprintf(temp, "%u", d);         \\r
-       }       \\r
-       RTSP_WRITE_ALLOC_STR(buf, buf_size, pos, temp);\r
-\r
-#define RTSP_WRITE_FLOAT(buf, buf_size, pos, d)                \\r
-       sprintf(temp, "%.4f", d);               \\r
-       RTSP_WRITE_ALLOC_STR(buf, buf_size, pos, temp);\r
-\r
-/*default packet size, but resize on the fly if needed*/\r
-#define RTSP_PCK_SIZE                  6000\r
-#define RTSP_TCP_BUF_SIZE              0x10000ul\r
-\r
-\r
-typedef struct\r
-{\r
-       u8 rtpID;\r
-       u8 rtcpID;\r
-       void *ch_ptr;\r
-} GF_TCPChan;\r
-\r
-/**************************************\r
-               RTSP Session\r
-***************************************/\r
-struct _tag_rtsp_session\r
-{\r
-       /*service name (extracted from URL) ex: news/latenight.mp4, vod.mp4 ...*/\r
-       char *Service;  \r
-       /*server name (extracted from URL)*/\r
-       char *Server;\r
-       /*server port (extracted from URL)*/\r
-       u16 Port;\r
-\r
-       /*if RTSP is on UDP*/\r
-       u8 ConnectionType;\r
-       /*TCP interleaving ID*/\r
-       u8 InterID;\r
-       /*http tunnel*/\r
-       Bool HasTunnel;\r
-       GF_Socket *http;\r
-       char HTTP_Cookie[30];\r
-       u32 CookieRadLen;\r
-\r
-       /*RTSP CHANNEL*/\r
-       GF_Socket *connection;\r
-       u32 SockBufferSize;\r
-       /*needs connection*/\r
-       u32 NeedConnection;\r
-\r
-       /*the RTSP sequence number*/\r
-       u32 CSeq;\r
-       /*this is for aggregated request in order to check SeqNum*/\r
-       u32 NbPending;\r
-\r
-       /*RTSP sessionID, arbitrary length, alpha-numeric*/\r
-       const char *last_session_id;\r
-\r
-       /*RTSP STATE machine*/\r
-       u32 RTSP_State;\r
-       char RTSPLastRequest[40];\r
-\r
-       /*current buffer from TCP if any*/\r
-       char TCPBuffer[RTSP_TCP_BUF_SIZE];\r
-       u32 CurrentSize, CurrentPos;\r
-\r
-       /*RTSP interleaving*/\r
-       GF_Err (*RTSP_SignalData)(GF_RTSPSession *sess, void *chan, char *buffer, u32 bufferSize, Bool IsRTCP);\r
-       \r
-       /*buffer for pck reconstruction*/\r
-       char *rtsp_pck_buf;\r
-       u32 rtsp_pck_size;\r
-       u32 pck_start, payloadSize;\r
-\r
-       /*all RTP channels in an interleaved RTP on RTSP session*/\r
-       GF_List *TCPChannels;\r
-       /*thread-safe, full duplex library for PLAY and RECORD*/\r
-       GF_Mutex *mx;\r
-\r
-       char *MobileIP; \r
-};\r
-\r
-GF_RTSPSession *gf_rtsp_session_new(char *sURL, u16 DefaultPort);\r
-\r
-/*check connection status*/\r
-GF_Err gf_rtsp_check_connection(GF_RTSPSession *sess);\r
-/*send data on RTSP*/\r
-GF_Err gf_rtsp_send_data(GF_RTSPSession *sess, char *buffer, u32 Size);\r
-\r
-/* \r
-                       Common RTSP tools\r
-*/\r
-\r
-/*locate body-start and body size in response/commands*/\r
-void gf_rtsp_get_body_info(GF_RTSPSession *sess, u32 *body_start, u32 *body_size);\r
-/*read TCP until a full command/response is received*/\r
-GF_Err gf_rtsp_read_reply(GF_RTSPSession *sess);\r
-/*fill the TCP buffer*/\r
-GF_Err gf_rtsp_fill_buffer(GF_RTSPSession *sess);\r
-/*force a fill on TCP buffer - used for de-interleaving and TCP-fragmented RTSP messages*/\r
-GF_Err gf_rtsp_refill_buffer(GF_RTSPSession *sess);\r
-/*parses a transport string and returns a transport structure*/\r
-GF_RTSPTransport *gf_rtsp_transport_parse(char *buffer);\r
-/*parsing of header for com and rsp*/\r
-GF_Err gf_rtsp_parse_header(char *buffer, u32 BufferSize, u32 BodyStart, GF_RTSPCommand *com, GF_RTSPResponse *rsp);\r
-void gf_rtsp_set_command_value(GF_RTSPCommand *com, char *Header, char *Value);\r
-void gf_rtsp_set_response_value(GF_RTSPResponse *rsp, char *Header, char *Value);\r
-/*deinterleave a data packet*/\r
-GF_Err gf_rtsp_set_deinterleave(GF_RTSPSession *sess);\r
-/*start session through HTTP tunnel (QTSS)*/\r
-GF_Err gf_rtsp_http_tunnel_start(GF_RTSPSession *sess, char *UserAgent);\r
-\r
-\r
-/*packetization routines*/\r
-GF_Err gp_rtp_builder_do_mpeg4(GP_RTPPacketizer *builder, char *data, u32 data_size, u8 IsAUEnd, u32 FullAUSize);\r
-GF_Err gp_rtp_builder_do_h263(GP_RTPPacketizer *builder, char *data, u32 data_size, u8 IsAUEnd, u32 FullAUSize);\r
-GF_Err gp_rtp_builder_do_amr(GP_RTPPacketizer *builder, char *data, u32 data_size, u8 IsAUEnd, u32 FullAUSize);\r
-GF_Err gp_rtp_builder_do_mpeg12_video(GP_RTPPacketizer *builder, char *data, u32 data_size, u8 IsAUEnd, u32 FullAUSize);\r
-GF_Err gp_rtp_builder_do_mpeg12_audio(GP_RTPPacketizer *builder, char *data, u32 data_size, u8 IsAUEnd, u32 FullAUSize);\r
-GF_Err gp_rtp_builder_do_tx3g(GP_RTPPacketizer *builder, char *data, u32 data_size, u8 IsAUEnd, u32 FullAUSize, u32 duration, u8 descIndex);\r
-GF_Err gp_rtp_builder_do_avc(GP_RTPPacketizer *builder, char *data, u32 data_size, u8 IsAUEnd, u32 FullAUSize);\r
-GF_Err gp_rtp_builder_do_qcelp(GP_RTPPacketizer *builder, char *data, u32 data_size, u8 IsAUEnd, u32 FullAUSize);\r
-GF_Err gp_rtp_builder_do_smv(GP_RTPPacketizer *builder, char *data, u32 data_size, u8 IsAUEnd, u32 FullAUSize);\r
-GF_Err gp_rtp_builder_do_latm(GP_RTPPacketizer *builder, char *data, u32 data_size, u8 IsAUEnd, u32 FullAUSize, u32 duration); \r
-GF_Err gp_rtp_builder_do_dims(GP_RTPPacketizer *builder, char *data, u32 data_size, u8 IsAUEnd, u32 FullAUSize, u32 duration);\r
-GF_Err gp_rtp_builder_do_ac3(GP_RTPPacketizer *builder, char *data, u32 data_size, u8 IsAUEnd, u32 FullAUSize);\r
-\r
-\r
-#endif /*_GF_IETF_DEV_H_*/\r
-\r