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