/usr/include/sipxtapi/mp/MpResamplerSpeex.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 | //
// Copyright (C) 2008 SIPfoundry Inc.
// Licensed by SIPfoundry under the LGPL license.
//
// Copyright (C) 2008 SIPez LLC.
// Licensed to SIPfoundry under a Contributor Agreement.
//
// $$
//////////////////////////////////////////////////////////////////////////////
// Author: Keith Kyzivat <kkyzivat AT SIPez DOT com>
#ifndef _MpResamplerSpeex_h_
#define _MpResamplerSpeex_h_
#if defined(HAVE_SPEEX) || defined(HAVE_SPEEX_RESAMPLER)
// SYSTEM INCLUDES
// APPLICATION INCLUDES
#include "mp/MpResampler.h"
#include <mp/MpTypes.h>
#include <os/OsStatus.h>
// DEFINES
// MACROS
// EXTERNAL FUNCTIONS
// EXTERNAL VARIABLES
// CONSTANTS
// STRUCTS
// TYPEDEFS
// FORWARD DECLARATIONS
// NOTE: If the below forward declaration causes problems for some compilers
// due to double-typedef, then it can be corrected by including
// speex_resampler.h instead.
typedef struct SpeexResamplerState_ SpeexResamplerState;
/**
* @brief Wrapper for Speex audio resampler.
*/
class MpResamplerSpeex : public MpResamplerBase
{
/* //////////////////////////////// PUBLIC //////////////////////////////// */
public:
/* =============================== CREATORS =============================== */
///@name Creators
//@{
MpResamplerSpeex(uint32_t numChannels,
uint32_t inputRate,
uint32_t outputRate,
int32_t quality = -1);
/**<
* @copydoc MpResamplerBase::MpResamplerBase(uint32_t,uint32_t,uint32_t,int32_t)
*/
~MpResamplerSpeex();
/**<
* @copydoc MpResamplerBase::~MpResamplerBase()
*/
//@}
/* ============================= MANIPULATORS ============================= */
///@name Manipulators
//@{
OsStatus resetStream();
/**<
* @copydoc MpResamplerBase::resetStream()
*/
OsStatus resample(uint32_t channelIndex,
const MpAudioSample* pInBuf,
uint32_t inBufLength,
uint32_t& inSamplesProcessed,
MpAudioSample* pOutBuf,
uint32_t outBufLength,
uint32_t& outSamplesWritten);
/**<
* @copydoc MpResamplerBase::resample()
* @retval OS_INVALID if the speex resampler encounters pointer overlap.
*/
OsStatus resampleInterleavedStereo(const MpAudioSample* pInBuf,
uint32_t inBufLength,
uint32_t& inSamplesProcessed,
MpAudioSample* pOutBuf,
uint32_t outBufLength,
uint32_t& outSamplesWritten);
/**<
* @copydoc MpResamplerBase::resampleInterleavedStereo()
* @retval OS_INVALID if the speex resampler encounters pointer overlap.
*/
OsStatus setInputRate(const uint32_t inputRate);
/**<
* @copydoc MpResamplerBase::setInputRate()
* @param[in] inputRate - The sample rate of the input audio.
*/
// Set the output sample rate, in Hz
OsStatus setOutputRate(const uint32_t outputRate);
/**<
* @copydoc MpResamplerBase::setOutputRate()
*/
// Set the quality of resampling conversion
OsStatus setQuality(const int32_t quality);
/**<
* @copydoc MpResamplerBase::setQuality()
*/
//@}
/* ============================== ACCESSORS =============================== */
///@name Accessors
//@{
//@}
/* =============================== INQUIRY ================================ */
///@name Inquiry
//@{
//@}
/* ////////////////////////////// PROTECTED /////////////////////////////// */
protected:
/* /////////////////////////////// PRIVATE //////////////////////////////// */
private:
OsStatus speexErrToOsStatus(int speexErr);
private:
SpeexResamplerState* mpState;
};
/* ============================ INLINE METHODS ============================ */
#endif // HAVE_SPEEX
#endif // _MpResamplerSpeex_h_
|