lib/ffmpeg/Filter: add ParseSingleInOut()
Merge some duplicate code.
This commit is contained in:
@@ -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
|
||||
|
@@ -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,
|
||||
|
Reference in New Issue
Block a user