RtpFileTypes.hxx
上传用户:sy_wanhua
上传日期:2013-07-25
资源大小:3048k
文件大小:5k
源码类别:

流媒体/Mpeg4/MP4

开发平台:

C/C++

  1. #ifndef RtpFileTypes_HXX
  2. #define RtpFileTypes_HXX
  3. /* ====================================================================
  4.  * The Vovida Software License, Version 1.0 
  5.  * 
  6.  * Copyright (c) 2000 Vovida Networks, Inc.  All rights reserved.
  7.  * 
  8.  * Redistribution and use in source and binary forms, with or without
  9.  * modification, are permitted provided that the following conditions
  10.  * are met:
  11.  * 
  12.  * 1. Redistributions of source code must retain the above copyright
  13.  *    notice, this list of conditions and the following disclaimer.
  14.  * 
  15.  * 2. Redistributions in binary form must reproduce the above copyright
  16.  *    notice, this list of conditions and the following disclaimer in
  17.  *    the documentation and/or other materials provided with the
  18.  *    distribution.
  19.  * 
  20.  * 3. The names "VOCAL", "Vovida Open Communication Application Library",
  21.  *    and "Vovida Open Communication Application Library (VOCAL)" must
  22.  *    not be used to endorse or promote products derived from this
  23.  *    software without prior written permission. For written
  24.  *    permission, please contact vocal@vovida.org.
  25.  *
  26.  * 4. Products derived from this software may not be called "VOCAL", nor
  27.  *    may "VOCAL" appear in their name, without prior written
  28.  *    permission of Vovida Networks, Inc.
  29.  * 
  30.  * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED
  31.  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  32.  * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND
  33.  * NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL VOVIDA
  34.  * NETWORKS, INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT DAMAGES
  35.  * IN EXCESS OF 281421,000, NOR FOR ANY INDIRECT, INCIDENTAL, SPECIAL,
  36.  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
  37.  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
  38.  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
  39.  * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  40.  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
  41.  * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
  42.  * DAMAGE.
  43.  * 
  44.  * ====================================================================
  45.  * 
  46.  * This software consists of voluntary contributions made by Vovida
  47.  * Networks, Inc. and many individuals on behalf of Vovida Networks,
  48.  * Inc.  For more information on Vovida Networks, Inc., please see
  49.  * <http://www.vovida.org/>.
  50.  *
  51.  */
  52. static const char* const RtpFileTypes_hxx_version =
  53.     "$Id: RtpFileTypes.hxx,v 1.24 2001/07/26 21:47:01 kle Exp $";
  54. #include <sys/stat.h>
  55. #include <string>
  56. /** number of codes in codec table */
  57. extern int myNumberOfCodecs;
  58. /** Basic structure for one codec entry. */
  59. struct RtpFileTypeInfo
  60. {
  61.     /** codec name - used in rtpmap */
  62.     string name;
  63.     /** rtp payload type */
  64.     int payloadType;
  65.     /** frame interval in milliseconds */
  66.     int intervalMs;
  67.     /** encoding tag in .au-file,  0x0000 if format tag doesn't exists */
  68.     unsigned int AuFileFormat;
  69.     /** encoding tag in .wav-file, 0x0000 if format tag doesn't exists */
  70.     unsigned int WavFileFormat;
  71.     /** bytewidth - used in libSnd */
  72.     int bytewidth;
  73.     /** packetSize in bytes */
  74.     int packetSize;
  75.     /** rtp time interval */
  76.     int samples;
  77. };
  78. //TODO use only hex numbers in AuFileFormat and WavFileFormat
  79. /** List of supported codecs and their parameters */
  80. static RtpFileTypeInfo rtpFileTypeInfo[] =
  81. {
  82.     { "UNKNOWN",     -1,     0,  0x0000, 0x0000,    0,    0,    0 },
  83.     { "PCMU",         0,    20,  0x0001, 0x0007,    1,  160,  160 },
  84.     { "PCMU",         0,    30,  0x0001, 0x0007,    1,  240,  240 },
  85.     { "PCMA",         8,    20,  0x001B, 0x0006,    1,  160,  160 },
  86.     { "PCMA",         8,    30,  0x001B, 0x0006,    1,  240,  240 },
  87.     { "L16M",        10,    20,  0x0003, 0x0001,    2,  320,  160 },
  88.     { "G723R63",      4,    30,      48,   5348,   24,   24,  240 },
  89.     { "G723R53",      4,    30,      47,   5347,   20,   20,  240 },
  90.     { "G723AR63",     4,    30,      50,   5350,   24,   24,  240 },
  91.     { "G723AR53",     4,    30,      49,   5349,   20,   20,  240 },
  92.     { "G726R16",     23,    20,      51,   5351,   40,   40,  160 },
  93.     { "G726R24",     22,    20,      52,   5352,   60,   60,  160 },
  94.     { "G726R32",      2,    20,      53,   5353,   80,   80,  160 },
  95.     { "G728",        15,    20,      55,   5355,   20,   40,  160 },
  96.     { "G729",        18,    20,      39,   5339,   20,   20,  160 },
  97.     { "G729A",       18,    20,      40,   5340,   20,   20,  160 },
  98.     { "G729B",       18,    20,      42,   5342,   20,   20,  160 }, 
  99.     { "G729AB",      18,    20,      41,   5341,   20,   20,  160 }, 
  100.     { "G729IETF",    18,    20,      43,   5343,   20,   20,  160 },
  101.     { "GSM",          3,    20,      44,   5344,   33,   33,  160 },
  102.     { "GSMFR",        3,    20,      44,   5344,   34,   34,  160 },
  103.     { "GSMEFR",      20,    20,      45,   5345,   32,   32,  160 }
  104. };
  105. /* Local Variables: */
  106. /* c-file-style: "stroustrup" */
  107. /* indent-tabs-mode: nil */
  108. /* c-file-offsets: ((access-label . -) (inclass . ++)) */
  109. /* c-basic-offset: 4 */
  110. /* End: */
  111. #endif