mmstu.h
上传用户:riyaled888
上传日期:2009-03-27
资源大小:7338k
文件大小:3k
源码类别:

多媒体

开发平台:

MultiPlatform

  1. /*****************************************************************************
  2.  * mms.h: MMS access plug-in
  3.  *****************************************************************************
  4.  * Copyright (C) 2001, 2002 VideoLAN
  5.  * $Id: mmstu.h 8192 2004-07-16 11:29:21Z hartman $
  6.  *
  7.  * Authors: Laurent Aimar <fenrir@via.ecp.fr>
  8.  *
  9.  * This program is free software; you can redistribute it and/or modify
  10.  * it under the terms of the GNU General Public License as published by
  11.  * the Free Software Foundation; either version 2 of the License, or
  12.  * (at your option) any later version.
  13.  *
  14.  * This program is distributed in the hope that it will be useful,
  15.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  16.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  17.  * GNU General Public License for more details.
  18.  *
  19.  * You should have received a copy of the GNU General Public License
  20.  * along with this program; if not, write to the Free Software
  21.  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111, USA.
  22.  *****************************************************************************/
  23. #define MMS_PACKET_ANY          0
  24. #define MMS_PACKET_CMD          1
  25. #define MMS_PACKET_HEADER       2
  26. #define MMS_PACKET_MEDIA        3
  27. #define MMS_PACKET_UDP_TIMING   4
  28. #define MMS_CMD_HEADERSIZE  48
  29. #define MMS_BUFFER_SIZE 100000
  30. struct access_sys_t
  31. {
  32.     int                 i_proto;        /* MMS_PROTO_TCP, MMS_PROTO_UDP */
  33.     int                 i_handle_tcp;   /* TCP socket for communication with server */
  34.     int                 i_handle_udp;   /* Optional UDP socket for data(media/header packet) */
  35.                                         /* send by server */
  36.     char                *psz_bind_addr; /* used by udp */
  37.     vlc_url_t           url;
  38.     asf_header_t        asfh;
  39.     /* */
  40.     uint8_t             buffer_tcp[MMS_BUFFER_SIZE];
  41.     int                 i_buffer_tcp;
  42.     uint8_t             buffer_udp[MMS_BUFFER_SIZE];
  43.     int                 i_buffer_udp;
  44.     /* data necessary to send data to server */
  45.     guid_t      guid;
  46.     int         i_command_level;
  47.     int         i_seq_num;
  48.     uint32_t    i_header_packet_id_type;
  49.     uint32_t    i_media_packet_id_type;
  50.     int         i_packet_seq_num;
  51.     uint8_t     *p_cmd;     /* latest command read */
  52.     int         i_cmd;      /* allocated at the begining */
  53.     uint8_t     *p_header;  /* allocated by mms_ReadPacket */
  54.     int         i_header;
  55.     uint8_t     *p_media;   /* allocated by mms_ReadPacket */
  56.     size_t      i_media;
  57.     size_t      i_media_used;
  58.     /* extracted information */
  59.     int         i_command;
  60.     /* from 0x01 answer (not yet set) */
  61.     char        *psz_server_version;
  62.     char        *psz_tool_version;
  63.     char        *psz_update_player_url;
  64.     char        *psz_encryption_type;
  65.     /* from 0x06 answer */
  66.     uint32_t    i_flags_broadcast;
  67.     uint32_t    i_media_length;
  68.     size_t      i_packet_length;
  69.     uint32_t    i_packet_count;
  70.     int         i_max_bit_rate;
  71.     int         i_header_size;
  72.     /* */
  73.     vlc_bool_t  b_seekable;
  74. };