mpeg3_rtp_bytestream.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.  *              Bill May        wmay@cisco.com
  20.  */
  21. /*
  22.  * player_rtp_bytestream.h - provides an RTP bytestream for the codecs
  23.  * to access
  24.  */
  25. #ifndef __MPEG3_RTP_BYTESTREAM_H__
  26. #define __MPEG3_RTP_BYTESTREAM_H__ 1
  27. #include "rtp_bytestream.h"
  28. class CMpeg3RtpByteStream : public CRtpByteStream
  29. {
  30.  public:
  31.   CMpeg3RtpByteStream(unsigned int rtp_pt,
  32.       format_list_t *fmt, 
  33.       int ondemand,
  34.       uint64_t tickpersec,
  35.       rtp_packet **head, 
  36.       rtp_packet **tail,
  37.       int rtp_seq_set,
  38.       uint16_t rtp_base_seq,
  39.       int rtp_ts_set,
  40.       uint32_t rtp_base_ts,
  41.       int rtcp_received,
  42.       uint32_t ntp_frac,
  43.       uint32_t ntp_sec,
  44.       uint32_t rtp_ts);
  45.   int have_no_data(void);
  46.   uint64_t start_next_frame(uint8_t **buffer, uint32_t *buflen,
  47.     void **ud);
  48.   int skip_next_frame(uint64_t *ptr, int *hasSyncFrame,
  49.       uint8_t **buffer, uint32_t *buflen);
  50.  protected:
  51.   void rtp_done_buffering(void);
  52.  private:
  53.   uint32_t m_rtp_frame_add;
  54.   uint16_t m_next_seq;
  55.   int m_prev_frame_type;
  56.   int m_have_prev_frame_type;
  57.   uint32_t m_prev_ts;
  58.   uint32_t calc_this_ts_from_future(int frame_type, uint32_t pak_ts);
  59.   
  60. };
  61. #endif