diff options
author | Max Kellermann <max@musicpd.org> | 2019-03-25 08:11:07 +0100 |
---|---|---|
committer | Max Kellermann <max@musicpd.org> | 2019-03-25 08:11:07 +0100 |
commit | ca4e53859d59b05f10db67ddc790c019797eefa9 (patch) | |
tree | 8160f8f39682c824ee223dc53245b303164d9788 /src/filter | |
parent | 61120d205921cf52ef2e44753f4c8786086b0fbe (diff) | |
parent | 8b327f1d9bb5649df69f9547e38bcdcbfd416de1 (diff) |
Merge branch 'v0.21.x'
Diffstat (limited to 'src/filter')
-rw-r--r-- | src/filter/Filter.hxx | 2 | ||||
-rw-r--r-- | src/filter/plugins/AutoConvertFilterPlugin.cxx | 13 |
2 files changed, 14 insertions, 1 deletions
diff --git a/src/filter/Filter.hxx b/src/filter/Filter.hxx index 6864cec1a..ba68c9266 100644 --- a/src/filter/Filter.hxx +++ b/src/filter/Filter.hxx @@ -65,7 +65,7 @@ public: /** * Flush pending data and return it. This should be called - * repepatedly until it returns nullptr. + * repeatedly until it returns nullptr. */ virtual ConstBuffer<void> Flush(); }; diff --git a/src/filter/plugins/AutoConvertFilterPlugin.cxx b/src/filter/plugins/AutoConvertFilterPlugin.cxx index a55081744..239814a9f 100644 --- a/src/filter/plugins/AutoConvertFilterPlugin.cxx +++ b/src/filter/plugins/AutoConvertFilterPlugin.cxx @@ -55,6 +55,7 @@ public: } ConstBuffer<void> FilterPCM(ConstBuffer<void> src) override; + ConstBuffer<void> Flush() override; }; class PreparedAutoConvertFilter final : public PreparedFilter { @@ -103,6 +104,18 @@ AutoConvertFilter::FilterPCM(ConstBuffer<void> src) return filter->FilterPCM(src); } +ConstBuffer<void> +AutoConvertFilter::Flush() +{ + if (convert != nullptr) { + auto result = convert->Flush(); + if (!result.IsNull()) + return filter->FilterPCM(result); + } + + return filter->Flush(); +} + std::unique_ptr<PreparedFilter> autoconvert_filter_new(std::unique_ptr<PreparedFilter> filter) noexcept { |