sipxmedialib  Version 3.3
MprNotchFilter.h
Go to the documentation of this file.
1 //
2 // Copyright (C) 2008-2015 SIPez LLC. All rights reserved.
3 //
4 // $$
6 
7 
8 #ifndef _MprNotchFilter_h_
9 #define _MprNotchFilter_h_
10 
11 // SYSTEM INCLUDES
12 // APPLICATION INCLUDES
13 #include "mp/MpAudioResource.h"
14 #include "mp/MpAudioBuf.h"
15 #include "mp/MpResourceMsg.h"
16 
17 
18 // DEFINES
19 // MACROS
20 // EXTERNAL FUNCTIONS
21 // EXTERNAL VARIABLES
22 // STRUCTS
23 // TYPEDEFS
24 // FORWARD DECLARATIONS
25 
27 {
28 /* //////////////////////////////// PUBLIC //////////////////////////////// */
29 public:
30 /* =============================== CREATORS =============================== */
32 
33  MprNotchFilter(const UtlString& rName);
35 
38 
40 
41 /* ============================= MANIPULATORS ============================= */
43 
44 
46 
47 /* ============================== ACCESSORS =============================== */
49 
50 
51 
53 
54 /* =============================== INQUIRY ================================ */
56 
57 
58 
59 /* ////////////////////////////// PROTECTED /////////////////////////////// */
60 protected:
61 
63  UtlBoolean handleMessage(MpResourceMsg& rMsg);
64 
66  UtlBoolean doProcessFrame(MpBufPtr inBufs[],
67  MpBufPtr outBufs[],
68  int inBufsSize,
69  int outBufsSize,
70  UtlBoolean isEnabled,
71  int samplesPerFrame,
72  int samplesPerSecond);
73 
74 
75 /* /////////////////////////////// PRIVATE //////////////////////////////// */
76 private:
77  static const float DEFAULT_TARGET_FREQ;
78  static const float DEFAULT_SAMPLING_RATE;
79  static const float DEFAULT_BW;
80 
81  float mTargetFreq;
82  float mSampleRate;
83  float mBW;
84  float mA0;
85  float mA1;
86  float mA2;
87  float mB1;
88  float mB2;
89  float mZ1;
90  float mZ2;
91 
93  void initFilter();
94  void doFiltering(const MpAudioSample *x, MpAudioSample *y, int n);
95  UtlBoolean filterSamples(MpBufPtr inBufs[], int inBufsSize,
96  MpBufPtr outBufs[], int outBufsSize,
97  int samplesPerFrame);
98 };
99 
100 /* ============================ INLINE METHODS ============================ */
101 
102 #endif // _MprNotchFilter_h_
void initFilter()
Definition: MprNotchFilter.cpp:117
Message object used to communicate with the media processing task.
Definition: MpResourceMsg.h:30
float mA2
Definition: MprNotchFilter.h:86
static const float DEFAULT_TARGET_FREQ
Definition: MprNotchFilter.h:77
~MprNotchFilter()
Destructor.
Definition: MprNotchFilter.cpp:64
float mZ2
Definition: MprNotchFilter.h:90
int samplesPerFrame
float mA1
Definition: MprNotchFilter.h:85
static const float DEFAULT_SAMPLING_RATE
Definition: MprNotchFilter.h:78
float mB1
Definition: MprNotchFilter.h:87
Flow graph for coordinating the execution of media processing resources.
Definition: MpFlowGraphBase.h:91
int samplesPerSecond
float mSampleRate
Definition: MprNotchFilter.h:82
int16_t MpAudioSample
Definition: MpTypes.h:44
UtlBoolean filterSamples(MpBufPtr inBufs[], int inBufsSize, MpBufPtr outBufs[], int outBufsSize, int samplesPerFrame)
Definition: MprNotchFilter.cpp:178
float mZ1
Definition: MprNotchFilter.h:89
void doFiltering(const MpAudioSample *x, MpAudioSample *y, int n)
Definition: MprNotchFilter.cpp:142
float mA0
Definition: MprNotchFilter.h:84
static const float DEFAULT_BW
Definition: MprNotchFilter.h:79
Abstract base class for all audio processing objects.
Definition: MpAudioResource.h:38
Definition: MprNotchFilter.h:26
float mBW
Definition: MprNotchFilter.h:83
UtlBoolean doProcessFrame(MpBufPtr inBufs[], MpBufPtr outBufs[], int inBufsSize, int outBufsSize, UtlBoolean isEnabled, int samplesPerFrame, int samplesPerSecond)
This method does the real work for the media processing resource and must be defined in each class de...
Definition: MprNotchFilter.cpp:87
Smart pointer to MpBuf.
Definition: MpBuf.h:160
MprNotchFilter(const UtlString &rName)
Constructor.
Definition: MprNotchFilter.cpp:52
float mB2
Definition: MprNotchFilter.h:88
MpFlowGraphBase * mpFlowGraph
Definition: MprNotchFilter.h:92
float mTargetFreq
Definition: MprNotchFilter.h:81
UtlBoolean isEnabled() const
Returns TRUE is this resource is currently enabled, FALSE otherwise.
Definition: MpResource.cpp:440
UtlBoolean handleMessage(MpResourceMsg &rMsg)
Handles an incoming flowgraph message for this media processing object.
Definition: MprNotchFilter.cpp:75