...so it seems that the problem is in JPEG files with portrait
orientation. These steps should reproduce the crash:

1. Create a new project 640x360 @24fps.
2. Insert JPEG file with dimensions 640x426 to the timeline (mine was 1s long)
3. After that image, insert another JPEG file with portrait
orientation: 426x640 (also 1s long)
4. Play the project form the start.
5. When the time cursor hits the second picture, Cinelerra crashes.

When I ran it with valgrind, an invalid write was detected:

==31909== Invalid write of size 1
==31909==    at 0x4071B60: cmodel_yuv444p (cmodel_yuv420p.c:338)
==31909==    by 0x4096BC0: cmodel_transfer (colormodels.c:434)
==31909==    by 0x409D508: mjpeg_decompress (libmjpeg.c:1211)
==31909==    by 0x81CE661: FileJPEG::read_frame(VFrame*, VFrame*)
(filejpeg.C:249)
==31909==    by 0x81D0186: FileList::read_frame(VFrame*) (filelist.C:349)
==31909==    by 0x81BAC03: File::read_frame(VFrame*, int) (file.C:1132)
==31909==    by 0x81E6FD8: FileThread::run() (filethread.C:210)
==31909==    by 0x41DB8F2: Thread::entrypoint(void*) (thread.C:69)
==31909==    by 0x4D6C96D: start_thread (pthread_create.c:300)
==31909==    by 0x4F89A4D: clone (clone.S:130)
==31909==  Address 0x7c84de74 is 0 bytes after a block of size 408,964 alloc'd
==31909==    at 0x402532E: operator new[](unsigned int)
(vg_replace_malloc.c:299)
==31909==    by 0x41DEFC1: VFrame::allocate_data(unsigned char*, long,
long, long, int, int, int, long) (vframe.C:363)
==31909==    by 0x41DFBC7: VFrame::VFrame(unsigned char*, int, int,
int, long) (vframe.C:86)
==31909==    by 0x81D016A: FileList::read_frame(VFrame*) (filelist.C:348)
==31909==    by 0x81BAC03: File::read_frame(VFrame*, int) (file.C:1132)
==31909==    by 0x81E6FD8: FileThread::run() (filethread.C:210)
==31909==    by 0x41DB8F2: Thread::entrypoint(void*) (thread.C:69)
==31909==    by 0x4D6C96D: start_thread (pthread_create.c:300)
==31909==    by 0x4F89A4D: clone (clone.S:130)
==31909==
--31909-- VALGRIND INTERNAL ERROR: Valgrind received a signal 11
(SIGSEGV) - exiting

Michal

On 8 October 2011 13:35, Michal Fapso <[email protected]> wrote:
> ...and when I remove a clip from timeline:
>
> -----------------------------------------------------
> Program received signal SIGABRT, Aborted.
> [Switching to Thread 0xa7df8b70 (LWP 21764)]
> 0xb7fe2430 in __kernel_vsyscall ()
> (gdb) bt
> #0  0xb7fe2430 in __kernel_vsyscall ()
> #1  0xb701f651 in *__GI_raise (sig=6) at
> ../nptl/sysdeps/unix/sysv/linux/raise.c:64
> #2  0xb7022a82 in *__GI_abort () at abort.c:92
> #3  0xb705649d in __libc_message (do_abort=2, fmt=0xb712af98 "***
> glibc detected *** %s: %s: 0x%s ***\n") at
> ../sysdeps/unix/sysv/linux/libc_fatal.c:189
> #4  0xb7060591 in malloc_printerr (action=<value optimized out>,
> str=0x6 <Address 0x6 out of bounds>, ptr=0x99bb8ce8) at malloc.c:6266
> #5  0xb7061de8 in _int_free (av=<value optimized out>, p=<value
> optimized out>) at malloc.c:4794
> #6  0xb7064ecd in *__GI___libc_free (mem=0x99bb8ce8) at malloc.c:3738
> #7  0xb724f741 in operator delete(void*) () from /usr/lib/libstdc++.so.6
> #8  0x081f683a in Garbage::remove_expired () at garbage.C:110
> #9  0x081f6ba3 in GarbageObject::remove_user (this=0x9dadce68) at garbage.C:60
> #10 0x082b9678 in ~VResourceThreadItem (this=0x9d8f6618,
> __in_chrg=<value optimized out>) at resourcethread.C:90
> #11 0x082b8f36 in ResourceThread::run (this=0xab6b6d10) at 
> resourcethread.C:289
> #12 0xb7e8a8f3 in Thread::entrypoint (parameters=0xab6b6d10) at thread.C:69
> #13 0xb728f96e in start_thread (arg=0xa7df8b70) at pthread_create.c:300
> #14 0xb70c2a4e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130
> -----------------------------------------------------
>
> I am sorry for sending so many messages to this mailing list, but I
> hope that they might tell you more than to me.
> Michal
>
> On 8 October 2011 13:10, Michal Fapso <[email protected]> wrote:
>> ...similar crash happens in VRender:
>>
>> ----------------------------------------------------------
>> Program received signal SIGABRT, Aborted.
>> [Switching to Thread 0x505fab70 (LWP 21226)]
>> 0xb7fe2430 in __kernel_vsyscall ()
>> (gdb) bt
>> #0  0xb7fe2430 in __kernel_vsyscall ()
>> #1  0xb701f651 in *__GI_raise (sig=6) at
>> ../nptl/sysdeps/unix/sysv/linux/raise.c:64
>> #2  0xb7022a82 in *__GI_abort () at abort.c:92
>> #3  0xb705649d in __libc_message (do_abort=2, fmt=0xb712af98 "***
>> glibc detected *** %s: %s: 0x%s ***\n") at
>> ../sysdeps/unix/sysv/linux/libc_fatal.c:189
>> #4  0xb7060591 in malloc_printerr (action=<value optimized out>,
>> str=0x6 <Address 0x6 out of bounds>, ptr=0x73504030) at malloc.c:6266
>> #5  0xb7061de8 in _int_free (av=<value optimized out>, p=<value
>> optimized out>) at malloc.c:4794
>> #6  0xb7064ecd in *__GI___libc_free (mem=0x73504030) at malloc.c:3738
>> #7  0xb724f741 in operator delete(void*) () from /usr/lib/libstdc++.so.6
>> #8  0x081f683a in Garbage::remove_expired () at garbage.C:110
>> #9  0x081f6ba3 in GarbageObject::remove_user (this=0x8dde0270) at 
>> garbage.C:60
>> #10 0x0815f7bf in CICache::check_in (this=0x66cf05e0,
>> asset=0xb3f75598) at cache.C:145
>> #11 0x082e9ee8 in VEdit::read_frame (this=0x5fee4940,
>> video_out=0xad3d3e0, input_position=14399, direction=0,
>> cache=0x66cf05e0, use_nudge=1, use_cache=0, use_asynchronous=1)
>>    at vedit.C:92
>> #12 0x082f4c32 in VRender::process_buffer (this=0x79292f28,
>> input_position=14399) at vrender.C:192
>> #13 0x082f5059 in VRender::run (this=0x79292f28) at vrender.C:436
>> #14 0xb7e8a8f3 in Thread::entrypoint (parameters=0x79292f28) at thread.C:69
>> #15 0xb728f96e in start_thread (arg=0x505fab70) at pthread_create.c:300
>> #16 0xb70c2a4e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130
>> ----------------------------------------------------------
>>
>> Where could I find some info about Cinelerra's architecture (caching,
>> garbage collector, ...)? Only in the source code?
>>
>> Thanks,
>> Michal
>>
>> On 8 October 2011 11:58, Michal Fapso <[email protected]> wrote:
>>> Thanks Einar,
>>>
>>> I tried to modify my project's xml to fit the
>>> cinelerraCV-construction_site version. In <ASSETS>...<VIDEO
>>> ...[here]...> were missing HEIGHT=... and WIDTH=... values. After I
>>> added them, the project loaded well also in the construction_site
>>> version.
>>>
>>> However, that version crashes as well:
>>>
>>> ------------------------------------------------------
>>> Program received signal SIGABRT, Aborted.
>>> [Switching to Thread 0x58bacb70 (LWP 6159)]
>>> 0xb7fe2430 in __kernel_vsyscall ()
>>> (gdb) bt
>>> #0  0xb7fe2430 in __kernel_vsyscall ()
>>> #1  0xb701f651 in *__GI_raise (sig=6) at
>>> ../nptl/sysdeps/unix/sysv/linux/raise.c:64
>>> #2  0xb7022a82 in *__GI_abort () at abort.c:92
>>> #3  0xb705649d in __libc_message (do_abort=2, fmt=0xb712af98 "***
>>> glibc detected *** %s: %s: 0x%s ***\n") at
>>> ../sysdeps/unix/sysv/linux/libc_fatal.c:189
>>> #4  0xb7060591 in malloc_printerr (action=<value optimized out>,
>>> str=0x6 <Address 0x6 out of bounds>, ptr=0x5c06a088) at malloc.c:6266
>>> #5  0xb7061de8 in _int_free (av=<value optimized out>, p=<value
>>> optimized out>) at malloc.c:4794
>>> #6  0xb7064ecd in *__GI___libc_free (mem=0x5c06a088) at malloc.c:3738
>>> #7  0xb724f741 in operator delete(void*) () from /usr/lib/libstdc++.so.6
>>> #8  0x081f85ba in Garbage::remove_expired () at garbage.C:110
>>> #9  0x081f8923 in GarbageObject::remove_user (this=0x9b8b3c8) at 
>>> garbage.C:60
>>> #10 0x08160b4f in CICache::check_in (this=0x9b82db78,
>>> asset=0x5ea7a7f8) at cache.C:145
>>> #11 0x08136b16 in AModule::render (this=0x6493dc88, buffer=0x9b4e278,
>>> input_position=3002016, input_len=2048, direction=0,
>>> sample_rate=48000, use_nudge=0) at amodule.C:260
>>> #12 0x082f3d45 in VirtualANode::read_data (this=0x6493e158,
>>> output_temp=0x9b4e278, start_position=3002016, len=2048,
>>> sample_rate=48000) at virtualanode.C:161
>>> #13 0x082f432e in VirtualANode::render_as_module (this=0x6493e158,
>>> audio_out=0x64939928, output_temp=0x9b4e278, start_position=3002016,
>>> len=2048, sample_rate=48000)
>>>    at virtualanode.C:238
>>> #14 0x082f448a in VirtualANode::render (this=0x0,
>>> output_temp=0x9b4e278, start_position=3002016, len=2048,
>>> sample_rate=48000) at virtualanode.C:178
>>> #15 0x082f2a75 in VirtualAConsole::process_buffer (this=0x6493dee8,
>>> len=2048, start_position=3002016, last_buffer=0,
>>> absolute_position=3002016) at virtualaconsole.C:134
>>> #16 0x08139484 in ARender::process_buffer (this=0x649398c8,
>>> input_len=2048, input_position=3002016) at arender.C:232
>>> #17 0x08139324 in ARender::run (this=0x649398c8) at arender.C:325
>>> #18 0xb7e898f3 in Thread::entrypoint (parameters=0x649398c8) at thread.C:69
>>> #19 0xb728f96e in start_thread (arg=0x58bacb70) at pthread_create.c:300
>>> #20 0xb70c2a4e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130
>>> ------------------------------------------------------
>>>
>>> I was just playing my project and suddendly it crashed. Could you give
>>> me any hints where should I look to find the problem? ARender is
>>> responsible for audio only?
>>>
>>> thanks,
>>> Michal
>>>
>>> On 7 October 2011 17:21, Einar Rünkaru <[email protected]> wrote:
>>>> Hi.
>>>>
>>>> On Fri, Oct 7, 2011 at 4:02 PM, Michal Fapso <[email protected]> 
>>>> wrote:
>>>>> Thanks for your quick reply, Einar. I am now using some older snapshot
>>>>> of your repository where JPEG images work fine. When I load my
>>>>> Cinelerra project created in your older snapshot version into the
>>>>> official CinelerraCV.git version, I get this error:
>>>>>
>>>>> -----------------------------------------------------------
>>>>> Program received signal SIGFPE, Arithmetic exception.
>>>>> [Switching to Thread 0xa6798b70 (LWP 4448)]
>>>>> 0x0815302e in AssetPicon::create_objects (this=0x8a28e90) at 
>>>>> awindowgui.C:170
>>>>> 170                                             pixmap_w = pixmap_h * 
>>>>> asset->width / asset->height;
>>>>> (gdb) bt
>>>>> #0  0x0815302e in AssetPicon::create_objects (this=0x8a28e90) at
>>>>> awindowgui.C:170
>>>>> #1  0x08153f0a in AWindowGUI::update_asset_list (this=0x8a2a830) at
>>>>> awindowgui.C:823
>>>>> #2  0x081542eb in AWindowGUI::update_assets (this=0x8a2a830) at
>>>>> awindowgui.C:1023
>>>>> #3  0x08154628 in AWindowGUI::recieve_custom_xatoms (this=0x0,
>>>>> event=0x9b3784d8) at awindowgui.C:624
>>>>> #4  0xb7e780a4 in BC_WindowBase::dispatch_event (this=0x8a2a830) at
>>>>> bcwindowbase.C:748
>>>>> #5  0xb7e78550 in BC_WindowBase::run_window (this=0x8a2a830) at
>>>>> bcwindowbase.C:635
>>>>> #6  0xb7e8a8f3 in Thread::entrypoint (parameters=0x8a2a3f0) at thread.C:69
>>>>> #7  0xb728f96e in start_thread (arg=0xa6798b70) at pthread_create.c:300
>>>>> #8  0xb70c2a4e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130
>>>>> (gdb) p asset->height
>>>>> $1 = 0
>>>>> (gdb) p asset->width
>>>>> $2 = 0
>>>>> (gdb) p asset
>>>>> $3 = (class Asset *) 0x9ba51fc0
>>>>> (gdb) p *asset
>>>>> $4 = {<ListItem<Asset>> = {_vptr.ListItem = 0x8325ca8, previous =
>>>>> 0x9ba50608, next = 0x9ba53978, owner = 0x9be94b20}, <GarbageObject> =
>>>>> {_vptr.GarbageObject = 0x8325cb8, users = 0,
>>>>>    deleted = 0, title = 0x9bea77a8 "Asset"},
>>>>>  path = "/media/MISO2/video/2011-08-08_09-05 Francuzsko a
>>>>> Taliansko/01_Pariz/MVI_1509_mjpeg_640x360.mov", '\000' <repeats 502
>>>>> times>"\321, \r", '\000' <repeats 425 times>,
>>>>>  pipe = '\000' <repeats 1023 times>, use_pipe = 0, folder = "Media",
>>>>> '\000' <repeats 1018 times>, format = 24, audio_data = 1, channels =
>>>>> 2, sample_rate = 48000, bits = 16,
>>>>>  byte_order = 1, signed_ = 1, header = 0, dither = 0, acodec =
>>>>> "\000wos", '\000' <repeats 1019 times>, audio_length = 636636,
>>>>> video_data = 1, layers = 0, frame_rate = 24,
>>>>>  reel_name = "cin0000", '\000' <repeats 1016 times>, reel_number = 0,
>>>>> tcstart = 0, tcend = 636636, tcformat = 0, width = 0, height = 0,
>>>>>  vcodec = "\000uv2", '\000' <repeats 1019 times>, video_length = 0,
>>>>> ampeg_bitrate = 256, ampeg_derivative = 3, vorbis_min_bitrate = -1,
>>>>> vorbis_bitrate = 128000,
>>>>>  vorbis_max_bitrate = -1, vorbis_vbr = 0, theora_fix_bitrate = 1,
>>>>> theora_bitrate = 860000, theora_quality = 16, theora_sharpness = 2,
>>>>> theora_keyframe_frequency = 64,
>>>>>  theora_keyframe_force_frequency = 64, mp3_bitrate = 256000,
>>>>> mp4a_bitrate = 256000, mp4a_quantqual = 100, aspect_ratio = -1,
>>>>> interlace_autofixoption = 1, interlace_mode = 0,
>>>>>  interlace_fixmethod = 0, jpeg_quality = 100, vmpeg_iframe_distance =
>>>>> 45, vmpeg_progressive = 0, vmpeg_denoise = 1, vmpeg_seq_codes = 0,
>>>>> vmpeg_bitrate = 1000000,
>>>>>  vmpeg_derivative = 1, vmpeg_quantization = 15, vmpeg_cmodel = 0,
>>>>> vmpeg_fix_bitrate = 0, vmpeg_preset = 0, vmpeg_field_order = 0,
>>>>> vmpeg_pframe_distance = 0,
>>>>>  divx_bitrate = 2000000, divx_rc_period = 50, divx_rc_reaction_ratio
>>>>> = 45, divx_rc_reaction_period = 10, divx_max_key_interval = 250,
>>>>> divx_max_quantizer = 31,
>>>>>  divx_min_quantizer = 1, divx_quantizer = 5, divx_quality = 5,
>>>>> divx_fix_bitrate = 1, h264_bitrate = 2000000, h264_quantizer = 5,
>>>>> h264_fix_bitrate = 0, divx_use_deblocking = 1,
>>>>>  png_use_alpha = 0, exr_use_alpha = 0, exr_compression = 0,
>>>>> tiff_cmodel = 0, tiff_compression = 0, ms_bitrate = 1000000,
>>>>> ms_bitrate_tolerance = 500000, ms_interlaced = 0,
>>>>>  ms_quantization = 10, ms_gop_size = 45, ms_fix_bitrate = 1,
>>>>> ac3_bitrate = 128, use_header = 1, index_status = 0, index_zoom = 4,
>>>>> index_start = 615, index_bytes = 11775266,
>>>>>  index_end = 0, old_index_end = 0, index_offsets = 0x9bea77b8,
>>>>> index_sizes = 0x9bea77d0, index_buffer = 0x0, id = 1730}
>>>>> -----------------------------------------------------------
>>>>>
>>>>> When I disable thumbnails in Cinelerra's preferences, the project
>>>>> loads fine, but in the Compositor view I see only black screen. So for
>>>>> now, I will be using your older snapshot which works fine for me.
>>>>> Sometimes it crashes with segmentation fault, but I was not yet able
>>>>> to determine steps leading to the crash.
>>>>>
>>>> Seems that  there is some problem with assets info - no width.
>>>>
>>>> The cause may be that projects saved from newer release are not
>>>> compatible with older. (The indexfiles too).
>>>>
>>>> Crashes are expected: I changed locking from 'always locked' to
>>>> 'almost not locked' - seems that some locks must
>>>> be put back.
>>>>
>>>> Einar
>>>>
>>>> _______________________________________________
>>>> Cinelerra mailing list
>>>> [email protected]
>>>> https://init.linpro.no/mailman/skolelinux.no/listinfo/cinelerra
>>>>
>>>
>>
>

_______________________________________________
Cinelerra mailing list
[email protected]
https://init.linpro.no/mailman/skolelinux.no/listinfo/cinelerra

Reply via email to