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

流媒体/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.  *              Bill May        wmay@cisco.com
  20.  */
  21. #ifndef __MEDIA_UTILS_H__
  22. #define __MEDIA_UTILS_H__ 1
  23. #include "video.h"
  24. #include "our_bytestream.h"
  25. typedef struct video_query_t {
  26.   uint32_t track_id;
  27.   const char *compressor;
  28.   int type;
  29.   int profile;
  30.   format_list_t *fptr;
  31.   int h;
  32.   int w;
  33.   double frame_rate;
  34.   const uint8_t *config;
  35.   uint32_t config_len;
  36.   // user supplied
  37.   int enabled;
  38.   void *reference;
  39. } video_query_t;
  40. typedef struct audio_query_t {
  41.   uint32_t track_id;
  42.   const char *compressor;
  43.   int type;
  44.   int profile;
  45.   format_list_t *fptr;
  46.   int sampling_freq;
  47.   int chans;
  48.   const uint8_t *config;
  49.   uint32_t config_len;
  50.   // user supplied
  51.   int enabled;
  52.   void *reference;
  53. } audio_query_t;
  54. typedef void (*media_list_query_f)(CPlayerSession *psptr,
  55.    int num_video, 
  56.    video_query_t *,
  57.    int num_audio,
  58.    audio_query_t *);
  59. typedef struct control_callback_vft_t {
  60.   media_list_query_f media_list_query;
  61. } control_callback_vft_t;
  62. int parse_name_for_session(CPlayerSession *psptr,
  63.    const char *name,
  64.    char *errmsg,
  65.    uint32_t errlen,
  66.    control_callback_vft_t *);
  67. int lookup_audio_codec_by_name(const char *name);
  68. int lookup_video_codec_by_name(const char *name);
  69. class CRtpByteStreamBase;
  70. struct rtp_packet;
  71. CRtpByteStreamBase *create_rtp_byte_stream_for_format(format_list_t *fmt,
  72.       unsigned int rtp_proto,
  73.       int ondemand,
  74.       uint64_t tps,
  75.       rtp_packet **head, 
  76.       rtp_packet **tail,
  77.       int rtp_seq_set, 
  78.       uint16_t rtp_seq,
  79.       int rtp_ts_set,
  80.       uint32_t rtp_base_ts,
  81.       int rtcp_received,
  82.       uint32_t ntp_frac,
  83.       uint32_t ntp_sec,
  84.       uint32_t rtp_ts);
  85. #endif