diff mbox series

[FFmpeg-devel,05/31] fftools/ffmpeg_filter: check that filter type matches output stream type

Message ID 20240405161212.26167-5-anton@khirnov.net
State Accepted
Commit 651c79da362b4a9f618458ddd08b92504ffb3b6d
Headers show
Series [FFmpeg-devel,01/31] lavfi/vf_scale: fix AVOption flags for "size"/"s" | expand

Checks

Context Check Description
andriy/make_x86 success Make finished
andriy/make_fate_x86 success Make fate finished

Commit Message

Anton Khirnov April 5, 2024, 4:11 p.m. UTC
For simple filtergraphs. For complex filtergraphs they always match.
---
 fftools/ffmpeg_filter.c | 8 ++++++++
 1 file changed, 8 insertions(+)
diff mbox series

Patch

diff --git a/fftools/ffmpeg_filter.c b/fftools/ffmpeg_filter.c
index 0d359303f7..a59c61b312 100644
--- a/fftools/ffmpeg_filter.c
+++ b/fftools/ffmpeg_filter.c
@@ -773,6 +773,7 @@  int ofilter_bind_ost(OutputFilter *ofilter, OutputStream *ost,
     int ret;
 
     av_assert0(!ofilter->ost);
+    av_assert0(ofilter->type == ost->type);
 
     ofilter->ost = ost;
     av_freep(&ofilter->linklabel);
@@ -1106,6 +1107,13 @@  int init_simple_filtergraph(InputStream *ist, OutputStream *ost,
                graph_desc, fg->nb_inputs, fg->nb_outputs);
         return AVERROR(EINVAL);
     }
+    if (fg->outputs[0]->type != ost->type) {
+        av_log(fg, AV_LOG_ERROR, "Filtergraph has a %s output, cannot connect "
+               "it to %s output stream\n",
+               av_get_media_type_string(fg->outputs[0]->type),
+               av_get_media_type_string(ost->type));
+        return AVERROR(EINVAL);
+    }
 
     ost->filter = fg->outputs[0];