lib/ffmpeg/Filter: add ParseSingleInOut()

Merge some duplicate code.
This commit is contained in:
Max Kellermann
2021-08-24 13:26:28 +02:00
parent 71a5311b06
commit 7b4225aa1f
4 changed files with 18 additions and 23 deletions

View File

@@ -100,4 +100,17 @@ MakeAudioBufferSink(AVFilterGraph &graph_ctx)
graph_ctx);
}
void
FilterGraph::ParseSingleInOut(const char *filters, AVFilterContext &in,
AVFilterContext &out)
{
auto [inputs, outputs] = Parse(filters, {"out", in}, {"in", out});
if (inputs.get() != nullptr)
throw std::runtime_error("FFmpeg filter has an open input");
if (outputs.get() != nullptr)
throw std::runtime_error("FFmpeg filter has an open output");
}
} // namespace Ffmpeg

View File

@@ -138,6 +138,9 @@ public:
return std::make_pair(std::move(inputs), std::move(outputs));
}
void ParseSingleInOut(const char *filters, AVFilterContext &in,
AVFilterContext &out);
std::pair<FilterInOut, FilterInOut> Parse(const char *filters) {
AVFilterInOut *inputs, *outputs;
int err = avfilter_graph_parse2(graph, filters,