@ -28,6 +28,7 @@
# include "libavutil/avstring.h"
# include "libavutil/bprint.h"
# include "libavutil/channel_layout.h"
# include "libavutil/imgutils.h"
# include "libavutil/internal.h"
# include "libavutil/opt.h"
# include "libavutil/pixdesc.h"
@ -263,6 +264,27 @@ static int graph_config_links(AVFilterGraph *graph, AVClass *log_ctx)
return 0 ;
}
static int graph_check_links ( AVFilterGraph * graph , AVClass * log_ctx )
{
AVFilterContext * f ;
AVFilterLink * l ;
unsigned i , j ;
int ret ;
for ( i = 0 ; i < graph - > nb_filters ; i + + ) {
f = graph - > filters [ i ] ;
for ( j = 0 ; j < f - > nb_outputs ; j + + ) {
l = f - > outputs [ j ] ;
if ( l - > type = = AVMEDIA_TYPE_VIDEO ) {
ret = av_image_check_size2 ( l - > w , l - > h , INT64_MAX , l - > format , 0 , f ) ;
if ( ret < 0 )
return ret ;
}
}
}
return 0 ;
}
AVFilterContext * avfilter_graph_get_filter ( AVFilterGraph * graph , const char * name )
{
int i ;
@ -1256,6 +1278,8 @@ int avfilter_graph_config(AVFilterGraph *graphctx, void *log_ctx)
return ret ;
if ( ( ret = graph_config_links ( graphctx , log_ctx ) ) )
return ret ;
if ( ( ret = graph_check_links ( graphctx , log_ctx ) ) )
return ret ;
if ( ( ret = graph_config_pointers ( graphctx , log_ctx ) ) )
return ret ;