mltframework/mlt

There may be an error when disconnecting a filter service from the field

wangguangyue opened this issue · 1 comments

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

image

Might be worth updating the PR with more relevant info since it's very generic in its description.