/usr/include/sipxtapi/mp/StreamFormatDecoder.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 143 144 145 146 147 | //
// 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 _StreamFormatDecoder_h_
#define _StreamFormatDecoder_h_
// SYSTEM INCLUDES
// APPLICATION INCLUDES
#include <utl/UtlString.h>
#include "mp/StreamDefs.h"
#include "os/OsStatus.h"
// DEFINES
// MACROS
// EXTERNAL FUNCTIONS
// EXTERNAL VARIABLES
// CONSTANTS
// STRUCTS
// TYPEDEFS
typedef enum // Format Decoder Event
{
DecodingStartedEvent, // Started Decoding
DecodingUnderrunEvent, // Supply cannot meet demand
DecodingThrottledEvent, // Being throttled in frame generation
DecodingCompletedEvent, // Completed decoding
DecodingErrorEvent // Error while decoding
} StreamDecoderEvent;
// FORWARD DECLARATIONS
class StreamDecoderListener;
class StreamDataSource;
//:Define an abstract Stream Format Decoder. The Stream Format Decoder
//:pulls data from an abstract data source and decodes the data for playback
//:on an xpressa phone.
class StreamFormatDecoder
{
/* //////////////////////////// PUBLIC //////////////////////////////////// */
public:
/* ============================ CREATORS ================================== */
///@name Creators
//@{
StreamFormatDecoder(StreamDataSource* pDataSource);
//:Constructs a decoder given a data source
virtual ~StreamFormatDecoder();
//:Destructor
//@}
/* ============================ MANIPULATORS ============================== */
///@name Manipulators
//@{
virtual OsStatus init() = 0 ;
//:Initializes the decoder
virtual OsStatus free() = 0 ;
//:Frees all resources consumed by the decoder
virtual OsStatus begin() = 0 ;
//:Begins decoding
virtual OsStatus end() = 0 ;
//:Ends decoding
virtual OsStatus getFrame(unsigned short* pSamples) = 0 ;
//:Gets the next available frame.
//!returns TRUE if a frame is available, otherwise false
void setListener(StreamDecoderListener* pListener);
//:Sets a listener to receive StreamDecoderEvents.
//@}
/* ============================ ACCESSORS ================================= */
///@name Accessors
//@{
virtual OsStatus toString(UtlString& string) = 0 ;
//:Renders a string describing this decoder.
// This is often used for debugging purposes.
StreamDataSource* getDataSource() ;
//:Gets the the data source for this decoder
//@}
/* ============================ INQUIRY =================================== */
///@name Inquiry
//@{
virtual UtlBoolean isDecoding() = 0 ;
//:Gets the decoding status. TRUE indicates decoding activity, false
//:indicates the decoder has completed.
virtual UtlBoolean validDecoder() = 0 ;
//:Determines if this is a valid decoder given the associated data
//:source.
// The data source is "peeked" for data, so that the stream's
// data is not disturbed.
/* ============================ TESTING =================================== */
#ifdef MP_STREAM_DEBUG /* [ */
static const char* getEventString(StreamDecoderEvent event);
#endif /* MP_STREAM_DEBUG ] */
//@}
/* //////////////////////////// PROTECTED ///////////////////////////////// */
protected:
StreamFormatDecoder(const StreamFormatDecoder& rStreamFormatDecoder);
//:Copy constructor
StreamFormatDecoder& operator=(const StreamFormatDecoder& rhs);
//:Assignment operator
virtual void fireEvent(StreamDecoderEvent event);
//:Fire an event to an interested consumer.
/* //////////////////////////// PRIVATE /////////////////////////////////// */
private:
StreamDecoderListener *mpListener ; // Stream Decoder Listener
StreamDataSource* mpDataSource ; // Abstract Data Source
};
/* ============================ INLINE METHODS ============================ */
#endif // _StreamFormatDecoder_h_
|