On Tue, Jun 14, 2011 at 12:32 AM, j-b-m <[email protected]> wrote:
> 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...

Basically, all frames must be closed to release the reference. I will
look for it soon.

-- 
+-DRD-+

------------------------------------------------------------------------------
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

Reply via email to