Hi,
When a field connect to the filter, it's with a track index value.
|
int mlt_field_plant_filter(mlt_field self, mlt_filter that, int track) |
In this function, the producer member of the field will be replace by this filter, and the old producer member will connect to the filter as input producer at the track index.
But when disconnecting a filter service from the field by fellow function,
|
void mlt_field_disconnect_service(mlt_field self, mlt_service service) |
The corresponding old producer is not correctly obtained through the track index of this filter. Cause function mlt_service_producer returns the last one, not the one specified by track index

Hi,
When a field connect to the filter, it's with a track index value.
mlt/src/framework/mlt_field.c
Line 169 in bddc2c3
In this function, the producer member of the field will be replace by this filter, and the old producer member will connect to the filter as input producer at the track index.
But when disconnecting a filter service from the field by fellow function,
mlt/src/framework/mlt_field.c
Line 241 in bddc2c3
The corresponding old producer is not correctly obtained through the track index of this filter. Cause function
mlt_service_producerreturns the last one, not the one specified by track index