Commit 56b74ad9 authored by Max Kellermann's avatar Max Kellermann

filter/convert: add method IsActive()

parent 6de92bb4
...@@ -57,6 +57,11 @@ public: ...@@ -57,6 +57,11 @@ public:
} }
ConstBuffer<void> FilterPCM(ConstBuffer<void> src) override; ConstBuffer<void> FilterPCM(ConstBuffer<void> src) override;
private:
bool IsActive() const noexcept {
return out_audio_format != in_audio_format;
}
}; };
class PreparedConvertFilter final : public PreparedFilter { class PreparedConvertFilter final : public PreparedFilter {
...@@ -80,7 +85,7 @@ ConvertFilter::Set(const AudioFormat &_out_audio_format) ...@@ -80,7 +85,7 @@ ConvertFilter::Set(const AudioFormat &_out_audio_format)
/* no change */ /* no change */
return; return;
if (out_audio_format != in_audio_format) { if (IsActive()) {
out_audio_format = in_audio_format; out_audio_format = in_audio_format;
state.Close(); state.Close();
} }
...@@ -111,7 +116,7 @@ ConvertFilter::~ConvertFilter() ...@@ -111,7 +116,7 @@ ConvertFilter::~ConvertFilter()
{ {
assert(in_audio_format.IsValid()); assert(in_audio_format.IsValid());
if (out_audio_format != in_audio_format) if (IsActive())
state.Close(); state.Close();
} }
...@@ -120,11 +125,10 @@ ConvertFilter::FilterPCM(ConstBuffer<void> src) ...@@ -120,11 +125,10 @@ ConvertFilter::FilterPCM(ConstBuffer<void> src)
{ {
assert(in_audio_format.IsValid()); assert(in_audio_format.IsValid());
if (out_audio_format == in_audio_format) return IsActive()
? state.Convert(src)
/* optimized special case: no-op */ /* optimized special case: no-op */
return src; : src;
return state.Convert(src);
} }
const FilterPlugin convert_filter_plugin = { const FilterPlugin convert_filter_plugin = {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment