[vlc-devel] commit: Implement access_GetParentInput and demux_GetParentInput and use. ( Pierre d'Herbemont )
pdherbemont at gmail.com
Wed Aug 26 16:42:01 CEST 2009
On Aug 26, 2009, at 3:21 PM, Pierre d'Herbemont wrote:
> On Aug 26, 2009, at 12:10 PM, xxcv wrote:
>> Pierre d'Herbemont wrote:
>>> Hi xxcv,
>>> This bug report is missing some important and precise info:
>>> Does reverting this commit fixes the issue?
>>> Do you have a backtrace of the crash?
>>> Could you precisely state the steps to reproduce, in numbered order?
>> Alright here we go,
>> 1. Download "Matrix.Reloaded.Trailer-640x346-XviD-1.0beta1-
>> HE_AAC_subtitled.mkv" from somewhere on the v.o FTP, or on the
>> 2. Save the attached file "Matrix.Reloaded.Trailer-640x346-
>> XviD-1.0beta1-HE_AAC_subtitled.srt" and copy it in the same
>> directory of the above video file so vlc is gonna load it.
>> 3. Play the video and the external subtitle file you just saved
>> should be loaded.
>> 4. Ctrl+q or whatever it is needed to quit.
> Thanks! (There is no subtitle file though)
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
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.
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%.
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).
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
0 libSystem.B.dylib 0x90766136
__semwait_signal_nocancel + 10
1 libSystem.B.dylib 0x9075f013 usleep$NOCANCEL$UNIX2003
2 libSystem.B.dylib 0x90776685 abort + 85
3 libSystem.B.dylib 0x9076b3db __assert_rtn + 101
4 libvlccore.4.dylib 0x001930ec __vlc_object_release +
5 libvlccore.4.dylib 0x00149168
input_resource_RequestAout + 168 (resource.c:349)
6 libvlccore.4.dylib 0x0012e3d9 DeleteDecoder + 233
7 libvlccore.4.dylib 0x0012ee29 input_DecoderDelete +
More information about the vlc-devel