/usr/include/sipxtapi/mp/StreamQueueingFormatDecoder.h is in libsipxtapi-dev 3.3.0~test17-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 | //
// Copyright (C) 2006 SIPez LLC.
// Licensed to SIPfoundry under a Contributor Agreement.
//
// Copyright (C) 2004-2006 SIPfoundry Inc.
// Licensed by SIPfoundry under the LGPL license.
//
// Copyright (C) 2004-2006 Pingtel Corp. All rights reserved.
// Licensed to SIPfoundry under a Contributor Agreement.
//
// $$
///////////////////////////////////////////////////////////////////////////////
#ifndef _StreamQueueingFormatDecoder_h_
#define _StreamQueueingFormatDecoder_h_
// SYSTEM INCLUDES
#include "time.h"
// APPLICATION INCLUDES
#include "mp/StreamFormatDecoder.h"
#include "os/OsDefs.h"
#include "os/OsMsgPool.h"
#include "os/OsMsgQ.h"
#include "os/OsStatus.h"
#include "os/OsMutex.h"
// DEFINES
// MACROS
// EXTERNAL FUNCTIONS
// EXTERNAL VARIABLES
// CONSTANTS
// STRUCTS
// TYPEDEFS
// FORWARD DECLARATIONS
//:The Stream Queueing Format Decoder builds upon the abstract
//:StreamFormatDecoder by adding a mechanism to queue a max number
//:of rendered frames.
class StreamQueueingFormatDecoder : public StreamFormatDecoder
{
/* //////////////////////////// PUBLIC //////////////////////////////////// */
public:
/* ============================ CREATORS ================================== */
///@name Creators
//@{
StreamQueueingFormatDecoder(StreamDataSource* pDataSource,
int iQueueLength);
//:Constructs a queueing format decoder given a data source and queue
//:length
virtual
~StreamQueueingFormatDecoder();
//:Destructor
//@}
/* ============================ MANIPULATORS ============================== */
///@name Manipulators
//@{
virtual OsStatus getFrame(unsigned short* samples);
//: Gets the next available frame
//! returns OS_SUCCESS if a frame is available
virtual OsStatus queueFrame(const unsigned short* pSamples);
//: Queues a frame of data
virtual OsStatus queueEndOfFrames();
//: Queues an end of frame marker. This informs MprFromStream that the
//: Stream has ended.
virtual OsStatus drain();
//: Drains any queued frames
//@}
/* ============================ ACCESSORS ================================= */
///@name Accessors
//@{
int getMaxQueueLength() ;
//: Gets the maximum number of frames that can be queued before the
//: queueing routines will block.
int getNumQueuedFrames() ;
//: Gets the current number of queued frames.
//@}
/* ============================ INQUIRY =================================== */
///@name Inquiry
//@{
//@}
/* //////////////////////////// PROTECTED ///////////////////////////////// */
protected:
StreamQueueingFormatDecoder(const StreamQueueingFormatDecoder& rStreamQueueingFormatDecoder);
//:Copy constructor (not supported)
StreamQueueingFormatDecoder& operator=(const StreamQueueingFormatDecoder& rhs);
//:Assignment operator (not supported)
/* //////////////////////////// PRIVATE /////////////////////////////////// */
private:
OsMsgQ mMsgqFrames ; // Queue of frames
OsMsgPool mMsgPool; // Pool for msg containers
int miMaxQueueLength ; // Max size of the queue length
UtlBoolean mbReportThrottle ; // Should this report throttles?
UtlBoolean mbDraining ;
static OsMutex mMutReport ;// Thread safety for performance monitoring
static time_t sLastReported ; // When we last reported status
static unsigned int sDeltaFrames ; // Frames since last report
static unsigned int sDeltaStreams ; // Streams since last report
static unsigned int sDeltaUnderruns ;// Underruns since last report
static unsigned int sDeltaThrottles ;// Throttles since last report
static unsigned int sTotalFrames ; // Cumulative number of frames
static unsigned int sTotalStreams ; // Cumulative number of streams
static unsigned int sTotalUnderruns ;// Cumulative number of underruns
static unsigned int sTotalThrottles ;// Cumulative number of throttles
static void reportFrame(UtlBoolean bUnderrun) ;
//:Reports that a frame has been processed by media processing.
static void reportThrottle() ;
//: Reports that the decoder has been throttled (decoding faster
//: then data is being requested).
static void reportStream() ;
//:Reports that a stream has been created
};
/* ============================ INLINE METHODS ============================ */
#endif // _StreamQueueingFormatDecoder_h_
|