aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPhil Burk <philburk@mobileer.com>2020-07-09 13:21:09 -0700
committerPhil Burk <philburk@mobileer.com>2020-07-14 17:41:32 -0700
commit9425ffd8d5ef824815f690e8a225862d3d8ec16f (patch)
treebf9b8213fab6265522c69507d1e13a531a38a38e /src
parent1ca05ea93c0561758d3d6778f48a17c3c8856671 (diff)
downloadoboe-9425ffd8d5ef824815f690e8a225862d3d8ec16f.tar.gz
oboe: use oboe::flowgraph namespace
to prevent AAudio from calling into the Oboe library and causing memory corruption. Pass in external namespace. Fixes #930
Diffstat (limited to 'src')
-rw-r--r--src/flowgraph/ChannelCountConverter.cpp2
-rw-r--r--src/flowgraph/ChannelCountConverter.h2
-rw-r--r--src/flowgraph/ClipToRange.cpp2
-rw-r--r--src/flowgraph/ClipToRange.h2
-rw-r--r--src/flowgraph/FlowGraphNode.cpp2
-rw-r--r--src/flowgraph/FlowGraphNode.h9
-rw-r--r--src/flowgraph/ManyToMultiConverter.cpp2
-rw-r--r--src/flowgraph/ManyToMultiConverter.h6
-rw-r--r--src/flowgraph/MonoToMultiConverter.cpp2
-rw-r--r--src/flowgraph/MonoToMultiConverter.h2
-rw-r--r--src/flowgraph/MultiToMonoConverter.cpp2
-rw-r--r--src/flowgraph/MultiToMonoConverter.h2
-rw-r--r--src/flowgraph/RampLinear.cpp2
-rw-r--r--src/flowgraph/RampLinear.h2
-rw-r--r--src/flowgraph/SampleRateConverter.cpp2
-rw-r--r--src/flowgraph/SampleRateConverter.h4
-rw-r--r--src/flowgraph/SinkFloat.cpp2
-rw-r--r--src/flowgraph/SinkFloat.h2
-rw-r--r--src/flowgraph/SinkI16.cpp2
-rw-r--r--src/flowgraph/SinkI16.h2
-rw-r--r--src/flowgraph/SinkI24.cpp2
-rw-r--r--src/flowgraph/SinkI24.h2
-rw-r--r--src/flowgraph/SourceFloat.cpp2
-rw-r--r--src/flowgraph/SourceFloat.h2
-rw-r--r--src/flowgraph/SourceI16.cpp2
-rw-r--r--src/flowgraph/SourceI16.h2
-rw-r--r--src/flowgraph/SourceI24.cpp2
-rw-r--r--src/flowgraph/SourceI24.h2
28 files changed, 55 insertions, 14 deletions
diff --git a/src/flowgraph/ChannelCountConverter.cpp b/src/flowgraph/ChannelCountConverter.cpp
index 03de262c..b56f8b27 100644
--- a/src/flowgraph/ChannelCountConverter.cpp
+++ b/src/flowgraph/ChannelCountConverter.cpp
@@ -18,7 +18,7 @@
#include "FlowGraphNode.h"
#include "ChannelCountConverter.h"
-using namespace flowgraph;
+using namespace FLOWGRAPH_OUTER_NAMESPACE::flowgraph;
ChannelCountConverter::ChannelCountConverter(
int32_t inputChannelCount,
diff --git a/src/flowgraph/ChannelCountConverter.h b/src/flowgraph/ChannelCountConverter.h
index e4b6f4e6..bf90608e 100644
--- a/src/flowgraph/ChannelCountConverter.h
+++ b/src/flowgraph/ChannelCountConverter.h
@@ -22,6 +22,7 @@
#include "FlowGraphNode.h"
+namespace FLOWGRAPH_OUTER_NAMESPACE {
namespace flowgraph {
/**
@@ -48,5 +49,6 @@ namespace flowgraph {
};
} /* namespace flowgraph */
+} /* namespace oboe */
#endif //FLOWGRAPH_CHANNEL_COUNT_CONVERTER_H
diff --git a/src/flowgraph/ClipToRange.cpp b/src/flowgraph/ClipToRange.cpp
index d2f8a02a..c6ad0b0f 100644
--- a/src/flowgraph/ClipToRange.cpp
+++ b/src/flowgraph/ClipToRange.cpp
@@ -19,7 +19,7 @@
#include "FlowGraphNode.h"
#include "ClipToRange.h"
-using namespace flowgraph;
+using namespace FLOWGRAPH_OUTER_NAMESPACE::flowgraph;
ClipToRange::ClipToRange(int32_t channelCount)
: FlowGraphFilter(channelCount) {
diff --git a/src/flowgraph/ClipToRange.h b/src/flowgraph/ClipToRange.h
index 22b78049..cd7d1c15 100644
--- a/src/flowgraph/ClipToRange.h
+++ b/src/flowgraph/ClipToRange.h
@@ -23,6 +23,7 @@
#include "FlowGraphNode.h"
+namespace FLOWGRAPH_OUTER_NAMESPACE {
namespace flowgraph {
// This is 3 dB, (10^(3/20)), to match the maximum headroom in AudioTrack for float data.
@@ -64,5 +65,6 @@ private:
};
} /* namespace flowgraph */
+} /* namespace oboe */
#endif //FLOWGRAPH_CLIP_TO_RANGE_H
diff --git a/src/flowgraph/FlowGraphNode.cpp b/src/flowgraph/FlowGraphNode.cpp
index fd267489..c7e3ff9d 100644
--- a/src/flowgraph/FlowGraphNode.cpp
+++ b/src/flowgraph/FlowGraphNode.cpp
@@ -19,7 +19,7 @@
#include <sys/types.h>
#include "FlowGraphNode.h"
-using namespace flowgraph;
+using namespace FLOWGRAPH_OUTER_NAMESPACE::flowgraph;
/***************************************************************************/
int32_t FlowGraphNode::pullData(int32_t numFrames, int64_t callCount) {
diff --git a/src/flowgraph/FlowGraphNode.h b/src/flowgraph/FlowGraphNode.h
index e31cab85..642d8391 100644
--- a/src/flowgraph/FlowGraphNode.h
+++ b/src/flowgraph/FlowGraphNode.h
@@ -40,8 +40,16 @@
// Set this to 1 if using it inside the Android framework.
// This code is kept here so that it can be moved easily between Oboe and AAudio.
+#ifndef FLOWGRAPH_ANDROID_INTERNAL
#define FLOWGRAPH_ANDROID_INTERNAL 0
+#endif
+// Set this to a name that will prevent AAudio from calling into Oboe.
+#ifndef FLOWGRAPH_OUTER_NAMESPACE
+#define FLOWGRAPH_OUTER_NAMESPACE oboe
+#endif
+
+namespace FLOWGRAPH_OUTER_NAMESPACE {
namespace flowgraph {
// Default block size that can be overridden when the FlowGraphPortFloat is created.
@@ -429,5 +437,6 @@ public:
};
} /* namespace flowgraph */
+} /* namespace oboe */
#endif /* FLOWGRAPH_FLOW_GRAPH_NODE_H */
diff --git a/src/flowgraph/ManyToMultiConverter.cpp b/src/flowgraph/ManyToMultiConverter.cpp
index 879685e8..4f973bc3 100644
--- a/src/flowgraph/ManyToMultiConverter.cpp
+++ b/src/flowgraph/ManyToMultiConverter.cpp
@@ -18,7 +18,7 @@
#include "ManyToMultiConverter.h"
-using namespace flowgraph;
+using namespace FLOWGRAPH_OUTER_NAMESPACE::flowgraph;
ManyToMultiConverter::ManyToMultiConverter(int32_t channelCount)
: inputs(channelCount)
diff --git a/src/flowgraph/ManyToMultiConverter.h b/src/flowgraph/ManyToMultiConverter.h
index eca4a8ed..b4811bf5 100644
--- a/src/flowgraph/ManyToMultiConverter.h
+++ b/src/flowgraph/ManyToMultiConverter.h
@@ -23,6 +23,9 @@
#include "FlowGraphNode.h"
+namespace FLOWGRAPH_OUTER_NAMESPACE {
+namespace flowgraph {
+
/**
* Combine multiple mono inputs into one interleaved multi-channel output.
*/
@@ -46,4 +49,7 @@ public:
private:
};
+} /* namespace flowgraph */
+} /* namespace oboe */
+
#endif //FLOWGRAPH_MANY_TO_MULTI_CONVERTER_H
diff --git a/src/flowgraph/MonoToMultiConverter.cpp b/src/flowgraph/MonoToMultiConverter.cpp
index 803caec8..bb471a0f 100644
--- a/src/flowgraph/MonoToMultiConverter.cpp
+++ b/src/flowgraph/MonoToMultiConverter.cpp
@@ -18,7 +18,7 @@
#include "FlowGraphNode.h"
#include "MonoToMultiConverter.h"
-using namespace flowgraph;
+using namespace FLOWGRAPH_OUTER_NAMESPACE::flowgraph;
MonoToMultiConverter::MonoToMultiConverter(int32_t outputChannelCount)
: input(*this, 1)
diff --git a/src/flowgraph/MonoToMultiConverter.h b/src/flowgraph/MonoToMultiConverter.h
index 893d9cd0..4185b332 100644
--- a/src/flowgraph/MonoToMultiConverter.h
+++ b/src/flowgraph/MonoToMultiConverter.h
@@ -22,6 +22,7 @@
#include "FlowGraphNode.h"
+namespace FLOWGRAPH_OUTER_NAMESPACE {
namespace flowgraph {
/**
@@ -45,5 +46,6 @@ public:
};
} /* namespace flowgraph */
+} /* namespace oboe */
#endif //FLOWGRAPH_MONO_TO_MULTI_CONVERTER_H
diff --git a/src/flowgraph/MultiToMonoConverter.cpp b/src/flowgraph/MultiToMonoConverter.cpp
index 21f61246..8e895bf6 100644
--- a/src/flowgraph/MultiToMonoConverter.cpp
+++ b/src/flowgraph/MultiToMonoConverter.cpp
@@ -18,7 +18,7 @@
#include "FlowGraphNode.h"
#include "MultiToMonoConverter.h"
-using namespace flowgraph;
+using namespace FLOWGRAPH_OUTER_NAMESPACE::flowgraph;
MultiToMonoConverter::MultiToMonoConverter(int32_t inputChannelCount)
: input(*this, inputChannelCount)
diff --git a/src/flowgraph/MultiToMonoConverter.h b/src/flowgraph/MultiToMonoConverter.h
index 37c53bde..374558c1 100644
--- a/src/flowgraph/MultiToMonoConverter.h
+++ b/src/flowgraph/MultiToMonoConverter.h
@@ -22,6 +22,7 @@
#include "FlowGraphNode.h"
+namespace FLOWGRAPH_OUTER_NAMESPACE {
namespace flowgraph {
/**
@@ -45,5 +46,6 @@ namespace flowgraph {
};
} /* namespace flowgraph */
+} /* namespace oboe */
#endif //FLOWGRAPH_MULTI_TO_MONO_CONVERTER_H
diff --git a/src/flowgraph/RampLinear.cpp b/src/flowgraph/RampLinear.cpp
index afef0181..33b2712c 100644
--- a/src/flowgraph/RampLinear.cpp
+++ b/src/flowgraph/RampLinear.cpp
@@ -19,7 +19,7 @@
#include "FlowGraphNode.h"
#include "RampLinear.h"
-using namespace flowgraph;
+using namespace FLOWGRAPH_OUTER_NAMESPACE::flowgraph;
RampLinear::RampLinear(int32_t channelCount)
: FlowGraphFilter(channelCount) {
diff --git a/src/flowgraph/RampLinear.h b/src/flowgraph/RampLinear.h
index f285704c..cb52d21f 100644
--- a/src/flowgraph/RampLinear.h
+++ b/src/flowgraph/RampLinear.h
@@ -23,6 +23,7 @@
#include "FlowGraphNode.h"
+namespace FLOWGRAPH_OUTER_NAMESPACE {
namespace flowgraph {
/**
@@ -92,5 +93,6 @@ private:
};
} /* namespace flowgraph */
+} /* namespace oboe */
#endif //FLOWGRAPH_RAMP_LINEAR_H
diff --git a/src/flowgraph/SampleRateConverter.cpp b/src/flowgraph/SampleRateConverter.cpp
index 708c684f..0c92d7fd 100644
--- a/src/flowgraph/SampleRateConverter.cpp
+++ b/src/flowgraph/SampleRateConverter.cpp
@@ -16,7 +16,7 @@
#include "SampleRateConverter.h"
-using namespace flowgraph;
+using namespace FLOWGRAPH_OUTER_NAMESPACE::flowgraph;
using namespace resampler;
SampleRateConverter::SampleRateConverter(int32_t channelCount, MultiChannelResampler &resampler)
diff --git a/src/flowgraph/SampleRateConverter.h b/src/flowgraph/SampleRateConverter.h
index d940b22b..d54bcbf5 100644
--- a/src/flowgraph/SampleRateConverter.h
+++ b/src/flowgraph/SampleRateConverter.h
@@ -23,6 +23,7 @@
#include "FlowGraphNode.h"
#include "resampler/MultiChannelResampler.h"
+namespace FLOWGRAPH_OUTER_NAMESPACE {
namespace flowgraph {
class SampleRateConverter : public FlowGraphFilter {
@@ -52,5 +53,8 @@ private:
int64_t mInputFramePosition = 0; // monotonic counter of input frames used for pullData
};
+
} /* namespace flowgraph */
+} /* namespace oboe */
+
#endif //OBOE_SAMPLE_RATE_CONVERTER_H
diff --git a/src/flowgraph/SinkFloat.cpp b/src/flowgraph/SinkFloat.cpp
index 20c0ffa0..e0ac6e93 100644
--- a/src/flowgraph/SinkFloat.cpp
+++ b/src/flowgraph/SinkFloat.cpp
@@ -19,7 +19,7 @@
#include "FlowGraphNode.h"
#include "SinkFloat.h"
-using namespace flowgraph;
+using namespace FLOWGRAPH_OUTER_NAMESPACE::flowgraph;
SinkFloat::SinkFloat(int32_t channelCount)
: FlowGraphSink(channelCount) {
diff --git a/src/flowgraph/SinkFloat.h b/src/flowgraph/SinkFloat.h
index 418f6d7c..eaf679f5 100644
--- a/src/flowgraph/SinkFloat.h
+++ b/src/flowgraph/SinkFloat.h
@@ -23,6 +23,7 @@
#include "FlowGraphNode.h"
+namespace FLOWGRAPH_OUTER_NAMESPACE {
namespace flowgraph {
/**
@@ -40,5 +41,6 @@ public:
};
} /* namespace flowgraph */
+} /* namespace oboe */
#endif //FLOWGRAPH_SINK_FLOAT_H
diff --git a/src/flowgraph/SinkI16.cpp b/src/flowgraph/SinkI16.cpp
index da7fd6b7..690431ce 100644
--- a/src/flowgraph/SinkI16.cpp
+++ b/src/flowgraph/SinkI16.cpp
@@ -23,7 +23,7 @@
#include <audio_utils/primitives.h>
#endif
-using namespace flowgraph;
+using namespace FLOWGRAPH_OUTER_NAMESPACE::flowgraph;
SinkI16::SinkI16(int32_t channelCount)
: FlowGraphSink(channelCount) {}
diff --git a/src/flowgraph/SinkI16.h b/src/flowgraph/SinkI16.h
index 1e1ce3af..5e758d27 100644
--- a/src/flowgraph/SinkI16.h
+++ b/src/flowgraph/SinkI16.h
@@ -22,6 +22,7 @@
#include "FlowGraphNode.h"
+namespace FLOWGRAPH_OUTER_NAMESPACE {
namespace flowgraph {
/**
@@ -39,5 +40,6 @@ public:
};
} /* namespace flowgraph */
+} /* namespace oboe */
#endif //FLOWGRAPH_SINK_I16_H
diff --git a/src/flowgraph/SinkI24.cpp b/src/flowgraph/SinkI24.cpp
index a9fb5d22..d4f68b68 100644
--- a/src/flowgraph/SinkI24.cpp
+++ b/src/flowgraph/SinkI24.cpp
@@ -25,7 +25,7 @@
#include <audio_utils/primitives.h>
#endif
-using namespace flowgraph;
+using namespace FLOWGRAPH_OUTER_NAMESPACE::flowgraph;
SinkI24::SinkI24(int32_t channelCount)
: FlowGraphSink(channelCount) {}
diff --git a/src/flowgraph/SinkI24.h b/src/flowgraph/SinkI24.h
index 44078a96..32691780 100644
--- a/src/flowgraph/SinkI24.h
+++ b/src/flowgraph/SinkI24.h
@@ -22,6 +22,7 @@
#include "FlowGraphNode.h"
+namespace FLOWGRAPH_OUTER_NAMESPACE {
namespace flowgraph {
/**
@@ -40,5 +41,6 @@ public:
};
} /* namespace flowgraph */
+} /* namespace oboe */
#endif //FLOWGRAPH_SINK_I24_H
diff --git a/src/flowgraph/SourceFloat.cpp b/src/flowgraph/SourceFloat.cpp
index f574d842..3161ec18 100644
--- a/src/flowgraph/SourceFloat.cpp
+++ b/src/flowgraph/SourceFloat.cpp
@@ -20,7 +20,7 @@
#include "FlowGraphNode.h"
#include "SourceFloat.h"
-using namespace flowgraph;
+using namespace FLOWGRAPH_OUTER_NAMESPACE::flowgraph;
SourceFloat::SourceFloat(int32_t channelCount)
: FlowGraphSourceBuffered(channelCount) {
diff --git a/src/flowgraph/SourceFloat.h b/src/flowgraph/SourceFloat.h
index 4de1b41c..6cea67ef 100644
--- a/src/flowgraph/SourceFloat.h
+++ b/src/flowgraph/SourceFloat.h
@@ -22,6 +22,7 @@
#include "FlowGraphNode.h"
+namespace FLOWGRAPH_OUTER_NAMESPACE {
namespace flowgraph {
/**
@@ -39,5 +40,6 @@ public:
};
} /* namespace flowgraph */
+} /* namespace oboe */
#endif //FLOWGRAPH_SOURCE_FLOAT_H
diff --git a/src/flowgraph/SourceI16.cpp b/src/flowgraph/SourceI16.cpp
index 88130239..16cd2b3d 100644
--- a/src/flowgraph/SourceI16.cpp
+++ b/src/flowgraph/SourceI16.cpp
@@ -24,7 +24,7 @@
#include <audio_utils/primitives.h>
#endif
-using namespace flowgraph;
+using namespace FLOWGRAPH_OUTER_NAMESPACE::flowgraph;
SourceI16::SourceI16(int32_t channelCount)
: FlowGraphSourceBuffered(channelCount) {
diff --git a/src/flowgraph/SourceI16.h b/src/flowgraph/SourceI16.h
index fe440b20..c2cfb170 100644
--- a/src/flowgraph/SourceI16.h
+++ b/src/flowgraph/SourceI16.h
@@ -22,6 +22,7 @@
#include "FlowGraphNode.h"
+namespace FLOWGRAPH_OUTER_NAMESPACE {
namespace flowgraph {
/**
* AudioSource that reads a block of pre-defined 16-bit integer data.
@@ -38,5 +39,6 @@ public:
};
} /* namespace flowgraph */
+} /* namespace oboe */
#endif //FLOWGRAPH_SOURCE_I16_H
diff --git a/src/flowgraph/SourceI24.cpp b/src/flowgraph/SourceI24.cpp
index 19758787..321f732f 100644
--- a/src/flowgraph/SourceI24.cpp
+++ b/src/flowgraph/SourceI24.cpp
@@ -24,7 +24,7 @@
#include "FlowGraphNode.h"
#include "SourceI24.h"
-using namespace flowgraph;
+using namespace FLOWGRAPH_OUTER_NAMESPACE::flowgraph;
constexpr int kBytesPerI24Packed = 3;
diff --git a/src/flowgraph/SourceI24.h b/src/flowgraph/SourceI24.h
index 37795343..31a43057 100644
--- a/src/flowgraph/SourceI24.h
+++ b/src/flowgraph/SourceI24.h
@@ -22,6 +22,7 @@
#include "FlowGraphNode.h"
+namespace FLOWGRAPH_OUTER_NAMESPACE {
namespace flowgraph {
/**
@@ -39,5 +40,6 @@ public:
};
} /* namespace flowgraph */
+} /* namespace oboe */
#endif //FLOWGRAPH_SOURCE_I24_H