Since the default in the libav fork is to only allow known layouts, making unknown layouts allowed by default here can be a security risk for filters directly merged from libav. However, usually it is simple to detect such cases, use of av_get_channel_layout_nb_channels is a good indicator, so I suggest we change this regardless. See http://ffmpeg.org/pipermail/ffmpeg-devel/2016-November/203204.html. This patch indirectly adds unknown channel layout support for filters where query_formats is not specified: abench afifo ainterleave anullsink apad aperms arealtime aselect asendcmd asetnsamples asetpts asettb ashowinfo azmq It introduces a query_formats callback for the asyncts filter, which only supports known channel layouts since it is using libavresample. And it removes .query_formats callback from filters where it was only there to support unknown layouts, as this is now the default: aloop ametadata anull asidedata asplit atrim
Showing the changes to libavfilter/split.c (1 of 9 files). Show all
Unified · Split
| @@ -144,7 +144,6 @@ AVFilter ff_af_asplit = { · 143 unmodified lines | |||
| 144 | .priv_class = &asplit_class, | 144 | .priv_class = &asplit_class, |
| 145 | .init = split_init, | 145 | .init = split_init, |
| 146 | .uninit = split_uninit, | 146 | .uninit = split_uninit, |
| 147 | .query_formats = ff_query_formats_all, | ||
| 148 | .inputs = avfilter_af_asplit_inputs, | 147 | .inputs = avfilter_af_asplit_inputs, |
| 149 | .outputs = NULL, | 148 | .outputs = NULL, |
| 150 | .flags = AVFILTER_FLAG_DYNAMIC_OUTPUTS, | 149 | .flags = AVFILTER_FLAG_DYNAMIC_OUTPUTS, |