[vlc-devel] commit: Implement access_GetParentInput and demux_GetParentInput and use. ( Pierre d'Herbemont )
xxcv07 at gmail.com
Thu Aug 27 03:10:55 CEST 2009
> With the subtitles from the video here is what I get:
> Assertion failed: (internals->i_children == 0), function
> __vlc_object_release, file ../../src/misc/objects.c, line 627. (in
> input destruction)
That is what I got with no interface.
With qt4 interface it assert() right here src/misc/objects.c
/* Any thread must have been cleaned up at this point. */
assert( !p_priv->b_thread );
> After reverting the two commits about access_GetParentInput and
> demux_GetParentInput, and rebuilding from make clean, the problem is
> still here so this seems not related after all.
That's weird after 2 reverts here then make clean remaked it then all is
fine again.. So we're not getting the same results as I would have
expected but since you're running on Mac and I'm on Windows.
> Some investigation shows that "access", "demux", "aout", "vout" that
> are still attached to the input. There seems to be some kind of race
> conditions as it doesn't reproduce at 100%.
Hmm... Here it always happens.
Process Explorer: one of the threads that triggered the assert() vai the
quit signal from qt4 intf;
I suppose that the core isn't counting the number of objects that are
running or not running properly or there's a memory leak some where.
> First, demux and access don't properly implement refcounting. If
> someone is holding a reference to it, its data might get destroyed,
> and lead to crash for free. (They should implement a destructor or set
> at list its destroyed instance variable to NULL).
The problem I see it here is that access file (the .srt file) gets
removed and boom! it triggers the assert or even earlier if user choose,
disable subtitle track first, it wouldn't trigger the assert then it'll
crash the hard way.
> Then, aout and vout are not properly detached. That means that if
> someone hold a vout, an input might end up in having a vout still
Why does this only get triggered after these 2 commits ?!
More information about the vlc-devel