@@ -996,6 +996,7 @@ static int setup_hwaccel_filters(producer_avformat self,
996996 if (!self -> vfilter_in ) {
997997 mlt_log_error (MLT_PRODUCER_SERVICE (producer ), "Failed to allocate buffer source\n" );
998998 avfilter_graph_free (& self -> vfilter_graph );
999+ self -> vfilter_in = NULL ;
9991000 return -1 ;
10001001 }
10011002
@@ -1030,6 +1031,7 @@ static int setup_hwaccel_filters(producer_avformat self,
10301031 "Failed to set buffer source options: %d\n" ,
10311032 ret );
10321033 avfilter_graph_free (& self -> vfilter_graph );
1034+ self -> vfilter_in = NULL ;
10331035 return ret ;
10341036 }
10351037
@@ -1038,6 +1040,7 @@ static int setup_hwaccel_filters(producer_avformat self,
10381040 if (!params ) {
10391041 mlt_log_error (MLT_PRODUCER_SERVICE (producer ), "Failed to allocate buffer src params\n" );
10401042 avfilter_graph_free (& self -> vfilter_graph );
1043+ self -> vfilter_in = NULL ;
10411044 return -1 ;
10421045 }
10431046
@@ -1048,6 +1051,7 @@ static int setup_hwaccel_filters(producer_avformat self,
10481051 if (ret < 0 ) {
10491052 mlt_log_error (MLT_PRODUCER_SERVICE (producer ), "Failed to set hw_frames_ctx: %d\n" , ret );
10501053 avfilter_graph_free (& self -> vfilter_graph );
1054+ self -> vfilter_in = NULL ;
10511055 return ret ;
10521056 }
10531057
@@ -1058,6 +1062,7 @@ static int setup_hwaccel_filters(producer_avformat self,
10581062 "Failed to initialize buffer source: %d\n" ,
10591063 ret );
10601064 avfilter_graph_free (& self -> vfilter_graph );
1065+ self -> vfilter_in = NULL ;
10611066 return ret ;
10621067 }
10631068
@@ -1066,6 +1071,7 @@ static int setup_hwaccel_filters(producer_avformat self,
10661071 if (!scale_filter ) {
10671072 mlt_log_error (MLT_PRODUCER_SERVICE (producer ), "%s filter not available\n" , filter_name );
10681073 avfilter_graph_free (& self -> vfilter_graph );
1074+ self -> vfilter_in = NULL ;
10691075 return -1 ;
10701076 }
10711077
@@ -1082,6 +1088,7 @@ static int setup_hwaccel_filters(producer_avformat self,
10821088 filter_name ,
10831089 ret );
10841090 avfilter_graph_free (& self -> vfilter_graph );
1091+ self -> vfilter_in = NULL ;
10851092 return ret ;
10861093 }
10871094
@@ -1098,6 +1105,8 @@ static int setup_hwaccel_filters(producer_avformat self,
10981105 "Failed to create buffer sink filter: %d\n" ,
10991106 ret );
11001107 avfilter_graph_free (& self -> vfilter_graph );
1108+ self -> vfilter_in = NULL ;
1109+ self -> vfilter_out = NULL ;
11011110 return ret ;
11021111 }
11031112
@@ -1106,6 +1115,8 @@ static int setup_hwaccel_filters(producer_avformat self,
11061115 if (ret < 0 ) {
11071116 mlt_log_error (MLT_PRODUCER_SERVICE (producer ), "Failed to link buffer to scale: %d\n" , ret );
11081117 avfilter_graph_free (& self -> vfilter_graph );
1118+ self -> vfilter_in = NULL ;
1119+ self -> vfilter_out = NULL ;
11091120 return ret ;
11101121 }
11111122
@@ -1115,6 +1126,8 @@ static int setup_hwaccel_filters(producer_avformat self,
11151126 "Failed to link scale to buffersink: %d\n" ,
11161127 ret );
11171128 avfilter_graph_free (& self -> vfilter_graph );
1129+ self -> vfilter_in = NULL ;
1130+ self -> vfilter_out = NULL ;
11181131 return ret ;
11191132 }
11201133
@@ -1123,6 +1136,8 @@ static int setup_hwaccel_filters(producer_avformat self,
11231136 if (ret < 0 ) {
11241137 mlt_log_error (MLT_PRODUCER_SERVICE (producer ), "Failed to configure filter graph: %d\n" , ret );
11251138 avfilter_graph_free (& self -> vfilter_graph );
1139+ self -> vfilter_in = NULL ;
1140+ self -> vfilter_out = NULL ;
11261141 return ret ;
11271142 }
11281143
@@ -1272,6 +1287,7 @@ static int setup_filters(producer_avformat self)
12721287 if (self -> vfilter_graph && theta != self -> rotation ) {
12731288 // The rotation has changed. Force the filter graph to be rebuilt
12741289 avfilter_graph_free (& self -> vfilter_graph );
1290+ self -> vfilter_in = NULL ;
12751291 self -> vfilter_out = NULL ;
12761292 self -> rotation = theta ;
12771293 }
@@ -1333,6 +1349,8 @@ static int setup_filters(producer_avformat self)
13331349 }
13341350 if (error && self -> vfilter_graph ) {
13351351 avfilter_graph_free (& self -> vfilter_graph );
1352+ self -> vfilter_in = NULL ;
1353+ self -> vfilter_out = NULL ;
13361354 }
13371355 return error ;
13381356}
@@ -1938,6 +1956,7 @@ static void property_changed(mlt_service owner, producer_avformat self, char *na
19381956 if (self -> video_index != -1 ) {
19391957 mlt_service_lock (MLT_PRODUCER_SERVICE (self -> parent ));
19401958 avfilter_graph_free (& self -> vfilter_graph );
1959+ self -> vfilter_in = NULL ;
19411960 self -> vfilter_out = NULL ;
19421961 self -> rotation = 0.0 ;
19431962 setup_filters (self );
0 commit comments