On Sunday 22 May 2011 18:39:08 j-b-m wrote: > Creating a video4linux producer like (simplified code): > > producer = new Mlt::Producer(*profile, "video4linux2:/dev/video0"); > consumer->connect(*producer); > consumer->start(); > > It works fine. But when I want to stop the capture, there is no way to stop > the video4linux producer. Deleting the producer and the consumer still > leaves the video4linux device open. > > After a few hours of struggling, I figured out that some stuff was kept in > the cache. Adding : > > mlt_service_cache_purge( MLT_PRODUCER_SERVICE(parent) );
This issue came back in a different way since the refactoring of producer_open, in this commit: http://mltframework.org/gitweb/mlt.git?p=mltframework.org/mlt.git;a=commit;h=a0c82f0eb433e5b756e8239ebb684abc81b796d9 When connecting the producer to an sdl_preview consumer, it works fine, deleting the producer and consumer closes the video4linux device. However, when connecting the producer to an avformat consumer, deleting producer and consumer leaves the device open, "producer_avformat_close" is never called. Something must remain in cache or is not deleted. The only way to close the video4linux device is to close MLT's factory. So Dan, if you have an idea about what happens here, I am listening because I couldn't find the exact problem... regards jb ------------------------------------------------------------------------------ EditLive Enterprise is the world's most technically advanced content authoring tool. Experience the power of Track Changes, Inline Image Editing and ensure content is compliant with Accessibility Checking. http://p.sf.net/sfu/ephox-dev2dev _______________________________________________ Mlt-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/mlt-devel
