rtphint.h
上传用户:sun1608
上传日期:2007-02-02
资源大小:6116k
文件大小:2k
源码类别:

流媒体/Mpeg4/MP4

开发平台:

Visual C++

  1. /*
  2.  * The contents of this file are subject to the Mozilla Public
  3.  * License Version 1.1 (the "License"); you may not use this file
  4.  * except in compliance with the License. You may obtain a copy of
  5.  * the License at http://www.mozilla.org/MPL/
  6.  * 
  7.  * Software distributed under the License is distributed on an "AS
  8.  * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
  9.  * implied. See the License for the specific language governing
  10.  * rights and limitations under the License.
  11.  * 
  12.  * The Original Code is MPEG4IP.
  13.  * 
  14.  * The Initial Developer of the Original Code is Cisco Systems Inc.
  15.  * Portions created by Cisco Systems Inc. are
  16.  * Copyright (C) Cisco Systems Inc. 2000, 2001.  All Rights Reserved.
  17.  * 
  18.  * Contributor(s): 
  19.  * Dave Mackie dmackie@cisco.com
  20.  */
  21. #ifndef __RTPHINT_INCLUDED__
  22. #define __RTPHINT_INCLUDED__
  23. typedef struct {
  24. u_int16_t entryCount;
  25. u_int16_t reserved;
  26. /* entryCount of quicktime_rtp_packet_entry follow */
  27. } quicktime_rtp_sample_t;
  28. typedef struct {
  29. u_int32_t relativeXmitTime;
  30. u_int16_t headerInfo;
  31. u_int16_t seqNum;
  32. u_int16_t flags;
  33. u_int16_t numDataEntries;
  34. /* 
  35.  * if X bit is set in flags,
  36.  *   u_int32_t tlvTableSize 
  37.  *   tlvTableEntries
  38.  */
  39. /* 
  40.  * numDataEntries of quicktime_rtp_data_entry follows 
  41.  */
  42. } quicktime_rtp_packet_entry_t;
  43. typedef struct {
  44. u_int32_t size;
  45. char id[4];
  46. /* size - 8 bytes follow */
  47. u_char data; /* convience placeholder */
  48. /* N.B. don't use sizeof(quicktime_rtp_tlv_entry_t) */
  49. } quicktime_rtp_tlv_entry_t;
  50. typedef struct {
  51. u_int8_t source;
  52. u_int8_t padding[15];
  53. } quicktime_rtp_null_data_entry_t;
  54. typedef struct {
  55. u_int8_t source;
  56. u_int8_t length;
  57. u_int8_t data[14];
  58. } quicktime_rtp_immed_data_entry_t;
  59. typedef struct {
  60. u_int8_t source;
  61. u_int8_t trackId;
  62. u_int16_t length;
  63. u_int32_t fromSampleNum;
  64. u_int32_t offset;
  65. u_int16_t bytesPerCompressionBlock;
  66. u_int16_t samplesPerCompressionBlock;
  67. } quicktime_rtp_sample_data_entry_t;
  68. typedef union {
  69. quicktime_rtp_null_data_entry_t null;
  70. quicktime_rtp_immed_data_entry_t immed;
  71. quicktime_rtp_sample_data_entry_t sample;
  72. } quicktime_rtp_data_entry_t;
  73. typedef struct {
  74. u_int32_t trpy;
  75. u_int32_t nump;
  76. u_int32_t tpyl;
  77. u_int32_t dmed;
  78. u_int32_t dimm;
  79. u_int32_t drep;
  80. int32_t tmin;
  81. int32_t tmax;
  82. u_int32_t pmax;
  83. } quicktime_hint_info_t;
  84. #define RTP_HEADER_STD_SIZE 12
  85. #endif /* __RTPHINT_INCLUDED__ */