www.pudn.com > openh323-v1_15_1-src.zip > rtp2wav.h


/* 
 * rfc28rtp2wav33.h 
 * 
 * Open Phone Abstraction Library (OPAL) 
 * Formally known as the Open H323 project. 
 * 
 * Copyright (c) 2001 Equivalence Pty. Ltd. 
 * 
 * The contents of this file are subject to the Mozilla Public License 
 * Version 1.0 (the "License"); you may not use this file except in 
 * compliance with the License. You may obtain a copy of the License at 
 * http://www.mozilla.org/MPL/ 
 * 
 * Software distributed under the License is distributed on an "AS IS" 
 * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See 
 * the License for the specific language governing rights and limitations 
 * under the License. 
 * 
 * The Original Code is Open Phone Abstraction Library. 
 * 
 * The Initial Developer of the Original Code is Equivalence Pty. Ltd. 
 * 
 * Contributor(s): ______________________________________. 
 * 
 * $Log: rtp2wav.h,v $ 
 * Revision 1.4  2003/01/07 07:53:00  craigs 
 * Fixed problem with multi-frame G.723.1 packets 
 * 
 * Revision 1.3  2002/09/16 01:14:15  robertj 
 * Added #define so can select if #pragma interface/implementation is used on 
 *   platform basis (eg MacOS) rather than compiler, thanks Robert Monaghan. 
 * 
 * Revision 1.2  2002/05/23 04:22:29  robertj 
 * Fixed problem with detecting correct payload type. Must 
 *   wait for first non-empty packet. 
 * Added virtual function so can override record start point. 
 * 
 * Revision 1.1  2002/05/21 02:42:58  robertj 
 * Added class to allow for saving of RTP data to a WAV file. 
 * 
 */ 
 
#ifndef __RTP_RTP2WAV_H 
#define __RTP_RTP2WAV_H 
 
#ifdef P_USE_PRAGMA 
#pragma interface 
#endif 
 
 
#include  
#include "rtp.h" 
 
 
/////////////////////////////////////////////////////////////////////////////// 
 
/**This class encapsulates a WAV file that can be used to intercept RTP data 
   in the standard H323RTPChannel class. 
  */ 
class OpalRtpToWavFile : public PWAVFile 
{ 
    PCLASSINFO(OpalRtpToWavFile, PWAVFile); 
  public: 
    OpalRtpToWavFile(); 
    OpalRtpToWavFile( 
      const PString & filename 
    ); 
 
    virtual BOOL OnFirstPacket(RTP_DataFrame & frame); 
 
    const PNotifier & GetReceiveHandler() const { return receiveHandler; } 
 
  protected: 
    PDECLARE_NOTIFIER(RTP_DataFrame, OpalRtpToWavFile, ReceivedPacket); 
 
    PNotifier                   receiveHandler; 
    RTP_DataFrame::PayloadTypes payloadType; 
    PBYTEArray                  lastFrame; 
    PINDEX                      lastPayloadSize; 
}; 
 
 
#endif // __RTP_RTP2WAV_H 
 
 
/////////////////////////////////////////////////////////////////////////////