filter/convert: add method IsActive()
This commit is contained in:
parent
6de92bb42b
commit
56b74ad990
@ -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)
|
|||||||
/* 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()
|
|||||||
{
|
{
|
||||||
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)
|
|||||||
{
|
{
|
||||||
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 = {
|
||||||
|
Loading…
Reference in New Issue
Block a user