Thread: [Mlt-devel] [PATCH 1/2 mlt] Try to fix another crash
Brought to you by:
ddennedy,
lilo_booter
From: Mikko R. <mik...@ik...> - 2011-09-28 19:56:14
|
Similar problem was crashing in audio codec --- src/modules/avformat/producer_avformat.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/modules/avformat/producer_avformat.c b/src/modules/avformat/producer_avformat.c index 194fb15..1f33c37 100644 --- a/src/modules/avformat/producer_avformat.c +++ b/src/modules/avformat/producer_avformat.c @@ -863,11 +863,10 @@ static void reopen_video( producer_avformat self, mlt_producer producer ) mlt_service_lock( MLT_PRODUCER_SERVICE( producer ) ); pthread_mutex_lock( &self->audio_mutex ); + avformat_lock(); if ( self->video_codec ) { - avformat_lock(); avcodec_close( self->video_codec ); - avformat_unlock(); } self->video_codec = NULL; if ( self->dummy_context ) @@ -876,6 +875,7 @@ static void reopen_video( producer_avformat self, mlt_producer producer ) if ( self->video_format ) av_close_input_file( self->video_format ); self->video_format = NULL; + avformat_unlock(); int audio_index = self->audio_index; int video_index = self->video_index; -- 1.7.5.4 |
From: Mikko R. <mik...@ik...> - 2011-09-28 19:57:30
|
Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 0x3fa37b70 (LWP 31106)] 0xb0e1852a in producer_get_image (frame=0x93c98e0, buffer=0x3fa3731c, format=0x3fa37310, width=0x3fa370c4, height=0x3fa370c8, writable=0) at producer_avformat.c:1319 1319 int must_decode = strcmp( codec_context->codec->name, "dnxhd" ) && (gdb) thread apply all bt full Thread 199 (Thread 0x3c8ccb70 (LWP 31107)): No symbol table info available. at pthread_cond_wait.c:153 __status = -512 _val = 129 futex_val = <optimized out> buffer = {__routine = 0xb74313a0 <__condvar_cleanup>, __arg = 0x3c8cc29c, __canceltype = 1073508807, __prev = 0x0} cbuffer = {oldtype = 0, cond = 0x908dad0, mutex = 0x908db00, bc_seq = 64} err = <optimized out> pshared = 0 val = <optimized out> seq = 64 speed = 0 refresh = <optimized out> this = 0x908d958 consumer = 0x908d958 properties = 0x908d958 ---Type <return> to continue, or q <return> to quit--- frame = <optimized out> last_position = -1 eos = 0 eos_threshold = 45 preview_off = 0 __res = <optimized out> __ignore1 = <optimized out> __ignore2 = <optimized out> pd = 0x3c8ccb70 now = <optimized out> unwind_buf = {cancel_jmp_buf = {{jmp_buf = {-1220292620, 0, 4001536, 1015858232, 116706581, -1695908350}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}} not_first_call = <optimized out> freesize = <optimized out> __PRETTY_FUNCTION__ = "start_thread" No locals. Backtrace stopped: Not enough registers or memory available to unwind further Thread 198 (Thread 0x3fa37b70 (LWP 31106)): ---Type <return> to continue, or q <return> to quit--- format=0x3fa37310, width=0x3fa370c4, height=0x3fa370c8, writable=0) at producer_avformat.c:1319 __s2_len = <optimized out> self = 0x42fc4400 producer = 0x4fc69ca8 frame_properties = 0x93c98e0 position = 0 properties = 0x4fc69ca8 context = <optimized out> stream = <optimized out> codec_context = 0x7e0bcfc0 image_size = 0 pkt = {pts = 133602339425136, dts = 1119778238812, data = 0x18b719d8 "\001", size = 65, stream_index = -1208333257, flags = 410706436, side_data = 0x187aded0, side_data_elems = 1381296015, duration = -1208333257, destruct = 0x187ae204, priv = 0x3fa36e78, pos = -5189729299883888292, convergence_duration = -5189403724195106425} ignore = 0 source_fps = 59.940059940059939 req_position = <optimized out> ---Type <return> to continue, or q <return> to quit--- must_decode = <optimized out> use_new_seek = <optimized out> paused = 0 format=0x3fa37310, width=0x3fa370c4, height=0x3fa370c8, writable=0) at mlt_frame.c:453 properties = 0x93c98e0 get_image = 0xb0e18120 <producer_get_image> producer = <optimized out> requested_format = mlt_image_yuv422 error = 0 format=0x3fa37310, width=0x3fa370c4, height=0x3fa370c8, writable=0) at filter_crop.c:76 error = 0 properties = 0x93c98e0 left = 0 right = 0 top = 0 bottom = 0 owidth = <optimized out> oheight = <optimized out> ---Type <return> to continue, or q <return> to quit--- format=0x3fa37310, width=0x3fa370c4, height=0x3fa370c8, writable=0) at mlt_frame.c:453 properties = 0x93c98e0 get_image = 0xad8f22a0 <filter_get_image> producer = <optimized out> requested_format = mlt_image_yuv422 error = 0 format=0x3fa37310, width=0x3fa370c4, height=0x3fa370c8, writable=0) at filter_deinterlace.c:239 service = <optimized out> method_str = <optimized out> method = <optimized out> frame_method_str = <optimized out> error = <optimized out> properties = 0x93c98e0 deinterlace = 1 progressive = <optimized out> filter = 0x4fc0a350 format=0x3fa37310, width=0x3fa370c4, height=0x3fa370c8, writable=0) at mlt_frame.c:453 properties = 0x93c98e0 ---Type <return> to continue, or q <return> to quit--- get_image = 0xb1363ea0 <filter_get_image> producer = <optimized out> requested_format = mlt_image_rgb24a error = 0 format=0x3fa37310, width=0x3fa371d0, height=0x3fa371d4, writable=0) at filter_rescale.c:215 interps = <optimized out> iwidth = 480 iheight = 270 factor = 1 oheight = 720 error = 0 properties = 0x93c98e0 filter = 0x5d734448 filter_properties = 0x5d734448 scaler_method = 0xb0e13cb0 <filter_scale> format=0x3fa37310, width=0x3fa371d0, height=0x3fa371d4, writable=0) at mlt_frame.c:453 properties = 0x93c98e0 get_image = 0xad8f7ea0 <filter_get_image> producer = <optimized out> ---Type <return> to continue, or q <return> to quit--- requested_format = mlt_image_rgb24a error = 0 format=0x3fa37310, width=0x3fa37314, height=0x3fa37318, writable=0) at filter_resize.c:267 error = 0 properties = 0x93c98e0 filter = 0x4b6cf130 aspect_ratio = 1.0000000000001599 consumer_aspect = 1 owidth = 1280 oheight = 720 rescale = <optimized out> format=0x3fa37310, width=0x3fa37314, height=0x3fa37318, writable=0) at mlt_frame.c:453 properties = 0x93c98e0 get_image = 0xad8f8600 <filter_get_image> producer = <optimized out> requested_format = mlt_image_rgb24a error = 0 at consumer_sdl_still.c:477 ---Type <return> to continue, or q <return> to quit--- height = 720 width = 1280 unlock = 0 properties = 0x90772e8 lock = <optimized out> screen = <optimized out> vfmt = mlt_image_yuv422 image = 0x0 changed = <optimized out> display_ratio = 1.7777777777777777 this = 0x90772e8 consumer = 0x90772e8 properties = 0x90772e8 frame = 0x93c98e0 preview_off = 0 __res = <optimized out> __ignore1 = <optimized out> __ignore2 = <optimized out> pd = 0x3fa37b70 now = <optimized out> unwind_buf = {cancel_jmp_buf = {{jmp_buf = {-1220292620, 0, 4001536, ---Type <return> to continue, or q <return> to quit--- 1067676728, 1502924051, -1695908350}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}} not_first_call = <optimized out> freesize = <optimized out> __PRETTY_FUNCTION__ = "start_thread" No locals. Backtrace stopped: Not enough registers or memory available to unwind further Thread 177 (Thread 0x70cffb70 (LWP 31084)): No symbol table info available. at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/pthread_cond_timedwait.S:236 No locals. at thread/qwaitcondition_unix.cpp:86 tv = {tv_sec = 1316810758, tv_usec = 384858} ti = {tv_sec = 1316810788, tv_nsec = 384858000} code = <optimized out> ---Type <return> to continue, or q <return> to quit--- at thread/qwaitcondition_unix.cpp:160 returnValue = 36 at concurrent/qthreadpool.cpp:140 r = 0x70d65a38 expired = <optimized out> locker = {val = 335188585} at thread/qthread_unix.cpp:320 __clframe = { __cancel_routine = 0xb7c48400 <QThreadPrivate::finish(void*)>, __cancel_arg = 0x13fa9748, __do_it = 1, __cancel_type = <optimized out>} thr = 0x13fa9748 data = 0x13faa7c0 __res = <optimized out> __ignore1 = <optimized out> __ignore2 = <optimized out> pd = 0x70cffb70 now = <optimized out> unwind_buf = {cancel_jmp_buf = {{jmp_buf = {-1220292620, 0, 4001536, 1892676664, -2137731699, -1695908350}, mask_was_saved = 0}}, ---Type <return> to continue, or q <return> to quit--- priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}} not_first_call = <optimized out> freesize = <optimized out> __PRETTY_FUNCTION__ = "start_thread" No locals. Backtrace stopped: Not enough registers or memory available to unwind further Thread 176 (Thread 0x555fbb70 (LWP 31083)): No locals. args=0x555fadb4) at printf_fp.c:1237 thousands_sep_len = 0 copywc = 0x555f9fd4 L".88012000s退" factor = 1432330144 nbuffer = <optimized out> buffer = 0x555f9fa0 "119.X\241_U\221\367\300\265\260\314ݴ0.000000\t\311|\362\263\036WW\246\212", <incomplete sequence \373\267> buffer_end = 0x555f9fad "\314ݴ0.000000\t\311|\362\263\036WW\246\212", <incomplete sequence \373\267> cp = 0x555f9ff0 "0" ---Type <return> to continue, or q <return> to quit--- tmpptr = 0x1 <Address 0x1 out of bounds> wstartp = <optimized out> intdig_max = 0 intdig_no = <optimized out> fracdig_max = 1432330157 fracdig_no = <optimized out> width = -10 expscale = <optimized out> ngroups = 0 wbuffer_to_alloc = <optimized out> fracdig_min = 1432330704 dig_max = 2147483647 significant = 40 wcp = 0x555f9ff0 L"00s退" chars_needed = 10 spec = 102 'f' added_zeros = 0 decimal = 0xb4ddccb0 "." decimalwc = <optimized out> thousands_sep = 0x0 thousands_sepwc = 0 L'\000' grouping = 0x1 <Address 0x1 out of bounds> special = <optimized out> ---Type <return> to continue, or q <return> to quit--- wspecial = 0x0 fp_input = {3797248808, 1964115} to_shift = 1432330144 is_neg = 0 tmpsize = <optimized out> digit = <optimized out> done = <optimized out> cy = <optimized out> wide = 0 wbuffer = <optimized out> buffer_malloced = 0 expsign = 0 exponent = 2 fracsize = 3 frac = 0x555fa040 tmp = 0x555fa020 scale = 0x555fa000 scalesize = 2 type = 102 ap=0x555faed8 "(kU\342S\370]@\\\361\373\267\300'p]\240=kK\320A\372\267\300'p]H") at vfprintf.c:1956 ptr = 0x555fa1a0 ---Type <return> to continue, or q <return> to quit--- function_done = <optimized out> function_done = <optimized out> is_negative = <optimized out> alt = 0 space = 0 is_long_double = 0 the_arg = {pa_wchar = -1220349561 L'\xb742f187', pa_int = -1220349561, pa_long_int = -1220349561, pa_long_long_int = 11664552327, pa_u_int = 3074617735, pa_u_long_int = 3074617735, pa_u_long_long_int = 11664552327, pa_double = 5.7630545788882702e-314, pa_long_double = <invalid float value>, pa_string = 0xb742f187 "\201\303", <incomplete sequence \336>, pa_wstring = 0xb742f187 L"\xde6dc381\x7e8b0000\x89f9890c\x7fe183f8\x757ce083\x158b6545h\x5589c985\x817475f0胧\x1b900\xc0310000\xeb10ff0\x1d1850f\x468b0000\x75c08508\xf0458b2c\x1104683\x31084689\xf45d8bc0\x8bf8758b\xec89fc7d\x5d8bc35d\x8bf089f4\x758bfc7d\x5dec89f8\xfffa2ce9\xa838dff\x89ffffb0\xc70c2444\x3e082444\x8d000000\xffb73e83\x244489ff\xef838d04\x89ffffaf\xc2e82404\x83ffffc3\x4c7501f9\x3bf0558b\x26740856\x80e781\xff00000\x850f0eb1ť\x87e83\xb1850f\x46c70000Ą\xff77e900\x568bffff\xbb804\xfa830000\x72840fff\x83ffffff\xc03001c2\xe9045689\xffffff65\xf03f983뎅\xe8bb8300!\xff25840f\x1baffff\xf0000000\x8516b10f\x8b4374c0\x1b11446\xa00548d撸\x64fa8300\x31d04f0f\x1c783ff\x39ff478d\xf35b7dd0\xf0c03190\x850eb10f\x89ea75c0\x8b9fa\x562b0000\xc1d08914\xf9f71ffa\x89144603\x7e831446\x840---Type <return> to continue, or q <return> to quit--- f0008\xfffffee9\xb00a838d\x4489ffff\x44c70c24\x710824\x10e90000\x8dffffff\xffb00a83\x244489ff\x2444c70c合\xfef9e900\x468bffff\x1b90c\x80250000\x89000000\xc031ec45\xeb10ff0\x85850f\x93eb0000\x7502f983\xf0558b16⎸\x8563b00\xfe69850f\x8ee9ffff\x8dfffffe\xffb00a83\x244489ff\x3e838d0c\x89ffffb7\x8d042444\xffb0c083\x2444c7ff 甈\x24048900\xffc270e8\xb9178dff\200\x4d84e8\xfa8de900\x78dffff肹\x4cc3e800\xe1e90000\x8dfffffc\xe8f98916䭅\xfffe21e9\x89168dff\x4b37e8f9\x8de90000\x8dfffffe\xec4d8b16\x4b28e8\xff6ce900\x9090ffff\xe5895590\x83535657\x7d8b24ec\xc23fe808\xc381ffff\xdc23\x68a165\x45890000\xc478bf0\xe283c289\x43fa837f\x16b91376\x83000000\xc88924c4\x5d5f5e5b\x26748dc3\x93948b00\xffffb1e4\xe2ffda01\x26748d90\xf04d8b00\x8b084f3b\x2a840f17\xb9000002\xffffffff\x66ec7d89\xe84d8990\x7ee8d689\xc100006e\x4d8b13ee\xfc639e8\x2e58c\x24748900\x240c8904\x6fa4e8\x89c08500\x850fe045̘\x558bf789\x13e7c1ec\xc883f889\x89c18901\xb10ff0f8\x89f8390a\xd2840fc2\x25000002\xfff80000\xc739f189\x44c7a775\xffff0424\x3489ffff\x6f5fe824\x10b90000\x83000000\xc88924c4\x5d5f5e5b\xbac031c3\001"..., pa_pointer = 0xb742f187, pa_user = 0xb742f187} showsign = 0 step4_jumps = {1702 <repeats 14 times>, -49, 18, -1159, 349, 334, 401, -585, -4502, -6984, 785, 2805, -14018, -7094, 1702, 1702, 1702} string = <optimized out> width = <optimized out> use_outdigits = 0 pad = <optimized out> group = 0 ---Type <return> to continue, or q <return> to quit--- is_short = 0 is_char = 0 is_long = 0 base = 1432330496 left = 0 prec = -1 spec = <optimized out> nspecs = 1 nargs = <optimized out> max_ref_arg = <optimized out> cnt = <optimized out> nspecs_max = 1432333632 specs = <optimized out> args_value = 0x555fa1a0 _buffer = {__routine = 0, __arg = 0x208, __canceltype = -1341193424, __prev = 0x7399c5c0} _avail = 0 thousands_sep = 0xb4ddccb2 "," grouping = 0xb4ddccb4 "\003\003" f = 0x0 lead_str_end = 0xb7fb8a58 "%f" work_buffer = "\000\000\000\000\350\256_U\025\000\000\000p\213\373\267\000\000\000\000O\346\021\260\310\337Wɯ\016\000\000\220_\001\000\000\000\000\000@---Type <return> to continue, or q <return> to quit--- \377\337\071\000\000\000\000\277f\366\000\000\000\000\200\240\321\b\000\000\000\000\000\220_\001\000\000\000\000\000\000\000\000\000G\001\001=\310\337W\311\000\000\000\000\300f\366\000\000\000\000\000\000\000\000\000O\346\021\260\310\337Wɯ\016\000\000\220_\001\000\000\000\000\000\377\377\377\377\377\377\377\377\277f\366\000\000\000\000\200\300\\\025\000\000\000\000\000\220_\001\000\000\000\000\000\300f\366\000\000\000\000\000ȯ\000\000\000\000\000\000\001\000\000\000\000\000\000\000\354IC\267", '\000' <repeats 12 times>"\364, \317C\267\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\340tMo\300\\\025\000\000\000\000\000\000\000\000\000\357\346\021\260\300f\366\000\000\000\000\000@B\017\000\000\000\000\000\220_\001\000\032\344ϵ7\344ϵ\016\347ϵ\340\032е<"... workstart = 0x0 workend = 0x555fad40 "\300řs\001" ap_save = 0x555faee0 "\\\361\373\267\300'p]\240=kK\320A\372\267\300'p]H" nspecs_done = 0 save_errno = 0 readonly_format = 0 jump_table = "\001\000\000\004\000\016\000\006\000\000\a\002\000\003\t\000\005\b\b\b\b\b\b\b\b\b\000\000\000\000\000\000\000\032\000\031\000\023\023\023\000\035\000\000\f\000\000\000\000\000\000\025\000\000\000\000\022\000\r\000\000\000\000\000\000\032\000\024\017\023\023\023\n\017\034\000\v\030\027\021\026\f\000\025\033\020\000\000\022\000\r" __PRETTY_FUNCTION__ = "_IO_vfprintf_internal" ---Type <return> to continue, or q <return> to quit--- format=0xb7fb8a58 "%f", args=0x555faed8 "(kU\342S\370]@\\\361\373\267\300'p]\240=kK\320A\372\267\300'p]H") at iovsprintf.c:43 sf = {_sbf = {_f = {_flags = -72515583, _IO_read_ptr = 0x6ee75b40 "\270\376\337\071\r", _IO_read_end = 0x6ee75b40 "\270\376\337\071\r", _IO_read_base = 0x6ee75b40 "\270\376\337\071\r", _IO_write_base = 0x6ee75b40 "\270\376\337\071\r", _IO_write_ptr = 0x6ee75b40 "\270\376\337\071\r", _IO_write_end = 0xffffffff <Address 0xffffffff out of bounds>, _IO_buf_base = 0x6ee75b40 "\270\376\337\071\r", _IO_buf_end = 0xffffffff <Address 0xffffffff out of bounds>, _IO_save_base = 0x0, _IO_backup_base = 0x0, _IO_save_end = 0x0, _markers = 0x0, _chain = 0x0, _fileno = 0, _flags2 = 0, _old_offset = 0, _cur_column = 0, _vtable_offset = 0 '\000', _shortbuf = "", _lock = 0x0, _offset = 6093327554794462272, _codecvt = 0x5254e78f, _wide_data = 0xb7fa4c37, _freeres_list = 0x0, _freeres_buf = 0x4fc69ca8, _freeres_size = 31083, _mode = -1, _unused2 = "(p\243KPU\302O\\\361\373\267\062P\372\267@\234\237\223(\000\000\000\000\000\000\000\\\361\373\267\020\000\020\264\342\372M@"}, vtable = 0xb5d21b00}, _s = {_allocate_buffer = 0, ---Type <return> to continue, or q <return> to quit--- _free_buffer = 0xb4100010}} ret = <optimized out> format=0xb7fb8a58 "%f") at sprintf.c:34 done = 1432330224 at mlt_property.c:468 No locals. at mlt_property.c:510 No locals. name=0x9473dad8 "meta.media.0.codec.frame_rate") at mlt_properties.c:750 value = 0x555f9fd4 list = <optimized out> flags=10) at producer_avformat.c:1670 opt_name = 0x9473dad8 "meta.media.0.codec.frame_rate" opt = <optimized out> i = <optimized out> count = 51 properties=0x4fc69ca8) at producer_avformat.c:2389 ---Type <return> to continue, or q <return> to quit--- codec_context = 0x4f614160 codec = 0xb07830e0 at producer_avformat.c:2473 producer = 0x4fc69ca8 context = <optimized out> properties = 0x4fc69ca8 frame_properties = 0x939f9c40 index = 1 at producer_avformat.c:2530 service = 0x4fc69ca8 cache_item = <optimized out> self = 0x42fc4400 position = <optimized out> index=0) at mlt_producer.c:584 properties = 0x4fc69ca8 eof = <optimized out> speed = 0 clone = <optimized out> result = 1 self = 0x4fc69ca8 ---Type <return> to continue, or q <return> to quit--- index=0) at mlt_service.c:481 new_position = 0 previous_frame = <optimized out> next_frame = <optimized out> properties = 0x5d718190 in = 0 out = 5388 position = 0 result = <optimized out> at MltService.cpp:95 frame = 0x5d718190 result = 0xb7f8db37 width=90, height=50) at /home/mcfrisk/src/kdenlive-git/src/kthumb.cpp:170 frame = <optimized out> __PRETTY_FUNCTION__ = "static QImage KThumb::getFrame(Mlt::Producer*, int, int, int)" ow = <optimized out> data = <optimized out> image = {<QPaintDevice> = {_vptr.QPaintDevice = 0x0, painters = 45472}, d = 0xb7e7b1a0} ---Type <return> to continue, or q <return> to quit--- p = {<QPaintDevice> = {_vptr.QPaintDevice = 0xb6959338, painters = 0}, d = 0x94743270} oh = <optimized out> format = <optimized out> at /home/mcfrisk/src/kdenlive-git/src/kthumb.cpp:128 img = {<QPaintDevice> = {_vptr.QPaintDevice = 0xb6959338, painters = 0}, d = 0x94743270} frame = 2404 at /usr/include/qt4/QtCore/qtconcurrentrunbase.h:120 No locals. at /usr/include/qt4/QtCore/qtconcurrentrunbase.h:114 No locals. at concurrent/qthreadpool.cpp:106 r = 0x42e61db0 expired = <optimized out> locker = {val = 335188584} at thread/qthread_unix.cpp:320 __clframe = { ---Type <return> to continue, or q <return> to quit--- __cancel_routine = 0xb7c48400 <QThreadPrivate::finish(void*)>, __cancel_arg = 0x13fb1fb8, __do_it = 1, __cancel_type = <optimized out>} thr = 0x13fb1fb8 data = 0x13fa94f0 __res = <optimized out> __ignore1 = <optimized out> __ignore2 = <optimized out> pd = 0x555fbb70 now = <optimized out> unwind_buf = {cancel_jmp_buf = {{jmp_buf = {-1220292620, 0, 4001536, 1432335416, -1609249338, -1695908350}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}} not_first_call = <optimized out> freesize = <optimized out> __PRETTY_FUNCTION__ = "start_thread" No locals. Backtrace stopped: Not enough registers or memory available to unwind further Thread 175 (Thread 0x40a3ab70 (LWP 31080)): ---Type <return> to continue, or q <return> to quit--- No symbol table info available. at ../sysdeps/unix/sysv/linux/poll.c:87 resultvar = <optimized out> oldtype = 0 result = <optimized out> No symbol table info available. No symbol table info available. No symbol table info available. flags=...) at kernel/qeventdispatcher_glib.cpp:422 d = 0x18bb12c0 canWait = true savedFlags = {i = 0} result = <optimized out> at kernel/qeventloop.cpp:149 d = 0x17f59cb0 ---Type <return> to continue, or q <return> to quit--- at kernel/qeventloop.cpp:201 d = 0x17f59cb0 app = 0x40a3a26c d = 0x17f1ff50 locker = {val = 401735584} eventLoop = {<QObject> = {_vptr.QObject = 0xb7e7a608, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0xb7e060a0 "QObject", data = 0xb7e06140, extradata = 0xb7e75560}}, d_ptr = {d = 0x17f59cb0}, static staticQtMetaObject = {d = {superdata = 0x0, stringdata = 0xb7e0ec80 "Qt", data = 0xb7e12500, extradata = 0x0}}}, static staticMetaObject = {d = { superdata = 0x8417520, stringdata = 0xb7e18400 "QEventLoop", data = 0xb7e18420, extradata = 0x0}}} returnCode = <optimized out> at io/qfilesystemwatcher_inotify.cpp:248 sn = {<QObject> = {_vptr.QObject = 0xb7e7a728, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0xb7e060a0 "QObject", data = 0xb7e06140, extradata = 0xb7e75560}}, d_ptr = {d = 0x18bf9470}, static staticQtMetaObject = {d = {superdata = 0x0, ---Type <return> to continue, or q <return> to quit--- stringdata = 0xb7e0ec80 "Qt", data = 0xb7e12500, extradata = 0x0}}}, static staticMetaObject = {d = { superdata = 0x8417520, stringdata = 0xb7e19600 "QSocketNotifier", data = 0xb7e19640, extradata = 0x0}}, sockfd = 34, sntype = QSocketNotifier::Read, snenabled = true} at thread/qthread_unix.cpp:320 __clframe = { __cancel_routine = 0xb7c48400 <QThreadPrivate::finish(void*)>, __cancel_arg = 0x18b22bc0, __do_it = 1, __cancel_type = <optimized out>} thr = 0x18b22bc0 data = 0x19ada538 __res = <optimized out> __ignore1 = <optimized out> __ignore2 = <optimized out> pd = 0x40a3ab70 now = <optimized out> unwind_buf = {cancel_jmp_buf = {{jmp_buf = {-1220292620, 0, 4001536, 1084466232, 1479855597, -1695908350}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, ---Type <return> to continue, or q <return> to quit--- cleanup = 0x0, canceltype = 0}}} not_first_call = <optimized out> freesize = <optimized out> __PRETTY_FUNCTION__ = "start_thread" No locals. Backtrace stopped: Not enough registers or memory available to unwind further Thread 2 (Thread 0xb4a48b70 (LWP 30882)): No symbol table info available. at ../sysdeps/unix/sysv/linux/poll.c:87 resultvar = <optimized out> oldtype = 0 result = <optimized out> No symbol table info available. No symbol table info available. No symbol table info available. ---Type <return> to continue, or q <return> to quit--- No symbol table info available. No symbol table info available. __res = <optimized out> __ignore1 = <optimized out> __ignore2 = <optimized out> pd = 0xb4a48b70 now = <optimized out> unwind_buf = {cancel_jmp_buf = {{jmp_buf = {-1220292620, 0, 4001536, -1264286664, 1450494981, -1695908350}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}} not_first_call = <optimized out> freesize = <optimized out> __PRETTY_FUNCTION__ = "start_thread" No locals. Backtrace stopped: Not enough registers or memory available to unwind further Thread 1 (Thread 0xb4ddf940 (LWP 30879)): No symbol table info available. ---Type <return> to continue, or q <return> to quit--- at ../sysdeps/unix/sysv/linux/poll.c:87 resultvar = <optimized out> oldtype = 0 result = <optimized out> No symbol table info available. No symbol table info available. No symbol table info available. flags=...) at kernel/qeventdispatcher_glib.cpp:422 d = 0x8438470 canWait = true savedFlags = {i = 0} result = <optimized out> flags=...) at kernel/qguieventdispatcher_glib.cpp:204 d = 0x8434d68 saved_flags = {i = 0} returnValue = 252 ---Type <return> to continue, or q <return> to quit--- at kernel/qeventloop.cpp:149 d = 0x93bdd70 at kernel/qeventloop.cpp:201 d = 0x93bdd70 app = 0xbfffec8c threadData = 0x84186f0 eventLoop = {<QObject> = {_vptr.QObject = 0xb7e7a608, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0xb7e060a0 "QObject", data = 0xb7e06140, extradata = 0xb7e75560}}, d_ptr = {d = 0x93bdd70}, static staticQtMetaObject = {d = {superdata = 0x0, stringdata = 0xb7e0ec80 "Qt", data = 0xb7e12500, extradata = 0x0}}}, static staticMetaObject = {d = { superdata = 0x8417520, stringdata = 0xb7e18400 "QEventLoop", data = 0xb7e18420, extradata = 0x0}}} returnCode = <optimized out> No locals. ) at /home/mcfrisk/src/kdenlive-git/src/main.cpp:89 aboutData = {d = 0x841f610} ---Type <return> to continue, or q <return> to quit--- app = <incomplete type> window = <optimized out> __PRETTY_FUNCTION__ = "int main(int, char**)" options = {d = 0x8432b58} result = <optimized out> (gdb) --- src/modules/avformat/producer_avformat.c | 7 ++++++- 1 files changed, 6 insertions(+), 1 deletions(-) diff --git a/src/modules/avformat/producer_avformat.c b/src/modules/avformat/producer_avformat.c index 1f33c37..97e4e34 100644 --- a/src/modules/avformat/producer_avformat.c +++ b/src/modules/avformat/producer_avformat.c @@ -1316,11 +1316,16 @@ static int producer_get_image( mlt_frame frame, uint8_t **buffer, mlt_image_form // Determines if we have to decode all frames in a sequence // Temporary hack to improve intra frame only - int must_decode = strcmp( codec_context->codec->name, "dnxhd" ) && + int must_decode = 1; + if (codec_context && codec_context->codec && + codec_context->codec->name) + { + must_decode = strcmp( codec_context->codec->name, "dnxhd" ) && strcmp( codec_context->codec->name, "dvvideo" ) && strcmp( codec_context->codec->name, "huffyuv" ) && strcmp( codec_context->codec->name, "mjpeg" ) && strcmp( codec_context->codec->name, "rawvideo" ); + } // Turn on usage of new seek API and PTS for seeking int use_new_seek = self->seekable && -- 1.7.5.4 |
From: Mikko R. <mik...@ik...> - 2011-09-29 20:28:22
|
http://www.kdenlive.org/mantis/view.php?id=2326 Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 0x3fa37b70 (LWP 31106)] 0xb0e1852a in producer_get_image (frame=0x93c98e0, buffer=0x3fa3731c, format=0x3fa37310, width=0x3fa370c4, height=0x3fa370c8, writable=0) at producer_avformat.c:1319 1319 int must_decode = strcmp( codec_context->codec->name, "dnxhd" ) && --- src/modules/avformat/producer_avformat.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) v0: Missed this from the patch series that I've been running for a while. diff --git a/src/modules/avformat/producer_avformat.c b/src/modules/avformat/producer_avformat.c index ed9bf0c..194fb15 100644 --- a/src/modules/avformat/producer_avformat.c +++ b/src/modules/avformat/producer_avformat.c @@ -1885,13 +1885,13 @@ static void producer_set_up_video( producer_avformat self, mlt_frame frame ) { // Reset the video properties if the index changed self->video_index = index; + avformat_lock(); if ( self->video_codec ) { - avformat_lock(); avcodec_close( self->video_codec ); - avformat_unlock(); } self->video_codec = NULL; + avformat_unlock(); } // Get the frame properties -- 1.7.5.4 |
From: Dan D. <da...@de...> - 2011-10-09 22:32:56
|
On Sun, Oct 9, 2011 at 2:53 PM, Mikko Rapeli <mik...@ik...> wrote: > On Sat, Oct 08, 2011 at 01:27:45PM -0700, Dan Dennedy wrote: >> On Sat, Oct 8, 2011 at 12:39 PM, Mikko Rapeli <mik...@ik...> wrote: >> > Another crash around the same area. Would you by chance have an idea of a fix? >> >> Can you determine if Kdenlive is trying to actively use 10 or more >> instances of avformat producer? This is not supported unless it has > > I guess full trace with all threads would show this, sorry for not capturing > it. > > I will try to hit this again to see what's going on. > >> increased the size of the producer_avformat cache. What did you do >> just before this crash? > > Setting in and out points for clips using procies. Original clips are on > an external USB disk which is sometimes a bit slow when disk caches are > empty. OK, it sounds like you were setting in and out points for clips that already have proxies. Correct? Was there any background processing going on as well that you recall? Notice that the crash derives from some activity in kthumb. >> Kdenlive has had some problems before with thumbnailing and importing >> a large number of clips because it was creating a thread for each >> clip, which was unstable usage of MLT not to mention bad usage of >> system resources. Now it uses QtConcurrent, which defaults number of >> threads to the number of virtual cores, which I still feel is >> dangerous and not system friendly. I really do not want all of my CPUs >> used by background threads leaving none for the UI. And I do not >> really want my hard drive thrashed reading 8 or more large video files >> simultaneously. Furthermore, there is no check to see if cpu count >> exceeds 10. How many do you have? > > Just 2 cpu's. hmm, then it is probably not due to amount of concurrency but more likely state. KThumb could be trying to get an image from an "old" frame, meaning the avformat producer was flushed from the cache since the frame was retrieved. However, I thought that a frame would hold a reference to the producer and thereby prevent it from being flushed. I will analyze further around that. -- +-DRD-+ |
From: Mikko R. <mik...@ik...> - 2011-10-10 05:50:28
|
On Sun, Oct 09, 2011 at 03:32:49PM -0700, Dan Dennedy wrote: > OK, it sounds like you were setting in and out points for clips that > already have proxies. Correct? Was there any background processing > going on as well that you recall? Notice that the crash derives from > some activity in kthumb. Yes. Kdenlive GUI tends to freeze when doing something in the background like accessing files on the disk and it was frozen before this crash. -Mikko |
From: Mikko R. <mik...@ik...> - 2011-10-11 21:05:31
|
Previewed clip without proxy and then enabled proxy back on in kdenlive. I think context can be NULL after return from pthread_mutex_lock() at any time and that would need to be checked everywhere. Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 0x4ac6db70 (LWP 11245)] 0xb0f1a1aa in producer_get_image (frame=0x863d40f0, buffer=0x4ac6d09c, format=0x4ac6d1a4, width=0x4ac6cec4, height=0x4ac6cec8, writable=0) at producer_avformat.c:1259 warning: Source file is more recent than executable. 1259 AVStream *stream = context->streams[ self->video_index ]; (gdb) thread apply all bt full Thread 983 (Thread 0x444f9b70 (LWP 11250)): #0 0xb7fe2424 in __kernel_vsyscall () No symbol table info available. #1 0xb743120a in __pthread_cond_wait (cond=0x9084238, mutex=0x9084268) at pthread_cond_wait.c:153 __status = -512 _val = 825 futex_val = <optimized out> buffer = {__routine = 0xb74313a0 <__condvar_cleanup>, __arg = 0x444f929c, __canceltype = 40, __prev = 0x0} cbuffer = {oldtype = 0, cond = 0x9084238, mutex = 0x9084268, bc_seq = 412} err = <optimized out> pshared = 0 val = <optimized out> seq = 412 #2 0xb14f5202 in consumer_thread (arg=0x90840c0) at consumer_sdl_preview.c:449 speed = 0 refresh = <optimized out> this = 0x90840c0 consumer = 0x90840c0 properties = 0x90840c0 ---Type <return> to continue, or q <return> to quit--- frame = <optimized out> last_position = -1 eos = 0 eos_threshold = 45 preview_off = 0 #3 0xb742cc39 in start_thread (arg=0x444f9b70) at pthread_create.c:304 __res = <optimized out> __ignore1 = <optimized out> __ignore2 = <optimized out> pd = 0x444f9b70 now = <optimized out> unwind_buf = {cancel_jmp_buf = {{jmp_buf = {-1220292620, 0, 4001536, 1146065976, -127700310, -488783540}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}} not_first_call = <optimized out> freesize = <optimized out> __PRETTY_FUNCTION__ = "start_thread" #4 0xb5c9896e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130 No locals. Backtrace stopped: Not enough registers or memory available to unwind further Thread 982 (Thread 0x44cfab70 (LWP 11249)): ---Type <return> to continue, or q <return> to quit--- #0 0xb01e397a in yuv2rgb_full_X_c_template (hasAlpha=0, target=PIX_FMT_RGBA, dstW=1280, dest=0x4566b884 "\360\363\356\377\360\363\356\377\360\363\356\377\360\363\356\377\360\363\356\377\360\363\356\377\362\364\357\377\362\364\357\377\362\364\357\377\362\364\357\377\362\364\357\377\362\364\357\377\362\364\357\377\362\364\357\377\362\364\357\377\362\364\357\377\363\365\360\377\363\365\360\377\363\365\360\377\364\367\361\377\363\365\360\377\363\365\360\377\362\364\357\377\362\364\357\377\362\364\357\377\362\364\357\377\362\364\357\377\363\365\360\377\363\365\360\377\363\365\360\377\363\365\360\377\363\365\360\377\364\367\361\377\362\364\357\377\363\365\360\377\363\365\360\377\362\364\357\377\362\364\357\377\363\365\360\377\363\365\360\377\363\365\360\377\363\365\360\377\363\365\360\377\364\367\361\377\365\370\363\377\363\365\360\377\364\367\361\377\365\370\363\377\364\367\361\377\364\367\361\377"..., alpSrc=<optimized out>, chrFilterSize=1, chrVSrc=0xa0d0824, chrUSrc=0x1a45aaa4, chrFilter=0x1a8e2b8a, lumFilterSize=1, lumSrc=0xa6ba404, lumFilter=0x1a7482ca, c=0x1ae703c0, y=<optimized out>) at libswscale/swscale.c:1457 Y = <optimized out> U = 512 G = <optimized out> j = <optimized out> V = <optimized out> R = <optimized out> B = <optimized out> ---Type <return> to continue, or q <return> to quit--- i = <optimized out> #1 yuv2rgbx32_full_X_c (c=0x1ae703c0, lumFilter=0x1a7482ca, lumSrc=0xa6ba404, lumFilterSize=1, chrFilter=0x1a8e2b8a, chrUSrc=0x1a45aaa4, chrVSrc=0xa0d0824, chrFilterSize=1, alpSrc=0x0, dest=0x4566b884 "\360\363\356\377\360\363\356\377\360\363\356\377\360\363\356\377\360\363\356\377\360\363\356\377\362\364\357\377\362\364\357\377\362\364\357\377\362\364\357\377\362\364\357\377\362\364\357\377\362\364\357\377\362\364\357\377\362\364\357\377\362\364\357\377\363\365\360\377\363\365\360\377\363\365\360\377\364\367\361\377\363\365\360\377\363\365\360\377\362\364\357\377\362\364\357\377\362\364\357\377\362\364\357\377\362\364\357\377\363\365\360\377\363\365\360\377\363\365\360\377\363\365\360\377\363\365\360\377\364\367\361\377\362\364\357\377\363\365\360\377\363\365\360\377\362\364\357\377\362\364\357\377\363\365\360\377\363\365\360\377\363\365\360\377\363\365\360\377\363\365\360\377\364\367\361\377\365\370\363\377\363\365\360\377\364\367\361\377\365\370\363\377\364\367\361\377\364\367\361\377"..., dstW=1280, y=293) at libswscale/swscale.c:1537 No locals. #2 0xb01e823f in swScale (c=0x1ae703c0, src=0x44cf9fb0, srcStride=0x44cf9fd0, srcSliceY=0, srcSliceH=720, dst=0x44cf9fc0, dstStride=0x44cf9fe0) at libswscale/swscale.c:2756 lumSrcPtr = 0xa6ba404 chrUSrcPtr = 0x1a45aaa4 chrVSrcPtr = <optimized out> alpSrcPtr = <optimized out> ---Type <return> to continue, or q <return> to quit--- chrDstY = 293 dest = { 0x4566b430 "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"..., 0x0, 0x0, 0x0} firstLumSrcY2 = <optimized out> firstChrSrcY = 293 lastLumSrcY = 293 enough_lines = <optimized out> firstLumSrcY = 293 lastLumSrcY2 = <optimized out> lastChrSrcY = 293 srcW = 1280 dstW = 1280 dstH = 720 ---Type <return> to continue, or q <return> to quit--- chrDstW = 1280 chrSrcW = 640 lumXInc = 65536 chrXInc = 32768 dstFormat = PIX_FMT_RGBA flags = <optimized out> vLumFilterPos = 0x1d0fe860 vChrFilterPos = 0x1d202320 hLumFilterPos = 0x1a745460 hChrFilterPos = 0x1a742380 vLumFilter = 0x1a748080 vChrFilter = 0x1a8e2940 hLumFilter = 0x1a38a660 hChrFilter = 0x1d365c20 lumMmxFilter = 0x1ae71d58 chrMmxFilter = 0x1ae72d58 alpMmxFilter = 0x1ae73d88 vLumFilterSize = 1 vChrFilterSize = 1 hLumFilterSize = 4 hChrFilterSize = 4 lumPixBuf = 0xa6ba400 chrUPixBuf = 0x1a45aaa0 ---Type <return> to continue, or q <return> to quit--- chrVPixBuf = 0xa0d0820 alpPixBuf = 0x0 vLumBufSize = 1 vChrBufSize = 1 formatConvBuffer = 0x1a8e0a80 "\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200"... chrSrcSliceY = 0 chrSrcSliceH = 720 pal = 0x1ae70434 should_dither = <optimized out> yuv2yuv1 = 0xb01febd0 <yuv2yuv1_ar_MMX2> yuv2yuvX = 0xb01fe5a0 <yuv2yuvX_ar_MMX2> yuv2packed1 = 0 yuv2packed2 = 0 ---Type <return> to continue, or q <return> to quit--- yuv2packedX = 0xb01e38c0 <yuv2rgbx32_full_X_c> dstY = 293 lumBufIndex = 0 chrBufIndex = 0 lastInLumBuf = <optimized out> lastInChrBuf = <optimized out> #3 0xb01edd40 in sws_scale (c=0x1ae703c0, srcSlice=0x44cfa07c, srcStride=0x44cfa08c, srcSliceY=0, srcSliceH=720, dst=0x44cfa09c, dstStride=0x44cfa0ac) at libswscale/swscale_unscaled.c:807 srcStride2 = {2560, 2560, 2560, 2560} dstStride2 = {5120, 0, 0, 0} i = <optimized out> src2 = { 0x4ffc8030 "\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\3---Type <return> to continue, or q <return> to quit--- 53\200\353\200", <incomplete sequence \353\200>..., 0x4ffc8030 "\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200", <incomplete sequence \353\200>..., 0x4ffc8030 "\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200", <incomplete sequence \353\200>..., ---Type <return> to continue, or q <return> to quit--- 0x4ffc8030 "\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200", <incomplete sequence \353\200>...} dst2 = { 0x454fd030 "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"..., 0x0, 0x0, 0x0} ---Type <return> to continue, or q <return> to quit--- #4 0xb0f15043 in av_convert_image (use_full_range=-1, colorspace=601, height=720, width=1280, in_fmt=1, out_fmt=451347392, in=<optimized out>, out=0x454fd030 "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"...) at filter_avcolour_space.c:142 input = {data = { 0x4ffc8030 "\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200---Type <return> to continue, or q <return> to quit--- \353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200", <incomplete sequence \353\200>..., 0x0, 0x0, 0x0}, linesize = {2560, 0, 0, 0}} output = {data = { 0x454fd030 "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"..., 0x0, 0x0, 0x0}, linesize = {5120, 0, 0, 0}} flags = <optimized out> context = 0x1ae703c0 #5 convert_image (frame=0x1bbd43e8, image=0x44cfa31c, format=0x44cfa310, output_format=mlt_image_rgb24a) at filter_avcolour_space.c:215 force_full_luma = -1 colorspace = 601 in_fmt = 1 out_fmt = 451347392 ---Type <return> to continue, or q <return> to quit--- size = 3686400 output = 0x454fd030 "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"... properties = 0x1bbd43e8 width = 1280 height = 720 #6 0xb7fa08f9 in mlt_frame_get_image (self=0x1bbd43e8, buffer=0x44cfa31c, format=0x44cfa310, width=0x44cfa1d0, height=0x44cfa1d4, writable=0) at mlt_frame.c:459 properties = 0x1bbd43e8 get_image = 0xad9f9ed0 <filter_get_image> producer = <optimized out> requested_format = mlt_image_rgb24a error = <optimized out> ---Type <return> to continue, or q <return> to quit--- #7 0xad9fa7ca in filter_get_image (this=0x1bbd43e8, image=0x44cfa31c, format=0x44cfa310, width=0x44cfa314, height=0x44cfa318, writable=0) at filter_resize.c:267 error = 0 properties = 0x1bbd43e8 filter = 0x1a901140 aspect_ratio = 1.0000000000001599 consumer_aspect = 1 owidth = 1280 oheight = 720 rescale = <optimized out> #8 0xb7fa0886 in mlt_frame_get_image (self=0x1bbd43e8, buffer=0x44cfa31c, format=0x44cfa310, width=0x44cfa314, height=0x44cfa318, writable=0) at mlt_frame.c:453 properties = 0x1bbd43e8 get_image = 0xad9fa630 <filter_get_image> producer = <optimized out> requested_format = mlt_image_rgb24a error = 0 #9 0xb14f5e16 in consumer_play_video (frame=0x1bbd43e8, this=0x9011248) at consumer_sdl_still.c:477 height = 720 width = 1280 ---Type <return> to continue, or q <return> to quit--- unlock = 0 properties = 0x9011248 lock = <optimized out> screen = <optimized out> vfmt = mlt_image_yuv422 image = 0x4ffc8030 "\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200\353\200", <incomplete sequence \353\200>... changed = <optimized out> display_ratio = 1.7777777777777777 #10 consumer_thread (arg=0x9011248) at consumer_sdl_still.c:577 this = 0x9011248 consumer = 0x9011248 properties = 0x9011248 frame = 0x1bbd43e8 ---Type <return> to continue, or q <return> to quit--- preview_off = 0 #11 0xb742cc39 in start_thread (arg=0x44cfab70) at pthread_create.c:304 __res = <optimized out> __ignore1 = <optimized out> __ignore2 = <optimized out> pd = 0x44cfab70 now = <optimized out> unwind_buf = {cancel_jmp_buf = {{jmp_buf = {-1220292620, 0, 4001536, 1154458680, -133991765, -488783540}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}} not_first_call = <optimized out> freesize = <optimized out> __PRETTY_FUNCTION__ = "start_thread" #12 0xb5c9896e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130 No locals. Backtrace stopped: Not enough registers or memory available to unwind further Thread 979 (Thread 0x43cf8b70 (LWP 11246)): #0 0xb7fe2424 in __kernel_vsyscall () No symbol table info available. #1 0xb7431703 in pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/pthread_cond_timedwait.---Type <return> to continue, or q <return> to quit--- S:236 No locals. #2 0xb7c4999e in wait (time=30000, this=0x179c4310) at thread/qwaitcondition_unix.cpp:86 tv = {tv_sec = 1318366675, tv_usec = 337150} ti = {tv_sec = 1318366705, tv_nsec = 337150000} code = <optimized out> #3 QWaitCondition::wait (this=0x179c4274, mutex=0x179c4270, time=30000) at thread/qwaitcondition_unix.cpp:160 returnValue = 241 #4 0xb7c3c884 in QThreadPoolThread::run (this=0x179c8538) at concurrent/qthreadpool.cpp:140 r = 0x4d5f8878 expired = <optimized out> locker = {val = 396116593} #5 0xb7c49503 in QThreadPrivate::start (arg=0x179c8538) at thread/qthread_unix.cpp:320 __clframe = { __cancel_routine = 0xb7c48400 <QThreadPrivate::finish(void*)>, __cancel_arg = 0x179c8538, __do_it = 1, __cancel_type = <optimized out>} thr = 0x179c8538 data = 0x179c44f8 ---Type <return> to continue, or q <return> to quit--- #6 0xb742cc39 in start_thread (arg=0x43cf8b70) at pthread_create.c:304 __res = <optimized out> __ignore1 = <optimized out> __ignore2 = <optimized out> pd = 0x43cf8b70 now = <optimized out> unwind_buf = {cancel_jmp_buf = {{jmp_buf = {-1220292620, 0, 4001536, 1137673272, -129797467, -488783540}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}} not_first_call = <optimized out> freesize = <optimized out> __PRETTY_FUNCTION__ = "start_thread" #7 0xb5c9896e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130 No locals. Backtrace stopped: Not enough registers or memory available to unwind further Thread 978 (Thread 0x4ac6db70 (LWP 11245)): #0 0xb0f1a1aa in producer_get_image (frame=0x863d40f0, buffer=0x4ac6d09c, format=0x4ac6d1a4, width=0x4ac6cec4, height=0x4ac6cec8, writable=0) at producer_avformat.c:1259 self = 0x1ca9afc8 producer = 0x1c433528 ---Type <return> to continue, or q <return> to quit--- frame_properties = 0x863d40f0 position = 423 properties = 0x1c433528 context = 0x0 stream = <optimized out> codec_context = <optimized out> image_size = <optimized out> pkt = {pts = 48296907243532, dts = 1016699023708, data = 0x58061db8 "\001", size = 59, stream_index = -1208333257, flags = 1477765548, side_data = 0x5814e678, side_data_elems = 1381296015, duration = -1208333257, destruct = 0x5814e9ac, priv = 0x4ac6cc78, pos = -5189729299883888292, convergence_duration = -5189404136511966841} ignore = <optimized out> source_fps = <optimized out> req_position = <optimized out> must_decode = <optimized out> use_new_seek = <optimized out> paused = -2042806032 #1 0xb7fa0886 in mlt_frame_get_image (self=0x863d40f0, buffer=0x4ac6d09c, format=0x4ac6d1a4, width=0x4ac6cec4, height=0x4ac6cec8, writable=0) at mlt_frame.c:453 ---Type <return> to continue, or q <return> to quit--- properties = 0x863d40f0 get_image = 0xb0f1a140 <producer_get_image> producer = <optimized out> requested_format = mlt_image_yuv422 error = 0 #2 0xad9f43b8 in filter_get_image (this=0x863d40f0, image=0x4ac6d09c, format=0x4ac6d1a4, width=0x4ac6cec4, height=0x4ac6cec8, writable=0) at filter_crop.c:76 error = 0 properties = 0x863d40f0 left = 0 right = 0 top = 0 bottom = 0 owidth = <optimized out> oheight = <optimized out> #3 0xb7fa0886 in mlt_frame_get_image (self=0x863d40f0, buffer=0x4ac6d09c, format=0x4ac6d1a4, width=0x4ac6cec4, height=0x4ac6cec8, writable=0) at mlt_frame.c:453 properties = 0x863d40f0 get_image = 0xad9f42d0 <filter_get_image> producer = <optimized out> requested_format = mlt_image_yuv422 ---Type <return> to continue, or q <return> to quit--- error = 0 #4 0xb146606e in filter_get_image (this=0x863d40f0, image=0x4ac6d09c, format=0x4ac6d1a4, width=0x4ac6cec4, height=0x4ac6cec8, writable=0) at filter_deinterlace.c:239 service = <optimized out> method_str = <optimized out> method = <optimized out> frame_method_str = <optimized out> error = <optimized out> properties = 0x863d40f0 deinterlace = 1 progressive = <optimized out> filter = 0x1bbd40c0 #5 0xb7fa0886 in mlt_frame_get_image (self=0x863d40f0, buffer=0x4ac6d09c, format=0x4ac6d1a4, width=0x4ac6cec4, height=0x4ac6cec8, writable=0) at mlt_frame.c:453 properties = 0x863d40f0 get_image = 0xb1465ea0 <filter_get_image> producer = <optimized out> requested_format = mlt_image_rgb24a error = 0 #6 0xad9fa14d in filter_get_image (this=0x863d40f0, image=0x4ac6d09c, format=0x4ac6d1a4, width=0x4ac6cfd0, height=0x4ac6cfd4, writable=0) ---Type <return> to continue, or q <return> to quit--- at filter_rescale.c:215 interps = <optimized out> iwidth = 480 iheight = 270 factor = 1 oheight = 50 error = 0 properties = 0x863d40f0 filter = 0x1c3364a0 filter_properties = 0x1c3364a0 scaler_method = 0xb0f15cb0 <filter_scale> #7 0xb7fa0886 in mlt_frame_get_image (self=0x863d40f0, buffer=0x4ac6d09c, format=0x4ac6d1a4, width=0x4ac6cfd0, height=0x4ac6cfd4, writable=0) at mlt_frame.c:453 properties = 0x863d40f0 get_image = 0xad9f9ed0 <filter_get_image> producer = <optimized out> requested_format = mlt_image_rgb24a error = 0 #8 0xad9fa7ca in filter_get_image (this=0x863d40f0, image=0x4ac6d09c, format=0x4ac6d1a4, width=0x4ac6d19c, height=0x4ac6d1a0, writable=0) at filter_resize.c:267 error = 0 ---Type <return> to continue, or q <return> to quit--- properties = 0x863d40f0 filter = 0x1a901140 aspect_ratio = 1.0000000000001599 consumer_aspect = 1 owidth = 88 oheight = 50 rescale = <optimized out> #9 0xb7fa0886 in mlt_frame_get_image (self=0x863d40f0, buffer=0x4ac6d09c, format=0x4ac6d1a4, width=0x4ac6d19c, height=0x4ac6d1a0, writable=0) at mlt_frame.c:453 properties = 0x863d40f0 get_image = 0xad9fa630 <filter_get_image> producer = <optimized out> requested_format = mlt_image_rgb24a error = 0 #10 0xb7f8ab5d in Mlt::Frame::get_image (this=0x685e3c20, format=@0x4ac6d1a4, w=@0x4ac6d19c, h=@0x4ac6d1a0, writable=0) at MltFrame.cpp:59 image = 0x0 #11 0x081bbd2e in KThumb::getFrame (frame=0x685e3c20, frameWidth=89, displayWidth=89, height=50) at /home/mcfrisk/src/kdenlive-git/src/kthumb.cpp:195 ow = 89 data = <optimized out> ---Type <return> to continue, or q <return> to quit--- image = {<QPaintDevice> = {_vptr.QPaintDevice = 0x863d40f0, painters = 0}, d = 0x1a7} p = {<QPaintDevice> = {_vptr.QPaintDevice = 0xb6959338, painters = 0}, d = 0x685ce510} oh = 50 format = mlt_image_yuv422 #12 0x081bc089 in KThumb::getFrame (producer=0x1a83f588, framepos=423, frameWidth=89, displayWidth=89, height=50) at /home/mcfrisk/src/kdenlive-git/src/kthumb.cpp:177 p = {<QPaintDevice> = {_vptr.QPaintDevice = 0xb6959338, painters = 0}, d = 0x685ee4a8} frame = 0x685e3c20 #13 0x081bdb05 in KThumb::doGetThumbs (this=0xa0f1cb0) at /home/mcfrisk/src/kdenlive-git/src/kthumb.cpp:134 img = {<QPaintDevice> = {_vptr.QPaintDevice = 0xb6959338, painters = 0}, d = 0x685ee4a8} frame = 423 swidth = 89 dwidth = 89 #14 0x080e73ac in run (this=0x4b3c3dd8) at /usr/include/qt4/QtCore/qtconcurrentrunbase.h:120 No locals. #15 QtConcurrent::RunFunctionTask<void>::run (this=0x4b3c3dd8) ---Type <return> to continue, or q <return> to quit--- at /usr/include/qt4/QtCore/qtconcurrentrunbase.h:114 No locals. #16 0xb7c3c7f1 in QThreadPoolThread::run (this=0x179c6328) at concurrent/qthreadpool.cpp:106 r = 0x4b3c3de0 expired = <optimized out> locker = {val = 396116592} #17 0xb7c49503 in QThreadPrivate::start (arg=0x179c6328) at thread/qthread_unix.cpp:320 __clframe = { __cancel_routine = 0xb7c48400 <QThreadPrivate::finish(void*)>, __cancel_arg = 0x179c6328, __do_it = 1, __cancel_type = <optimized out>} thr = 0x179c6328 data = 0x179c6478 #18 0xb742cc39 in start_thread (arg=0x4ac6db70) at pthread_create.c:304 __res = <optimized out> __ignore1 = <optimized out> __ignore2 = <optimized out> pd = 0x4ac6db70 now = <optimized out> unwind_buf = {cancel_jmp_buf = {{jmp_buf = {-1220292620, 0, 4001536, 1254544440, -354192713, -488783540}, mask_was_saved = 0}}, ---Type <return> to continue, or q <return> to quit--- priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}} not_first_call = <optimized out> freesize = <optimized out> __PRETTY_FUNCTION__ = "start_thread" #19 0xb5c9896e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130 No locals. Backtrace stopped: Not enough registers or memory available to unwind further Thread 963 (Thread 0x434f7b70 (LWP 11227)): #0 0xb7fe2424 in __kernel_vsyscall () No symbol table info available. #1 0xb5c8af86 in *__GI___poll (fds=0xb5d21ff4, nfds=2, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:87 resultvar = <optimized out> oldtype = 0 result = <optimized out> #2 0xb59dbf5b in g_poll () from /lib/libglib-2.0.so.0 No symbol table info available. #3 0xb59cb96f in ?? () from /lib/libglib-2.0.so.0 No symbol table info available. #4 0xb59cbce4 in g_main_context_iteration () from /lib/libglib-2.0.so.0 No symbol table info available. ---Type <return> to continue, or q <return> to quit--- #5 0xb7d722f7 in QEventDispatcherGlib::processEvents (this=0x1d378330, flags=...) at kernel/qeventdispatcher_glib.cpp:422 d = 0x1adf8ed0 canWait = true savedFlags = {i = 0} result = <optimized out> #6 0xb7d430ed in QEventLoop::processEvents (this=0x434f72a0, flags=...) at kernel/qeventloop.cpp:149 d = 0x1a3d4500 #7 0xb7d43331 in QEventLoop::exec (this=0x434f72a0, flags=...) at kernel/qeventloop.cpp:201 d = 0x1a3d4500 app = 0x434f726c #8 0xb7c4669b in QThread::exec (this=0x19d52528) at thread/qthread.cpp:492 d = 0x1c67e038 locker = {val = 476569736} eventLoop = {<QObject> = {_vptr.QObject = 0xb7e7a608, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0xb7e060a0 "QObject", data = 0xb7e06140, extradata = 0xb7e75560}}, d_ptr = {d = 0x1a3d4500}, static staticQtMetaObject = {d = {superdata = 0x0, stringdata = 0xb7e0ec80 "Qt", data = 0xb7e12500, extradata = 0x0}}}, static staticMetaObject = {d = { ---Type <return> to continue, or q <return> to quit--- superdata = 0x8419440, stringdata = 0xb7e18400 "QEventLoop", data = 0xb7e18420, extradata = 0x0}}} returnCode = <optimized out> #9 0xb7d23c2d in QInotifyFileSystemWatcherEngine::run (this=0x19d52528) at io/qfilesystemwatcher_inotify.cpp:248 sn = {<QObject> = {_vptr.QObject = 0xb7e7a728, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0xb7e060a0 "QObject", data = 0xb7e06140, extradata = 0xb7e75560}}, d_ptr = {d = 0x1a90a998}, static staticQtMetaObject = {d = {superdata = 0x0, stringdata = 0xb7e0ec80 "Qt", data = 0xb7e12500, extradata = 0x0}}}, static staticMetaObject = {d = { superdata = 0x8419440, stringdata = 0xb7e19600 "QSocketNotifier", data = 0xb7e19640, extradata = 0x0}}, sockfd = 60, sntype = QSocketNotifier::Read, snenabled = true} #10 0xb7c49503 in QThreadPrivate::start (arg=0x19d52528) at thread/qthread_unix.cpp:320 __clframe = { __cancel_routine = 0xb7c48400 <QThreadPrivate::finish(void*)>, __cancel_arg = 0x19d52528, __do_it = 1, __cancel_type = <optimized out>} thr = 0x19d52528 ---Type <return> to continue, or q <return> to quit--- data = 0x1b738df0 #11 0xb742cc39 in start_thread (arg=0x434f7b70) at pthread_create.c:304 __res = <optimized out> __ignore1 = <optimized out> __ignore2 = <optimized out> pd = 0x434f7b70 now = <optimized out> unwind_buf = {cancel_jmp_buf = {{jmp_buf = {-1220292620, 0, 4001536, 1129280568, -106728796, -488783540}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}} not_first_call = <optimized out> freesize = <optimized out> __PRETTY_FUNCTION__ = "start_thread" #12 0xb5c9896e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130 No locals. Backtrace stopped: Not enough registers or memory available to unwind further Thread 2 (Thread 0xb4a48b70 (LWP 8903)): #0 0xb7fe2424 in __kernel_vsyscall () No symbol table info available. #1 0xb5c8af86 in *__GI___poll (fds=0xb5d21ff4, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:87 ---Type <return> to continue, or q <return> to quit--- resultvar = <optimized out> oldtype = 0 result = <optimized out> #2 0xb59dbf5b in g_poll () from /lib/libglib-2.0.so.0 No symbol table info available. #3 0xb59cb96f in ?? () from /lib/libglib-2.0.so.0 No symbol table info available. #4 0xb59cc0f3 in g_main_loop_run () from /lib/libglib-2.0.so.0 No symbol table info available. #5 0xb4b81274 in ?? () from /usr/lib/libgio-2.0.so.0 No symbol table info available. #6 0xb59f4b6f in ?? () from /lib/libglib-2.0.so.0 No symbol table info available. #7 0xb742cc39 in start_thread (arg=0xb4a48b70) at pthread_create.c:304 __res = <optimized out> __ignore1 = <optimized out> __ignore2 = <optimized out> pd = 0xb4a48b70 now = <optimized out> unwind_buf = {cancel_jmp_buf = {{jmp_buf = {-1220292620, 0, 4001536, -1264286664, 776172363, -488783540}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}} ---Type <return> to continue, or q <return> to quit--- not_first_call = <optimized out> freesize = <optimized out> __PRETTY_FUNCTION__ = "start_thread" #8 0xb5c9896e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130 No locals. Backtrace stopped: Not enough registers or memory available to unwind further Thread 1 (Thread 0xb4ddf940 (LWP 8882)): #0 0xb7fe2424 in __kernel_vsyscall () No symbol table info available. #1 0xb5c90dd6 in __libc_writev (fd=-1244520460, vector=0xbfffe9f8, count=3) at ../sysdeps/unix/sysv/linux/writev.c:56 resultvar = <optimized out> oldtype = 0 result = <optimized out> #2 0xb563b555 in ?? () from /usr/lib/i386-linux-gnu/libxcb.so.1 No symbol table info available. #3 0xb563ba7c in ?? () from /usr/lib/i386-linux-gnu/libxcb.so.1 No symbol table info available. #4 0xb563bb31 in xcb_writev () from /usr/lib/i386-linux-gnu/libxcb.so.1 No symbol table info available. #5 0xb7081510 in _XSend () from /usr/lib/i386-linux-gnu/libX11.so.6 No symbol table info available. ---Type <return> to continue, or q <return> to quit--- #6 0xb70818f8 in _XEventsQueued () from /usr/lib/i386-linux-gnu/libX11.so.6 No symbol table info available. #7 0xb7072008 in XEventsQueued () from /usr/lib/i386-linux-gnu/libX11.so.6 No symbol table info available. #8 0xb60cb543 in x11EventSourcePrepare (s=0x843bb40, timeout=0xbfffeadc) at kernel/qguieventdispatcher_glib.cpp:77 source = 0x843bb40 #9 0xb59ca74e in g_main_context_prepare () from /lib/libglib-2.0.so.0 No symbol table info available. #10 0xb59cb613 in ?? () from /lib/libglib-2.0.so.0 No symbol table info available. #11 0xb59cbce4 in g_main_context_iteration () from /lib/libglib-2.0.so.0 No symbol table info available. #12 0xb7d722f7 in QEventDispatcherGlib::processEvents (this=0x841b400, flags=...) at kernel/qeventdispatcher_glib.cpp:422 d = 0x843ac70 canWait = true savedFlags = {i = 0} result = <optimized out> #13 0xb60cb6fa in QGuiEventDispatcherGlib::processEvents (this=0x841b400, flags=...) at kernel/qguieventdispatcher_glib.cpp:204 d = 0x8438278 saved_flags = {i = 0} ---Type <return> to continue, or q <return> to quit--- returnValue = 180 #14 0xb7d430ed in QEventLoop::processEvents (this=0xbfffecd4, flags=...) at kernel/qeventloop.cpp:149 d = 0x8434e30 #15 0xb7d43331 in QEventLoop::exec (this=0xbfffecd4, flags=...) at kernel/qeventloop.cpp:201 d = 0x8434e30 app = 0xbfffec8c #16 0xb7d47a8a in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1008 threadData = 0x841a6f0 eventLoop = {<QObject> = {_vptr.QObject = 0xb7e7a608, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0xb7e060a0 "QObject", data = 0xb7e06140, extradata = 0xb7e75560}}, d_ptr = {d = 0x8434e30}, static staticQtMetaObject = {d = {superdata = 0x0, stringdata = 0xb7e0ec80 "Qt", data = 0xb7e12500, extradata = 0x0}}}, static staticMetaObject = {d = { superdata = 0x8419440, stringdata = 0xb7e18400 "QEventLoop", data = 0xb7e18420, extradata = 0x0}}} returnCode = <optimized out> #17 0xb6014624 in QApplication::exec () at kernel/qapplication.cpp:3741 No locals. #18 0x0808985d in main (argc=138754784, argv=0x22b4) ---Type <return> to continue, or q <return> to quit--- at /home/mcfrisk/src/kdenlive-git/src/main.cpp:89 aboutData = {d = 0x8421628} app = <incomplete type> window = <optimized out> __PRETTY_FUNCTION__ = "int main(int, char**)" options = {d = 0x8434bb0} result = <optimized out> (gdb) |
From: Dan D. <da...@de...> - 2011-10-11 21:16:21
|
On Tue, Oct 11, 2011 at 2:05 PM, Mikko Rapeli <mik...@ik...> wrote: > Previewed clip without proxy and then enabled proxy back on in kdenlive. > I think context can be NULL after return from pthread_mutex_lock() at any > time and that would need to be checked everywhere. It should definitely not be the case that context can be NULL anywhere anytime. There is somehow inconsistent state introduced. Once again, the crash stems from KThumb. -- +-DRD-+ |
From: Dan D. <da...@de...> - 2011-10-12 02:47:28
|
On Tue, Oct 11, 2011 at 2:16 PM, Dan Dennedy <da...@de...> wrote: > On Tue, Oct 11, 2011 at 2:05 PM, Mikko Rapeli <mik...@ik...> wrote: >> Previewed clip without proxy and then enabled proxy back on in kdenlive. >> I think context can be NULL after return from pthread_mutex_lock() at any >> time and that would need to be checked everywhere. > > It should definitely not be the case that context can be NULL anywhere > anytime. There is somehow inconsistent state introduced. Once again, > the crash stems from KThumb. Mikko, I think my mailbox is missing the latest posts on this thread! Nonetheless, I did some analysis and here are some findings: - The frames produced by avformat do indeed add a reference to the avformat "guts." So, the idea of an "old" frame does not apply as the reference prevents the producer's guts from being flushed from the cache. - Kdenlive does not call mlt_service_cache_set_size(). Rather, I added it to mlt_multitrack to provide a universal solution. However, that size does not take into account additional usage of avformat producers outside of a multitrack composition. - If VDPAU is enabled (mlt ./configure --avformat-vdpau required), then the producer restricts itself to 5 active instances due to limited GPU resources. It *might* be possible to overrun the cache size if you are using VDPAU playing a timeline that has 4 clips (including music) active at the same point in time on the timeline and 2 KThumb threads are running. Likewise, without VDPAU, and on a 8-core, you could overrun the avformat cache size with multiple clips mixing and thumbnailing. More likely there is some race condition. I will do some more of my own testing with Kdenlive. Have to admit I have not been using it much lately due to various projects and tasks. |
From: Dan D. <da...@de...> - 2011-09-29 20:40:53
|
On Thu, Sep 29, 2011 at 1:18 PM, Mikko Rapeli <mik...@ik...> wrote: > http://www.kdenlive.org/mantis/view.php?id=2326 > > Program received signal SIGSEGV, Segmentation fault. > [Switching to Thread 0x3fa37b70 (LWP 31106)] > 0xb0e1852a in producer_get_image (frame=0x93c98e0, buffer=0x3fa3731c, > format=0x3fa37310, width=0x3fa370c4, height=0x3fa370c8, writable=0) > at producer_avformat.c:1319 > 1319 int must_decode = strcmp( codec_context->codec->name, "dnxhd" ) && > --- > > src/modules/avformat/producer_avformat.c | 4 ++-- > 1 files changed, 2 insertions(+), 2 deletions(-) > > v0: Missed this from the patch series that I've been running for a while. > > diff --git a/src/modules/avformat/producer_avformat.c b/src/modules/avformat/producer_avformat.c > index ed9bf0c..194fb15 100644 > --- a/src/modules/avformat/producer_avformat.c > +++ b/src/modules/avformat/producer_avformat.c > @@ -1885,13 +1885,13 @@ static void producer_set_up_video( producer_avformat self, mlt_frame frame ) > { > // Reset the video properties if the index changed > self->video_index = index; > + avformat_lock(); > if ( self->video_codec ) > { > - avformat_lock(); > avcodec_close( self->video_codec ); > - avformat_unlock(); > } > self->video_codec = NULL; > + avformat_unlock(); > } Now it is just like that audio patch from the kdenlive ticket. :-) Indeed, it looks like usage of self->audio_mutex and self->video_mutex might fix a race condition on self->video_codec and be more appropriate. (avformat_lock works here because it is basically global scope). -- +-DRD-+ |
From: Dan D. <da...@de...> - 2011-09-29 20:58:01
|
On Thu, Sep 29, 2011 at 1:40 PM, Dan Dennedy <da...@de...> wrote: > On Thu, Sep 29, 2011 at 1:18 PM, Mikko Rapeli <mik...@ik...> wrote: >> http://www.kdenlive.org/mantis/view.php?id=2326 >> >> Program received signal SIGSEGV, Segmentation fault. >> [Switching to Thread 0x3fa37b70 (LWP 31106)] >> 0xb0e1852a in producer_get_image (frame=0x93c98e0, buffer=0x3fa3731c, >> format=0x3fa37310, width=0x3fa370c4, height=0x3fa370c8, writable=0) >> at producer_avformat.c:1319 >> 1319 int must_decode = strcmp( codec_context->codec->name, "dnxhd" ) && >> --- >> >> src/modules/avformat/producer_avformat.c | 4 ++-- >> 1 files changed, 2 insertions(+), 2 deletions(-) >> >> v0: Missed this from the patch series that I've been running for a while. >> >> diff --git a/src/modules/avformat/producer_avformat.c b/src/modules/avformat/producer_avformat.c >> index ed9bf0c..194fb15 100644 >> --- a/src/modules/avformat/producer_avformat.c >> +++ b/src/modules/avformat/producer_avformat.c >> @@ -1885,13 +1885,13 @@ static void producer_set_up_video( producer_avformat self, mlt_frame frame ) >> { >> // Reset the video properties if the index changed >> self->video_index = index; >> + avformat_lock(); >> if ( self->video_codec ) >> { >> - avformat_lock(); >> avcodec_close( self->video_codec ); >> - avformat_unlock(); >> } >> self->video_codec = NULL; >> + avformat_unlock(); >> } > > Now it is just like that audio patch from the kdenlive ticket. :-) > Indeed, it looks like usage of self->audio_mutex and self->video_mutex > might fix a race condition on self->video_codec and be more > appropriate. (avformat_lock works here because it is basically global > scope). Despite this argument, I decided to just use your approach of very slightly expanding avformat_lock/unlock. After all, the result is less cluttered than 2 sets of locks and is shown to work for you. -- +-DRD-+ |
From: Mikko R. <mik...@ik...> - 2011-10-11 21:57:27
|
On Tue, Oct 11, 2011 at 02:16:14PM -0700, Dan Dennedy wrote: > On Tue, Oct 11, 2011 at 2:05 PM, Mikko Rapeli <mik...@ik...> wrote: > > Previewed clip without proxy and then enabled proxy back on in kdenlive. > > I think context can be NULL after return from pthread_mutex_lock() at any > > time and that would need to be checked everywhere. > > It should definitely not be the case that context can be NULL anywhere > anytime. There is somehow inconsistent state introduced. Once again, > the crash stems from KThumb. Tried to move cursor on timeline when thumnails were created with latest kdenlive and mlt from git and got this: Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 0xad2c5b70 (LWP 17943)] 0x9198c01c in ?? () (gdb) thread apply all bt full Thread 12 (Thread 0x790bfb70 (LWP 17977)): #0 0xb7fe2424 in __kernel_vsyscall () No symbol table info available. #1 0xb7431703 in pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/pthread_cond_timedwait.S:236 No locals. #2 0xb7fb05b7 in mlt_consumer_put_frame (self=0x9012cc8, frame=0x194c5e20) at mlt_consumer.c:490 now = {tv_sec = 1318369579, tv_usec = 775860} tm = {tv_sec = 1318369580, tv_nsec = 775860000} service = 0x9012cc8 #3 0xb14f50ea in consumer_thread (arg=0x9058308) at consumer_sdl_preview.c:404 producer = 0x11710188 duration = <optimized out> pause = <optimized out> speed = 0 refresh = <optimized out> this = 0x9058308 consumer = 0x9058308 properties = 0x9058308 frame = 0x194c5e20 ---Type <return> to continue, or q <return> to quit--- last_position = -1 eos = 0 eos_threshold = 45 preview_off = 0 #4 0xb742cc39 in start_thread (arg=0x790bfb70) at pthread_create.c:304 __res = <optimized out> __ignore1 = <optimized out> __ignore2 = <optimized out> pd = 0x790bfb70 now = <optimized out> unwind_buf = {cancel_jmp_buf = {{jmp_buf = {-1220292620, 0, 4001536, 2030826552, 1764098593, -78073411}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}} not_first_call = <optimized out> freesize = <optimized out> __PRETTY_FUNCTION__ = "start_thread" #5 0xb5c9896e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130 No locals. Backtrace stopped: Not enough registers or memory available to unwind further Thread 11 (Thread 0x85511b70 (LWP 17976)): #0 yuv2yuyv422_1_c (c=0x5328e260, buf0=0x4fd95740, ubuf=0x53773748, ---Type <return> to continue, or q <return> to quit--- vbuf=0x530e5b08, abuf0=0x0, dest=0x76cd9c30 "f\177g~f\177h~g\177g~g\177f~g\200g~g\200h~h\200i~j\200i~g\200h}h\200h}h\200i}i\200h}g\200i}i\200j}k\200k}k\200k}k\200j~j\200k~m\200m~l\200l~l\200l~k\200l~m\200n~m\200m~m\200m~m\200m~n\200n~o\200o~o\200o~p\200p~o\200q~q\200p~o\200o~n\177n~p\177p~p\177p~p\177q~q\177q~q\177p~p\177p~o\200o~o\200p~r\200r~r\200r~p\200p~p\200p~r\200r~r\200r~r\177r~q\177r~"..., dstW=1280, uvalpha=3072, y=718) at libswscale/swscale.c:931 No locals. #1 0xb01e8a96 in swScale (c=0x5328e260, src=0x85510b50, srcStride=0x85510b70, srcSliceY=0, srcSliceH=720, dst=0x85510b60, dstStride=0x85510b80) at libswscale/swscale.c:2742 chrAlpha = 3072 lumSrcPtr = 0x534cc188 chrUSrcPtr = 0x53773748 chrVSrcPtr = 0x530e5b08 alpSrcPtr = <optimized out> chrDstY = 718 dest = { 0x76cd9c30 "f\177g~f\177h~g\177g~g\177f~g\200g~g\200h~h\200i~j\200i~g\200h}h\200h}h\200i}i\200h}g\200i}i\200j}k\200k}k\200k}k\200j~j\200k~m\200m~l\200l~l\200l~k\200l~m\200n~m\200m~m\200m~m\200m~n\200n~o\200o~o\200o~p\200p~o\200q~q\200p~o\200o~n\177n~p\177p~p\177p~p\177q~q\177q~q\177p~p\177p~o\200o~o\200p~r\200r~r\200r~p\200p~p\200p~r\200r~r\200r~r\177r~q\177r~"..., 0x0, 0x0, 0x0} ---Type <return> to continue, or q <return> to quit--- firstLumSrcY2 = <optimized out> firstChrSrcY = 358 lastLumSrcY = 718 enough_lines = <optimized out> firstLumSrcY = 718 lastLumSrcY2 = <optimized out> lastChrSrcY = 359 srcW = 1280 dstW = 1280 dstH = 720 chrDstW = 640 chrSrcW = 640 lumXInc = 65536 chrXInc = 65536 dstFormat = PIX_FMT_YUYV422 flags = <optimized out> vLumFilterPos = 0x53783b00 vChrFilterPos = 0x5378d120 hLumFilterPos = 0x532cf8e0 hChrFilterPos = 0x53bf1a80 vLumFilter = 0x53292ce0 vChrFilter = 0x531f6440 hLumFilter = 0x530e5b60 ---Type <return> to continue, or q <return> to quit--- hChrFilter = 0x530e95c0 lumMmxFilter = 0x5328fbf8 chrMmxFilter = 0x53290bf8 alpMmxFilter = 0x53291c28 vLumFilterSize = 1 vChrFilterSize = 2 hLumFilterSize = 4 hChrFilterSize = 4 lumPixBuf = 0x534cc180 chrUPixBuf = 0x53773740 chrVPixBuf = 0x530e5b00 alpPixBuf = 0x0 vLumBufSize = 2 vChrBufSize = 2 formatConvBuffer = 0x532ee7e0 "" chrSrcSliceY = 0 chrSrcSliceH = 360 pal = 0x5328e2d4 should_dither = <optimized out> yuv2yuv1 = 0xb01da070 <yuv2yuv1_c> yuv2yuvX = 0xb01d9e30 <yuv2yuvX_c> yuv2packed1 = 0xb01db410 <yuv2yuyv422_1_c> yuv2packed2 = 0xb01db2f0 <yuv2yuyv422_2_c> ---Type <return> to continue, or q <return> to quit--- yuv2packedX = 0xb01db120 <yuv2yuyv422_X_c> dstY = 718 lumBufIndex = 0 chrBufIndex = 1 lastInLumBuf = <optimized out> lastInChrBuf = <optimized out> #2 0xb01edd40 in sws_scale (c=0x5328e260, srcSlice=0x52fe7980, srcStride=0x52fe7990, srcSliceY=0, srcSliceH=720, dst=0x85510cfc, dstStride=0x85510d0c) at libswscale/swscale_unscaled.c:807 srcStride2 = {1312, 656, 656, 0} dstStride2 = {2560, 0, 0, 0} i = <optimized out> src2 = { 0x67992230 "\202\201\177\201{{xwuvwyvwtuousrnpnrnokjc_`c`feklqmqnllnmnnppoqqppputppooqqqqrqploqroopsswsvpvty{\206\212\223\224\246\244\244\242\241\237\237\241\237\235\240\245\250\252\252\261\254\252\244\241\231\225\220\214\220\224\240\236\241\235\225\221\215\216\210\210\202\211\235\235\241\240\236\234\244\261\272\276\303\300\302\300\304\304\302\300\303\302\301\276\276\277\276\273\270\267\273\274\277\300\302\301\301\304\307\303ÿ\277\302\302\304\305\303\305\303\303\303\301\300\276\267\273\267\267\267\267\265\264\261\261\261\264\266\265\264\263\265\262\255\254"..., 0x515014c8 "\202\203\202\201\203\204\203\202\203\203\203\203\205\206\207\210\211\210\207\205\207\210\210\210\210\210\210\210\207\207\210\210\207\207\2---Type <return> to continue, or q <return> to quit--- 07\210\213\214\215\216\214\214\213\210\205\202\202\202\177\177~|yz|\201\205\206\204\202\210\211\212\212\206\205\203\202\201\200\177~~~}}~~\177\177\200~}}}||||}}}~~\177\200\200\201\201\201\201\201\201\200\177\200\200\200\200\200\200\200\200\200\200\200\177\177~~~~~~~~~}~}}}}}}~~\177\177\177\177\177~~~~~}}~~}}}}}~~~~}}}}}}~~~~~~~~~\177\177\200\200\177}}}|}~\177\201\203\203\202\201\177\177\177~~~~~"..., 0x5153efa8 "zzzzxxxxyzyyzzzzyxxxvuuuvwvvxwwwvuwwwwwuuttuvxyyyyyy{{{{zyxxwwxyyyzz||||{{{{~||{z|||{{{{||}{{{{{{zzzz", '{' <repeats 11 times>, "zzzz{{{{|}", '~' <repeats 11 times>, "}}|{{{z|||||{{{|}}}}}}}~~}}}}}}||{{||||{{{{{|}|||||}||{zz{{{{|}}~~~"..., 0x0} dst2 = { 0x76b19030 "\202\202\201z\177\203\201z{\202{zx\201wzu\203vxw\204yxv\203wxt\202uxo\203uys\203rzn\203pyn\203ryn\205ozk\206jzc\207_z`\210cz`\211fye\210kxl\207qxm\205qxn\207lvl\210num\210nun\210pup\210ovq\210qwp\210pvp\210uvt\207pxp\207owo\210qwq\210qwq\207rvq\207pul\207owq\210rwo\213owp\214sws\215wws\216vup\214vut\214yt{\213\206t\212\210\223u\224\205\246v\244\202\244x\242\202\241y\237\202\237y\241\177\237y\235\177\240y"..., 0x0, 0x0, 0x0} #3 0xb0f1b468 in convert_image (colorspace=709, height=720, width=<optimized out>, format=0x85511310, pix_fmt=<optimized out>, buffer=0x76b19030 "\202\202\201z\177\203\201z{\202{zx\201wzu\203vxw\204yxv\203wxt\202uxo\203uys\203rzn\203pyn\203ryn\205ozk\206jzc\207_z`\210cz`\211fye\210kxl\207qxm\205qxn\207lvl\210num\210nun\210pup\210ovq\210qwp\210pvp\210uvt\207pxp\207owo\210qwq\210qwq\207rvq\207pul\207owq\210rwo\213owp\214sws\215wws\216vup\214---Type <return> to continue, or q <return> to quit--- vut\214yt{\213\206t\212\210\223u\224\205\246v\244\202\244x\242\202\241y\237\202\237y\241\177\237y\235\177\240y"..., frame=0x52fe7980) at producer_avformat.c:1170 output = {data = { 0x76b19030 "\202\202\201z\177\203\201z{\202{zx\201wzu\203vxw\204yxv\203wxt\202uxo\203uys\203rzn\203pyn\203ryn\205ozk\206jzc\207_z`\210cz`\211fye\210kxl\207qxm\205qxn\207lvl\210num\210nun\210pup\210ovq\210qwp\210pvp\210uvt\207pxp\207owo\210qwq\210qwq\207rvq\207pul\207owq\210rwo\213owp\214sws\215wws\216vup\214vut\214yt{\213\206t\212\210\223u\224\205\246v\244\202\244x\242\202\241y\237\202\237y\241\177\237y\235\177\240y"..., 0x0, 0x0, 0x0}, linesize = {2560, 0, 0, 0}} full_range = -1 flags = 262146 #4 producer_get_image (frame=0x9442b80, buffer=0x8551131c, format=0x85511310, width=0x85510ff4, height=0x85510ff8, writable=0) at producer_avformat.c:1577 ret = 89292 int_position = 494 decode_errors = 0 got_picture = 264 self = 0x591326a0 producer = 0xdf6d770 frame_properties = 0x9442b80 ---Type <return> to continue, or q <return> to quit--- position = 247 properties = 0xdf6d770 context = 0x52196740 stream = 0x52196c40 codec_context = 0x52196e00 image_size = <optimized out> pkt = {pts = 746245, dts = 741740, data = 0x4f8b9860 "", size = 89292, stream_index = 0, flags = 0, side_data = 0x0, side_data_elems = 0, duration = 0, destruct = 0xb0320180 <av_destruct_packet>, priv = 0x85510bbc, pos = 15729065, convergence_duration = 0} ignore = <optimized out> source_fps = 59.940059940059939 req_position = 494 must_decode = 1 use_new_seek = 0 paused = 720 #5 0xb7fa0886 in mlt_frame_get_image (self=0x9442b80, buffer=0x8551131c, format=0x85511310, width=0x85510ff4, height=0x85510ff8, writable=0) at mlt_frame.c:453 properties = 0x9442b80 get_image = 0xb0f1a180 <producer_get_image> producer = <optimized out> requested_format = mlt_image_yuv422 ---Type <return> to continue, or q <return> to quit--- error = 0 #6 0xad9f43b8 in filter_get_image (this=0x9442b80, image=0x8551131c, format=0x85511310, width=0x85510ff4, height=0x85510ff8, writable=0) at filter_crop.c:76 error = 0 properties = 0x9442b80 left = 0 right = 0 top = 0 bottom = 0 owidth = <optimized out> oheight = <optimized out> #7 0xb7fa0886 in mlt_frame_get_image (self=0x9442b80, buffer=0x8551131c, format=0x85511310, width=0x85510ff4, height=0x85510ff8, writable=0) at mlt_frame.c:453 properties = 0x9442b80 get_image = 0xad9f42d0 <filter_get_image> producer = <optimized out> requested_format = mlt_image_yuv422 error = 0 #8 0xb146606e in filter_get_image (this=0x9442b80, image=0x8551131c, format=0x85511310, width=0x85510ff4, height=0x85510ff8, writable=0) at filter_deinterlace.c:239 ---Type <return> to continue, or q <return> to quit--- service = <optimized out> method_str = <optimized out> method = <optimized out> frame_method_str = <optimized out> error = <optimized out> properties = 0x9442b80 deinterlace = 1 progressive = <optimized out> filter = 0xe5044f0 #9 0xb7fa0886 in mlt_frame_get_image (self=0x9442b80, buffer=0x8551131c, format=0x85511310, width=0x85510ff4, height=0x85510ff8, writable=0) at mlt_frame.c:453 properties = 0x9442b80 get_image = 0xb1465ea0 <filter_get_image> producer = <optimized out> requested_format = mlt_image_rgb24a error = 0 #10 0xad9fa14d in filter_get_image (this=0x9442b80, image=0x8551131c, format=0x85511310, width=0x85511100, height=0x85511104, writable=0) at filter_rescale.c:215 interps = <optimized out> iwidth = 1280 iheight = 720 ---Type <return> to continue, or q <return> to quit--- factor = 1 oheight = 720 error = 0 properties = 0x9442b80 filter = 0xdf5ee78 filter_properties = 0xdf5ee78 scaler_method = 0xb0f15cb0 <filter_scale> #11 0xb7fa0886 in mlt_frame_get_image (self=0x9442b80, buffer=0x8551131c, format=0x85511310, width=0x85511100, height=0x85511104, writable=0) at mlt_frame.c:453 properties = 0x9442b80 get_image = 0xad9f9ed0 <filter_get_image> producer = <optimized out> requested_format = mlt_image_rgb24a error = 0 #12 0xad9fa7ca in filter_get_image (this=0x9442b80, image=0x8551131c, format=0x85511310, width=0x85511314, height=0x85511318, writable=0) at filter_resize.c:267 error = 0 properties = 0x9442b80 filter = 0xe6a1080 aspect_ratio = 1.0000000000001599 consumer_aspect = 1 ---Type <return> to continue, or q <return> to quit--- owidth = 1280 oheight = 720 rescale = <optimized out> #13 0xb7fa0886 in mlt_frame_get_image (self=0x9442b80, buffer=0x8551131c, format=0x85511310, width=0x85511314, height=0x85511318, writable=0) at mlt_frame.c:453 properties = 0x9442b80 get_image = 0xad9fa630 <filter_get_image> producer = <optimized out> requested_format = mlt_image_rgb24a error = 0 #14 0xb7fb461a in producer_get_image (self=0x19929a38, buffer=0x8551131c, format=0x85511310, width=0x85511314, height=0x85511318, writable=0) at mlt_tractor.c:276 data = 0x0 size = 0 properties = 0x19929a38 frame = 0x9442b80 frame_properties = 0x9442b80 #15 0xb7fa0886 in mlt_frame_get_image (self=0x19929a38, buffer=0x8551131c, format=0x85511310, width=0x85511314, height=0x85511318, writable=0) at mlt_frame.c:453 properties = 0x19929a38 ---Type <return> to continue, or q <return> to quit--- get_image = 0xb7fb4460 <producer_get_image> producer = <optimized out> requested_format = mlt_image_rgb24a error = 0 #16 0xb14f5e16 in consumer_play_video (frame=0x19929a38, this=0x9012cc8) at consumer_sdl_still.c:477 height = 720 width = 1280 unlock = 0 properties = 0x9012cc8 lock = <optimized out> screen = <optimized out> vfmt = mlt_image_yuv422 image = 0x76b19030 "\202\202\201z\177\203\201z{\202{zx\201wzu\203vxw\204yxv\203wxt\202uxo\203uys\203rzn\203pyn\203ryn\205ozk\206jzc\207_z`\210cz`\211fye\210kxl\207qxm\205qxn\207lvl\210num\210nun\210pup\210ovq\210qwp\210pvp\210uvt\207pxp\207owo\210qwq\210qwq\207rvq\207pul\207owq\210rwo\213owp\214sws\215wws\216vup\214vut\214yt{\213\206t\212\210\223u\224\205\246v\244\202\244x\242\202\241y\237\202\237y\241\177\237y\235\177\240y"... changed = <optimized out> display_ratio = 1.7777777777777777 #17 consumer_thread (arg=0x9012cc8) at consumer_sdl_still.c:577 this = 0x9012cc8 ---Type <return> to continue, or q <return> to quit--- consumer = 0x9012cc8 properties = 0x9012cc8 frame = 0x19929a38 preview_off = 0 #18 0xb742cc39 in start_thread (arg=0x85511b70) at pthread_create.c:304 __res = <optimized out> __ignore1 = <optimized out> __ignore2 = <optimized out> pd = 0x85511b70 now = <optimized out> unwind_buf = {cancel_jmp_buf = {{jmp_buf = {-1220292620, 0, 4001536, -2058283976, -588905511, -78073411}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}} not_first_call = <optimized out> freesize = <optimized out> __PRETTY_FUNCTION__ = "start_thread" #19 0xb5c9896e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130 No locals. Backtrace stopped: Not enough registers or memory available to unwind further Thread 10 (Thread 0xad2c5b70 (LWP 17943)): #0 0x9198c01c in ?? () ---Type <return> to continue, or q <return> to quit--- No symbol table info available. #1 0xb0eeb720 in ?? () from /usr/lib/i386-linux-gnu/i686/cmov/libavformat.so.53 No symbol table info available. #2 0xb0e7c6a0 in ?? () from /usr/lib/i386-linux-gnu/i686/cmov/libavformat.so.53 No symbol table info available. Backtrace stopped: previous frame inner to this frame (corrupt stack?) Thread 9 (Thread 0xacac4b70 (LWP 17942)): #0 __memcpy_ia32 () at ../sysdeps/i386/i686/multiarch/../memcpy.S:100 No locals. #1 0xb0e1e614 in avio_read (s=0x50dc2f80, buf=0x522a90d4 "\230\224", <incomplete sequence \330>, size=<optimized out>) at libavformat/aviobuf.c:663 len = <optimized out> size1 = 25768 #2 0xb0ea6d74 in av_get_packet (s=0x50dc2f80, pkt=0xacac3a9c, size=25768) at libavformat/utils.c:277 ret = <optimized out> #3 0xb0e4bcd2 in mov_read_packet (s=0x50dc29e0, pkt=0xacac3a9c) at libavformat/mov.c:2497 mov = 0x50dc2fe0 ---Type <return> to continue, or q <return> to quit--- sc = 0x512af980 st = 0x50dae440 ret = <optimized out> #4 0xb0ea7b13 in av_read_packet (s=0x50dc29e0, pkt=0xacac3a9c) at libavformat/utils.c:738 pktl = <optimized out> ret = <optimized out> i = <optimized out> st = <optimized out> #5 0xb0ea8a1e in read_frame_internal (s=0x50dc29e0, pkt=0xacac3d98) at libavformat/utils.c:1205 cur_pkt = {pts = -9223372036854775808, dts = -9223372036854775808, data = 0x522a4880 "", size = 25768, stream_index = 0, flags = 0, side_data = 0x0, side_data_elems = 0, duration = 0, destruct = 0xb0320180 <av_destruct_packet>, priv = 0xffffffff, pos = 144161, convergence_duration = 0} st = <optimized out> len = <optimized out> ret = <optimized out> i = <optimized out> __PRETTY_FUNCTION__ = "read_frame_internal" #6 0xb0eaab4d in avformat_find_stream_info (ic=0x50dc29e0, options=0x0) at libavformat/utils.c:2380 ---Type <return> to continue, or q <return> to quit--- i = <optimized out> count = 2 ret = <optimized out> read_size = 111385 j = <optimized out> st = <optimized out> pkt1 = {pts = -9223372036854775808, dts = -9223372036854775808, data = 0x4e879b60 "! \005 \244\033\377\300", size = 341, stream_index = 0, flags = 0, side_data = 0x0, side_data_elems = 0, duration = 0, destruct = 0, priv = 0xffffffff, pos = -1, convergence_duration = 0} pkt = <optimized out> old_offset = 32776 orig_nb_streams = 2 __PRETTY_FUNCTION__ = "avformat_find_stream_info" #7 0xb0eac1d7 in av_find_stream_info (ic=0x50dc29e0) at libavformat/utils.c:2269 No locals. #8 0xb0f17b63 in get_basic_info ( filename=0x520def30 "/media/8ee32396-c6f7-4db2-b497-4a331e891644/ransu/videot/alppireissu_2011/20110304_pragellato/GOPR0049_ladunavausta.MP4", profile=0x525acbc8, self=0x512b0860) at producer_avformat.c:689 error = 0 ---Type <return> to continue, or q <return> to quit--- properties = 0x51eb5e00 format = 0x50dc29e0 fps = 30 #9 producer_open (self=0x512b0860, profile=0x525acbc8, URL=0x4e87d7b0 "/media/8ee32396-c6f7-4db2-b497-4a331e891644/ransu/videot/alppireissu_2011/20110304_pragellato/GOPR0049_ladunavausta.MP4", take_lock=1) at producer_avformat.c:790 error = <optimized out> properties = 0x51eb5e00 format = 0x51eb5e00 params = {time_base = {num = 0, den = 0}, sample_rate = 0, channels = 0, width = 0, height = 0, pix_fmt = PIX_FMT_YUV420P, channel = 0, standard = 0x0, mpeg2ts_raw = 0, mpeg2ts_compute_pcr = 0, initial_pause = 0, prealloced_context = 0} filename = 0x520def30 "/media/8ee32396-c6f7-4db2-b497-4a331e891644/ransu/videot/alppireissu_2011/20110304_pragellato/GOPR0049_ladunavausta.MP4" #10 0xb0f18b70 in producer_set_up_video (frame=0x5a5c85e8, self=0x512b0860) at producer_avformat.c:1863 producer = 0x51eb5e00 context = <optimized out> properties = 0x51eb5e00 index = 0 frame_properties = <optimized out> ---Type <return> to continue, or q <return> to quit--- #11 producer_get_frame (producer=0x51eb5e00, frame=0xacac4168, index=0) at producer_avformat.c:2525 service = 0x51eb5e00 cache_item = <optimized out> self = 0x512b0860 position = <optimized out> #12 0xb7fab70f in producer_get_frame (service=0x51eb5e00, frame=0xacac4168, index=0) at mlt_producer.c:584 properties = 0x51eb5e00 eof = <optimized out> speed = 1 clone = <optimized out> result = 1 self = 0x51eb5e00 #13 0xb7fa9620 in mlt_service_get_frame (self=0x51eb5e00, frame=0xacac4168, index=0) at mlt_service.c:457 properties = 0x51eb5e00 in = 0 out = 402 position = 0 result = 0 #14 0xb7f90213 in Mlt::Service::get_frame (this=0xacac41e4, index=0) at MltService.cpp:95 ---Type <return> to continue, or q <return> to quit--- frame = 0x5a5c85e8 result = 0xb7f8db37 #15 0x081bc5ca in KThumb::slotCreateAudioThumbs (this=0xa1b17c0) at /home/mcfrisk/src/kdenlive-git/src/kthumb.cpp:425 mlt_frame = <optimized out> z = 0 producer = {<Mlt::Service> = {<Mlt::Properties> = { _vptr.Properties = 0xb7f971f8, instance = 0x0}, instance = 0x0}, instance = 0x51eb5e00, parent_ = 0x0} __PRETTY_FUNCTION__ = "void KThumb::slotCreateAudioThumbs()" last_val = 0 val = 0 prof = {instance = 0x525acbc8} #16 0x080e727c in run (this=0x9a760c0) at /usr/include/qt4/QtCore/qtconcurrentrunbase.h:120 No locals. #17 QtConcurrent::RunFunctionTask<void>::run (this=0x9a760c0) at /usr/include/qt4/QtCore/qtconcurrentrunbase.h:114 No locals. #18 0xb7c3c7f1 in QThreadPoolThread::run (this=0x18886a98) at concurrent/qthreadpool.cpp:106 r = 0x9a760c8 expired = <optimized out> ---Type <return> to continue, or q <return> to quit--- locker = {val = 411576336} #19 0xb7c49503 in QThreadPrivate::start (arg=0x18886a98) at thread/qthread_unix.cpp:320 __clframe = { __cancel_routine = 0xb7c48400 <QThreadPrivate::finish(void*)>, __cancel_arg = 0x18886a98, __do_it = 1, __cancel_type = <optimized out>} thr = 0x18886a98 data = 0x18882a98 #20 0xb742cc39 in start_thread (arg=0xacac4b70) at pthread_create.c:304 __res = <optimized out> __ignore1 = <optimized out> __ignore2 = <optimized out> pd = 0xacac4b70 now = <optimized out> unwind_buf = {cancel_jmp_buf = {{jmp_buf = {-1220292620, 0, 4001536, -1397996488, 642122634, -78073411}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}} not_first_call = <optimized out> freesize = <optimized out> __PRETTY_FUNCTION__ = "start_thread" #21 0xb5c9896e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130 ---Type <return> to continue, or q <return> to quit--- No locals. Backtrace stopped: Not enough registers or memory available to unwind further Thread 2 (Thread 0xb4a48b70 (LWP 17921)): #0 0xb7fe2424 in __kernel_vsyscall () No symbol table info available. #1 0xb5c8af86 in *__GI___poll (fds=0xb5d21ff4, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:87 resultvar = <optimized out> oldtype = 0 result = <optimized out> #2 0xb59dbf5b in g_poll () from /lib/libglib-2.0.so.0 No symbol table info available. #3 0xb59cb96f in ?? () from /lib/libglib-2.0.so.0 No symbol table info available. #4 0xb59cc0f3 in g_main_loop_run () from /lib/libglib-2.0.so.0 No symbol table info available. #5 0xb4b81274 in ?? () from /usr/lib/libgio-2.0.so.0 No symbol table info available. #6 0xb59f4b6f in ?? () from /lib/libglib-2.0.so.0 No symbol table info available. #7 0xb742cc39 in start_thread (arg=0xb4a48b70) at pthread_create.c:304 __res = <optimized out> ---Type <return> to continue, or q <return> to quit--- __ignore1 = <optimized out> __ignore2 = <optimized out> pd = 0xb4a48b70 now = <optimized out> unwind_buf = {cancel_jmp_buf = {{jmp_buf = {-1220292620, 0, 4001536, -1264286664, 935723962, -78073411}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}} not_first_call = <optimized out> freesize = <optimized out> __PRETTY_FUNCTION__ = "start_thread" #8 0xb5c9896e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130 No locals. Backtrace stopped: Not enough registers or memory available to unwind further Thread 1 (Thread 0xb4ddf940 (LWP 17918)): #0 0xb7fe2424 in __kernel_vsyscall () No symbol table info available. #1 0xb5c8af86 in *__GI___poll (fds=0xb5d21ff4, nfds=12, timeout=285) at ../sysdeps/unix/sysv/linux/poll.c:87 resultvar = <optimized out> oldtype = 0 result = <optimized out> ---Type <return> to continue, or q <return> to quit--- #2 0xb59dbf5b in g_poll () from /lib/libglib-2.0.so.0 No symbol table info available. #3 0xb59cb96f in ?? () from /lib/libglib-2.0.so.0 No symbol table info available. #4 0xb59cbce4 in g_main_context_iteration () from /lib/libglib-2.0.so.0 No symbol table info available. #5 0xb7d722f7 in QEventDispatcherGlib::processEvents (this=0x841b400, flags=...) at kernel/qeventdispatcher_glib.cpp:422 d = 0x843a470 canWait = true savedFlags = {i = 0} result = <optimized out> #6 0xb60cb6fa in QGuiEventDispatcherGlib::processEvents (this=0x841b400, flags=...) at kernel/qguieventdispatcher_glib.cpp:204 d = 0x8436d80 saved_flags = {i = 0} returnValue = 252 #7 0xb7d430ed in QEventLoop::processEvents (this=0xbfffecd4, flags=...) at kernel/qeventloop.cpp:149 d = 0x8434e30 #8 0xb7d43331 in QEventLoop::exec (this=0xbfffecd4, flags=...) at kernel/qeventloop.cpp:201 d = 0x8434e30 ---Type <return> to continue, or q <return> to quit--- app = 0xbfffec8c #9 0xb7d47a8a in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1008 threadData = 0x841a6f0 eventLoop = {<QObject> = {_vptr.QObject = 0xb7e7a608, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0xb7e060a0 "QObject", data = 0xb7e06140, extradata = 0xb7e75560}}, d_ptr = {d = 0x8434e30}, static staticQtMetaObject = {d = {superdata = 0x0, stringdata = 0xb7e0ec80 "Qt", data = 0xb7e12500, extradata = 0x0}}}, static staticMetaObject = {d = { superdata = 0x8419440, stringdata = 0xb7e18400 "QEventLoop", data = 0xb7e18420, extradata = 0x0}}} returnCode = <optimized out> #10 0xb6014624 in QApplication::exec () at kernel/qapplication.cpp:3741 No locals. #11 0x0808976d in main (argc=Cannot access memory at address 0xc ) at /home/mcfrisk/src/kdenlive-git/src/main.cpp:89 aboutData = {d = 0x8421628} app = <incomplete type> window = <optimized out> __PRETTY_FUNCTION__ = "int main(int, char**)" options = {d = 0x8434b70} result = <optimized out> (gdb) |
From: Dan D. <da...@de...> - 2011-10-11 22:32:58
|
On Tue, Oct 11, 2011 at 2:57 PM, Mikko Rapeli <mik...@ik...> wrote: > On Tue, Oct 11, 2011 at 02:16:14PM -0700, Dan Dennedy wrote: >> On Tue, Oct 11, 2011 at 2:05 PM, Mikko Rapeli <mik...@ik...> wrote: >> > Previewed clip without proxy and then enabled proxy back on in kdenlive. >> > I think context can be NULL after return from pthread_mutex_lock() at any >> > time and that would need to be checked everywhere. >> >> It should definitely not be the case that context can be NULL anywhere >> anytime. There is somehow inconsistent state introduced. Once again, >> the crash stems from KThumb. > > Tried to move cursor on timeline when thumnails were created with latest > kdenlive and mlt from git and got this: Can you please test with this experiment? put a return on the first line within mlt_service.c:mlt_service_cache_set_size() and change mlt_cache.c:DEFAULT_CACHE_SIZE to 100 -- +-DRD-+ |
From: Mikko R. <mik...@ik...> - 2011-10-04 21:29:20
|
Could maybe fix this: Program received signal SIGABRT, Aborted. [Switching to Thread 0x3a0ffb70 (LWP 20895)] 0xb7fe2424 in __kernel_vsyscall () (gdb) thread apply all bt full Thread 174 (Thread 0x3a0ffb70 (LWP 20895)): No symbol table info available. at ../nptl/sysdeps/unix/sysv/linux/raise.c:64 resultvar = <optimized out> pid = -1244520460 selftid = 20895 act = {__sigaction_handler = { sa_handler = 0xb7fff4e4 <_rtld_global+1220>, sa_sigaction = 0xb7fff4e4 <_rtld_global+1220>}, sa_mask = { __val = {851968, 2953987696, 2953919328, 974121284, 3078, 974121252, 2953915648, 2953914460, 0, 77, 974121096, 3049852392, 9, 974121180, 3050446836, 4, 974122640, 974121300, 3049970916, 35, 974121180, 9, 0, 974121276, 974121288, 7, 3050301468, 3050301464, 3050296943, 3050297008, 18, 974121180}}, sa_flags = 974121252, sa_restorer = 0xb5cffbf6} sigs = {__val = {32, 0 <repeats 31 times>}} fmt=0xb5d01a90 "*** glibc detected *** %s: %s: 0x%s ***\n") at ../sysdeps/unix/sysv/linux/libc_fatal.c:189 ---Type <return> to continue, or q <return> to quit--- ap = <optimized out> fd = 974121612 on_2 = <optimized out> list = <optimized out> nlist = <optimized out> cp = <optimized out> written = false str=0x6 <Address 0x6 out of bounds>, ptr=0x69727261) at malloc.c:6283 buf = "69727261" cp = <optimized out> at malloc.c:4795 size = 0 nextchunk = 0x519f nextsize = 3086629584 prevsize = <optimized out> bck = <optimized out> fwd = <optimized out> errstr = 0x6 <Address 0x6 out of bounds> __func__ = "_int_free" ar_ptr = 0xb5d233c0 ---Type <return> to continue, or q <return> to quit--- p = 0x6 No locals. ptr = 0x19b651bc No locals. at producer_avformat.c:2450 producer = 0x1aca5a78 context = <optimized out> properties = 0x1aca5a78 frame_properties = 0x4b9cd138 index = 1 at producer_avformat.c:2527 service = 0x1aca5a78 cache_item = <optimized out> self = 0x19be4b90 position = <optimized out> index=0) at mlt_producer.c:584 properties = 0x1aca5a78 ---Type <return> to continue, or q <return> to quit--- eof = <optimized out> speed = 0 clone = <optimized out> result = 1 self = 0x1aca5a78 index=0) at mlt_service.c:481 new_position = 0 previous_frame = <optimized out> next_frame = <optimized out> properties = 0x172826e8 in = 0 out = 872 position = 0 result = <optimized out> at mlt_service.c:372 producer = <optimized out> base = <optimized out> index=0) at mlt_service.c:457 properties = 0x908b7d0 in = 0 ---Type <return> to continue, or q <return> to quit--- out = 0 position = -1 result = 0 frame = 0x172826e8 service = 0x908b7d0 properties = 0x908b7d0 this = 0x908b7d0 consumer = 0x908b7d0 properties = 0x908b7d0 frame = <optimized out> last_position = -1 eos = 0 eos_threshold = 45 preview_off = 0 __res = <optimized out> __ignore1 = <optimized out> __ignore2 = <optimized out> pd = 0x3a0ffb70 now = <optimized out> unwind_buf = {cancel_jmp_buf = {{jmp_buf = {-1220292620, 0, 4001536, ---Type <return> to continue, or q <return> to quit--- 974124088, 387354315, -1922548271}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}} not_first_call = <optimized out> freesize = <optimized out> __PRETTY_FUNCTION__ = "start_thread" No locals. Backtrace stopped: Not enough registers or memory available to unwind further Thread 173 (Thread 0x65affb70 (LWP 20894)): No symbol table info available. at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/pthread_cond_timedwait.S:236 No locals. now = {tv_sec = 1317759844, tv_usec = 113090} tm = {tv_sec = 1317759845, tv_nsec = 113090000} frame = 0x0 service = 0x901a0e8 properties = 0x901a0e8 ---Type <return> to continue, or q <return> to quit--- frame = 0x0 properties = 0x901a0e8 this = 0x901a0e8 consumer = 0x901a0e8 properties = 0x901a0e8 frame = <optimized out> preview_off = 0 __res = <optimized out> __ignore1 = <optimized out> __ignore2 = <optimized out> pd = 0x65affb70 now = <optimized out> unwind_buf = {cancel_jmp_buf = {{jmp_buf = {-1220292620, 0, 4001536, 1706030136, 1461096052, -1922548271}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}} not_first_call = <optimized out> freesize = <optimized out> __PRETTY_FUNCTION__ = "start_thread" ---Type <return> to continue, or q <return> to quit--- No locals. Backtrace stopped: Not enough registers or memory available to unwind further Thread 170 (Thread 0x481b3b70 (LWP 20891)): No symbol table info available. at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/pthread_cond_timedwait.S:236 No locals. at thread/qwaitcondition_unix.cpp:86 tv = {tv_sec = 1317759843, tv_usec = 517853} ti = {tv_sec = 1317759873, tv_nsec = 517853000} code = <optimized out> at thread/qwaitcondition_unix.cpp:160 returnValue = 129 at concurrent/qthreadpool.cpp:140 r = 0x19685f80 expired = <optimized out> locker = {val = 388647041} ---Type <return> to continue, or q <return> to quit--- at thread/qthread_unix.cpp:320 __clframe = { __cancel_routine = 0xb7c48400 <QThreadPrivate::finish(void*)>, __cancel_arg = 0x172a3eb8, __do_it = 1, __cancel_type = <optimized out>} thr = 0x172a3eb8 data = 0x172a4b08 __res = <optimized out> __ignore1 = <optimized out> __ignore2 = <optimized out> pd = 0x481b3b70 now = <optimized out> unwind_buf = {cancel_jmp_buf = {{jmp_buf = {-1220292620, 0, 4001536, 1209742392, 1050054191, -1922548271}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}} not_first_call = <optimized out> freesize = <optimized out> __PRETTY_FUNCTION__ = "start_thread" No locals. ---Type <return> to continue, or q <return> to quit--- Backtrace stopped: Not enough registers or memory available to unwind further Thread 139 (Thread 0x56ffcb70 (LWP 20855)): No symbol table info available. at ../sysdeps/unix/sysv/linux/poll.c:87 resultvar = <optimized out> oldtype = 0 result = <optimized out> No symbol table info available. No symbol table info available. No symbol table info available. flags=...) at kernel/qeventdispatcher_glib.cpp:422 d = 0x1b2542f0 canWait = true savedFlags = {i = 0} result = <optimized out> ---Type <return> to continue, or q <return> to quit--- at kernel/qeventloop.cpp:149 d = 0x19c7a288 at kernel/qeventloop.cpp:201 d = 0x19c7a288 app = 0x56ffc26c d = 0x1abd9fe8 locker = {val = 448634936} eventLoop = {<QObject> = {_vptr.QObject = 0xb7e7a608, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0xb7e060a0 "QObject", data = 0xb7e06140, extradata = 0xb7e75560}}, d_ptr = {d = 0x19c7a288}, static staticQtMetaObject = {d = {superdata = 0x0, stringdata = 0xb7e0ec80 "Qt", data = 0xb7e12500, extradata = 0x0}}}, static staticMetaObject = {d = { superdata = 0x8417520, stringdata = 0xb7e18400 "QEventLoop", data = 0xb7e18420, extradata = 0x0}}} returnCode = <optimized out> at io/qfilesystemwatcher_inotify.cpp:248 sn = {<QObject> = {_vptr.QObject = 0xb7e7a728, static staticMetaObject = {d = {superdata = 0x0, ---Type <return> to continue, or q <return> to quit--- stringdata = 0xb7e060a0 "QObject", data = 0xb7e06140, extradata = 0xb7e75560}}, d_ptr = {d = 0xa0f6c28}, static staticQtMetaObject = {d = {superdata = 0x0, stringdata = 0xb7e0ec80 "Qt", data = 0xb7e12500, extradata = 0x0}}}, static staticMetaObject = {d = { superdata = 0x8417520, stringdata = 0xb7e19600 "QSocketNotifier", data = 0xb7e19640, extradata = 0x0}}, sockfd = 41, sntype = QSocketNotifier::Read, snenabled = true} at thread/qthread_unix.cpp:320 __clframe = { __cancel_routine = 0xb7c48400 <QThreadPrivate::finish(void*)>, __cancel_arg = 0x19b77930, __do_it = 1, __cancel_type = <optimized out>} thr = 0x19b77930 data = 0x1a62d3f8 __res = <optimized out> __ignore1 = <optimized out> __ignore2 = <optimized out> pd = 0x56ffcb70 now = <optimized out> ---Type <return> to continue, or q <return> to quit--- unwind_buf = {cancel_jmp_buf = {{jmp_buf = {-1220292620, 0, 4001536, 1459602488, -143225326, -1922548271}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}} not_first_call = <optimized out> freesize = <optimized out> __PRETTY_FUNCTION__ = "start_thread" No locals. Backtrace stopped: Not enough registers or memory available to unwind further Thread 99 (Thread 0x3e696b70 (LWP 20815)): No symbol table info available. at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/pthread_cond_timedwait.S:236 No locals. at thread/qwaitcondition_unix.cpp:86 tv = {tv_sec = 1317759840, tv_usec = 543609} ti = {tv_sec = 1317759870, tv_nsec = 543609000} code = <optimized out> ---Type <return> to continue, or q <return> to quit--- at thread/qwaitcondition_unix.cpp:160 returnValue = 126 at concurrent/qthreadpool.cpp:140 r = 0x1a17be60 expired = <optimized out> locker = {val = 388647041} at thread/qthread_unix.cpp:320 __clframe = { __cancel_routine = 0xb7c48400 <QThreadPrivate::finish(void*)>, __cancel_arg = 0x8a43d928, __do_it = 1, __cancel_type = <optimized out>} thr = 0x8a43d928 data = 0x9d784810 __res = <optimized out> __ignore1 = <optimized out> __ignore2 = <optimized out> pd = 0x3e696b70 now = <optimized out> unwind_buf = {cancel_jmp_buf = {{jmp_buf = {-1220292620, 0, 4001536, ---Type <return> to continue, or q <return> to quit--- 1047094328, -633958717, -1922548271}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}} not_first_call = <optimized out> freesize = <optimized out> __PRETTY_FUNCTION__ = "start_thread" No locals. Backtrace stopped: Not enough registers or memory available to unwind further Thread 2 (Thread 0xb4a48b70 (LWP 14067)): No symbol table info available. at ../sysdeps/unix/sysv/linux/poll.c:87 resultvar = <optimized out> oldtype = 0 result = <optimized out> No symbol table info available. No symbol table info available. ---Type <return> to continue, or q <return> to quit--- No symbol table info available. No symbol table info available. No symbol table info available. __res = <optimized out> __ignore1 = <optimized out> __ignore2 = <optimized out> pd = 0xb4a48b70 now = <optimized out> unwind_buf = {cancel_jmp_buf = {{jmp_buf = {-1220292620, 0, 4001536, -1264286664, 1106677718, -1922548271}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}} not_first_call = <optimized out> freesize = <optimized out> __PRETTY_FUNCTION__ = "start_thread" No locals. Backtrace stopped: Not enough registers or memory available to unwind further Thread 1 (Thread 0xb4ddf940 (LWP 14064)): ---Type <return> to continue, or q <return> to quit--- No symbol table info available. at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/lowlevellock.S:95 No locals. No symbol table info available. ignore1 = -512 ignore2 = 128 ar_ptr = 0xb5d233c0 p = 0x1a09c238 from /usr/lib/i386-linux-gnu/libstdc++.so.6 No symbol table info available. from /usr/lib/i386-linux-gnu/libstdc++.so.6 No symbol table info available. at tools/qhash.cpp:387 e = 0x196d7ff8 oldBuckets = 0x1a09c240 oldNumBuckets = 17 ---Type <return> to continue, or q <return> to quit--- nb = 37 at ../../include/QtCore/../../src/corelib/tools/qhash.h:163 No locals. No locals. at ../../include/QtCore/../../src/corelib/tools/qhash.h:774 h = <optimized out> nextNode = <optimized out> at dom/qdom.cpp:3130 n = 0x0 at /home/mcfrisk/src/kdenlive-git/src/docclipbase.cpp:257 doc = {<QDomNode> = {impl = 0x196e2b08}, <No data fields>} clip = {<QDomNode> = {impl = 0x19746db8}, <No data fields>} i = {c = {{d = 0x19c52e60, e = 0x19c52e60}}, i = {i = 0x8525b60}, n = { i = 0x19be77e0}} at /home/mcfrisk/src/kdenlive-git/src/clipitem.cpp:681 xml = {<QDomNode> = {impl = 0x0}, <No data fields>} ---Type <return> to continue, or q <return> to quit--- at /home/mcfrisk/src/kdenlive-git/src/clipitem.cpp:676 No locals. reload=true) at /home/mcfrisk/src/kdenlive-git/src/customtrackview.cpp:4158 info = {startPos = {m_time = 892.29999999999995, static s_delta = 1.0000000000000001e-05}, endPos = {m_time = 900.16666666666663, static s_delta = 1.0000000000000001e-05}, cropStart = { m_time = 20, static s_delta = 1.0000000000000001e-05}, cropDuration = {m_time = 7.8666666666666742, static s_delta = 1.0000000000000001e-05}, track = 1} prod = <optimized out> i = <optimized out> list = {{p = {static shared_null = {ref = {_q_value = 1}, alloc = 0, begin = 0, end = 0, sharable = 1, array = {0x0}}, d = 0x19bded20}, d = 0x19bded20}} clipList = {{p = {static shared_null = {ref = {_q_value = 1}, alloc = 0, begin = 0, end = 0, sharable = 1, array = {0x0}}, d = 0x84178dc}, d = 0x84178dc}} clip = 0xa25f648 _c=QMetaObject::InvokeMetaMethod, _id=43, _a=0xbfffdaf4) at /home/mcfrisk/src/kdenlive-git/build/src/cmake_bindir/moc_customtrackview.cpp:288 ---Type <return> to continue, or q <return> to quit--- No locals. cl=QMetaObject::InvokeMetaMethod, object=0x9f16278) at kernel/qmetaobject.cpp:237 No locals. idx=82, argv=0xbfffdaf4) at kernel/qmetaobject.cpp:232 No locals. local_signal_index=10, argv=0xbfffdaf4) at kernel/qobject.cpp:3278 receiverInSameThread = <optimized out> previousSender = 0x0 receiver = 0x9f16278 method = 82 currentSender = {sender = 0x8886db8, signal = 37, ref = 1} c = 0x17282110 last = 0x17282110 methodOffset = 27 signal_absolute_index = 37 empty_argv = {0x0} currentThreadData = 0x84186f0 locker = {val = 145284896} connectionLists = 0x8a8e050 ---Type <return> to continue, or q <return> to quit--- signalOffset = 3 signal_index = 13 _t2=true) at /home/mcfrisk/src/kdenlive-git/build/src/cmake_bindir/projectlist.moc:364 _a = {0x0, 0xbfffdb8c, 0xbfffdaec} clipId=..., producer=0x19bdb438, properties=..., metadata=..., replace=true, selectClip=<optimized out>) at /home/mcfrisk/src/kdenlive-git/src/projectlist.cpp:1754 toReload = {static null = {<No data fields>}, static shared_null = { ref = {_q_value = 1}, alloc = 0, size = 0, data = 0x8417732, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, static shared_empty = { ref = {_q_value = 275}, alloc = 0, size = 0, data = 0xb7e7d15e, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, d = 0x9e9ddf8, static codecForCStrings = 0x0} item = <optimized out> __PRETTY_FUNCTION__ = "void ProjectList::slotReplyGetFileProperties(const QString&, Mlt::Producer*, const QMap<QString, QString>&, const QMap<QString, QString>&, bool, bool)" ---Type <return> to continue, or q <return> to quit--- _c=QMetaObject::InvokeMetaMethod, _id=20, _a=0xbfffddf4) at /home/mcfrisk/src/kdenlive-git/build/src/cmake_bindir/projectlist.moc:237 No locals. cl=QMetaObject::InvokeMetaMethod, object=0x8886db8) at kernel/qmetaobject.cpp:237 No locals. idx=47, argv=0xbfffddf4) at kernel/qmetaobject.cpp:232 No locals. local_signal_index=0, argv=0xbfffddf4) at kernel/qobject.cpp:3278 receiverInSameThread = <optimized out> previousSender = 0x0 receiver = 0x8886db8 method = 47 currentSender = {sender = 0x8f597f0, signal = 6, ref = 1} c = 0x93aece8 last = 0x93aece8 methodOffset = 6 signal_absolute_index = 6 ---Type <return> to continue, or q <return> to quit--- empty_argv = {0x0} currentThreadData = 0x84186f0 locker = {val = 139910896} connectionLists = 0x8918d28 signalOffset = 4 signal_index = 4 _t2=0x19bdb438, _t3=..., _t4=..., _t5=true, _t6=false) at /home/mcfrisk/src/kdenlive-git/build/src/cmake_bindir/renderer.moc:176 _a = {0x0, 0x19ce17b0, 0xbfffde28, 0xbfffe26c, 0xbfffe270, 0xbfffddec, 0xbfffdde8} clipId=..., imageHeight=36, replaceProducer=true, selectClip=false) at /home/mcfrisk/src/kdenlive-git/src/renderer.cpp:702 __PRETTY_FUNCTION__ = "void Render::getFileProperties(const QDomElement&, const QString&, int, bool, bool)" duration = 0 frame = <optimized out> path = {static null = {<No data fields>}, static shared_null = {ref = { _q_value = 1}, alloc = 0, size = 0, data = 0x8417732, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, static shared_empty = {ref = { _q_value = 275}, alloc = 0, size = 0, data = 0xb7e7d15e, ---Type <return> to continue, or q <return> to quit--- clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, d = 0x9e9e290, static codecForCStrings = 0x0} clipOut = <optimized out> frameNumber = <optimized out> property = "5\332K\266\030s6\t\340\374\371\b\000\000\000\000\001\000\000\000hA\303\031(\337\377\277\265X\f\266p\375\226\266\001\000\000\000\330\345\377\277\270I\275\b_\f\a\266\270I\275\b\330\345\377\277\001\000\000\000p\375\226\266\001\000\000\000<\\\\\031\220\340\377\277p\323\034\266<\\\\\031\001\000\000\000\b\000\000\000\250$\215\265D\033E\b\030s6\t\b\000\000\000\027d\034\266<\\\\\031\001\000\000\000hL\033\032\060\337\377\277\000\000\000\000\000\000\000\000V\000\000\000p\375\226\266p\375\226\266V}õ\001\000\000\000\026|\006\266\220\340\377\277V}õ\224\340\377\277\342\025\027\266XA\303\031`A\303\031\300I\275\b\024\342\006\266\001\000\000" locale = {static staticMetaObject = {d = {superdata = 0x0, stringdata = 0xb7e14fc0 "QLocale", data = 0xb7e16160, extradata = 0x0}}, {v = 0x10144, p = {index = 324, numberOptions = 1}}} url = {<QUrl> = {d = 0x19bc7f80}, d = 0x0} producer = 0x19bdb438 type = AV filePropertyMap = {{d = 0x20, e = 0x20}} count = <optimized out> ---Type <return> to continue, or q <return> to quit--- proxyProducer = false metadataPropertyMap = {{d = 0xbf, e = 0xbf}} metadata = warning: can't find linker symbol for virtual table for `Mlt::Properties' value warning: found `qMalloc(unsigned int)' instead {_vptr.Properties = 0xb7c42bfb, instance = 0x10} _c=QMetaObject::InvokeMetaMethod, _id=22, _a=0x9418738) at /home/mcfrisk/src/kdenlive-git/build/src/cmake_bindir/renderer.moc:157 No locals. cl=QMetaObject::InvokeMetaMethod, object=0x8f597f0) at kernel/qmetaobject.cpp:237 No locals. idx=28, argv=0x9418738) at kernel/qmetaobject.cpp:232 No locals. object=0x8f597f0) at kernel/qobject.cpp:535 No locals. at kernel/qobject.cpp:1217 mce = 0x1ab6ed60 currentSender = {sender = 0x8886db8, signal = 29, ref = 1} previousSender = 0x0 ---Type <return> to continue, or q <return> to quit--- this=0x8436128) at kernel/qapplication.cpp:4467 consumed = <optimized out> e=0x1ab6ed60) at kernel/qapplication.cpp:4439 No locals. e=0x1ab6ed60) at kernel/qapplication.cpp:4214 w = 0x1ab6ed60 extra = 0xfffffe00 res = true from /usr/lib/libkdeui.so.5 No symbol table info available. receiver=0x8f597f0, event=0x1ab6ed60) at kernel/qcoreapplication.cpp:731 threadData = 0x84186f0 returnValue = <optimized out> result = false cbdata = {0x8f597f0, 0x1ab6ed60, 0xbfffe9cf} d = <optimized out> at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215 No locals. ---Type <return> to continue, or q <return> to quit--- data=0x84186f0) at kernel/qcoreapplication.cpp:1372 r = 0x8f597f0 locker = {val = 138512152} startOffset = 0 event_type=0) at kernel/qcoreapplication.cpp:1265 data = <optimized out> at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:220 No locals. at kernel/qeventdispatcher_glib.cpp:277 source = 0x8437d80 No symbol table info available. No symbol table info available. No symbol table info available. flags=...) at kernel/qeventdispatcher_glib.cpp:422 d = 0x8437cf0 ---Type <return> to continue, or q <return> to quit--- canWait = true savedFlags = {i = 0} result = <optimized out> flags=...) at kernel/qguieventdispatcher_glib.cpp:204 d = 0x8434d68 saved_flags = {i = 0} returnValue = false at kernel/qeventloop.cpp:149 d = 0x8432e18 at kernel/qeventloop.cpp:201 d = 0x8432e18 app = 0xbfffec8c threadData = 0x84186f0 eventLoop = {<QObject> = {_vptr.QObject = 0xb7e7a608, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0xb7e060a0 "QObject", data = 0xb7e06140, extradata = 0xb7e75560}}, d_ptr = {d = 0x8432e18}, static staticQtMetaObject = {d = {superdata = 0x0, stringdata = 0xb7e0ec80 "Qt", data = 0xb7e12500, ---Type <return> to continue, or q <return> to quit--- extradata = 0x0}}}, static staticMetaObject = {d = { superdata = 0x8417520, stringdata = 0xb7e18400 "QEventLoop", data = 0xb7e18420, extradata = 0x0}}} returnCode = <optimized out> No locals. ) at /home/mcfrisk/src/kdenlive-git/src/main.cpp:89 aboutData = {d = 0x841f610} app = <incomplete type> window = <optimized out> __PRETTY_FUNCTION__ = "int main(int, char**)" options = {d = 0x8432b58} result = <optimized out> --- src/modules/avformat/producer_avformat.c | 6 ++++++ 1 files changed, 6 insertions(+), 0 deletions(-) diff --git a/src/modules/avformat/producer_avformat.c b/src/modules/avformat/producer_avformat.c index 3829d20..7178f23 100644 --- a/src/modules/avformat/producer_avformat.c +++ b/src/modules/avformat/producer_avformat.c @@ -2551,10 +2551,16 @@ static void producer_avformat_close( producer_avformat self ) mlt_pool_release( self->audio_buffer[i] ); av_free( self->decode_buffer[i] ); if ( self->audio_codec[i] ) + { avcodec_close( self->audio_codec[i] ); + self->audio_codec[i] = NULL; + } } if ( self->video_codec ) + { avcodec_close( self->video_codec ); + self->video_codec = NULL; + } // Close the file if ( self->dummy_context ) av_close_input_file( self->dummy_context ); -- 1.7.5.4 |
From: Dan D. <da...@de...> - 2011-10-06 05:50:22
|
On Tue, Oct 4, 2011 at 2:19 PM, Mikko Rapeli <mik...@ik...> wrote: > Could maybe fix this: Yes, when restoring a flushed avformat producer it could try to close an AVCodecContext that was already closed. Thank you, applied. > --- > src/modules/avformat/producer_avformat.c | 6 ++++++ > 1 files changed, 6 insertions(+), 0 deletions(-) > > diff --git a/src/modules/avformat/producer_avformat.c b/src/modules/avformat/producer_avformat.c > index 3829d20..7178f23 100644 > --- a/src/modules/avformat/producer_avformat.c > +++ b/src/modules/avformat/producer_avformat.c > @@ -2551,10 +2551,16 @@ static void producer_avformat_close( producer_avformat self ) > mlt_pool_release( self->audio_buffer[i] ); > av_free( self->decode_buffer[i] ); > if ( self->audio_codec[i] ) > + { > avcodec_close( self->audio_codec[i] ); > + self->audio_codec[i] = NULL; > + } > } > if ( self->video_codec ) > + { > avcodec_close( self->video_codec ); > + self->video_codec = NULL; > + } > // Close the file > if ( self->dummy_context ) > av_close_input_file( self->dummy_context ); > -- > 1.7.5.4 > > -- +-DRD-+ |
From: Mikko R. <mik...@ik...> - 2011-10-08 19:49:52
|
Another crash around the same area. Would you by chance have an idea of a fix? (gdb) bt full format=0x7c6fe1a4, width=0x7c6fdd4c, height=0x7c6fdd50, writable=0) at producer_avformat.c:1259 self = 0x54e1c400 producer = 0xaab5ccf8 frame_properties = 0x7d2d4ae0 position = 0 properties = 0xaab5ccf8 context = 0x0 stream = <optimized out> codec_context = <optimized out> image_size = <optimized out> pkt = {pts = 28998398831345, dts = 7040148852380004700, data = 0x61b39d38 "", size = 1639162000, stream_index = -120833325 flags = 1639161964, side_data = 0x0, side_data_elems = 12, duration = -1208225444, destruct = 0x2d, priv = 0xb7fbf15c, pos = -5189727972738993828, convergence_duration = -5189404136511966841} ignore = <optimized out> source_fps = <optimized out> req_position = <optimized out> must_decode = <optimized out> use_new_seek = <optimized out> ---Type <return> to continue, or q <return> to quit--- paused = 2100120288 format=0x7c6fe1a4, width=0x7c6fdd4c, height=0x7c6fdd50, writable=0) at mlt_frame.c:453 properties = 0x7d2d4ae0 get_image = 0xb0f1a150 <producer_get_image> producer = <optimized out> requested_format = mlt_image_yuv422 error = 0 image=0x7c6fe09c, format=0x7c6fe1a4, width=0x7c6fdec4, height=0x7c6fdec8 mode=0) at filter_deinterlace.c:120 properties = 0xaab63450 previous_frame = 0x7d2d4ae0 previous_image = 0x0 previous_width = 480 previous_height = 270 next_frame = 0x54c896e8 next_image = 0x0 next_width = 480 next_height = 270 error = <optimized out> ---Type <return> to continue, or q <return> to quit--- format=0x7c6fe1a4, width=0x7c6fdec4, height=0x7c6fdec8, writable=0) at filter_deinterlace.c:220 mode = 0 method_str = <optimized out> method = 7 frame_method_str = <optimized out> error = 0 properties = 0xaab63450 deinterlace = 1 progressive = <optimized out> filter = 0x61b3b920 format=0x7c6fe1a4, width=0x7c6fdec4, height=0x7c6fdec8, writable=0) at mlt_frame.c:453 properties = 0xaab63450 get_image = 0xb1465ea0 <filter_get_image> producer = <optimized out> requested_format = mlt_image_rgb24a error = 0 format=0x7c6fe1a4, width=0x7c6fdfd0, height=0x7c6fdfd4, writable=0) at filter_rescale.c:215 interps = <optimized out> ---Type <return> to continue, or q <return> to quit--- iwidth = 480 iheight = 270 factor = 1 oheight = 50 error = 0 properties = 0xaab63450 filter = 0xac14f0e8 filter_properties = 0xac14f0e8 scaler_method = 0xb0f15cb0 <filter_scale> format=0x7c6fe1a4, width=0x7c6fdfd0, height=0x7c6fdfd4, writable=0) at mlt_frame.c:453 properties = 0xaab63450 get_image = 0xad9f9ed0 <filter_get_image> producer = <optimized out> requested_format = mlt_image_rgb24a error = 0 format=0x7c6fe1a4, width=0x7c6fe19c, height=0x7c6fe1a0, writable=0) at filter_resize.c:267 error = 0 properties = 0xaab63450 filter = 0x54c9ce68 ---Type <return> to continue, or q <return> to quit--- aspect_ratio = 1.0000000000001599 consumer_aspect = 1 owidth = 88 oheight = 50 rescale = <optimized out> format=0x7c6fe1a4, width=0x7c6fe19c, height=0x7c6fe1a0, writable=0) at mlt_frame.c:453 properties = 0xaab63450 get_image = 0xad9fa630 <filter_get_image> producer = <optimized out> requested_format = mlt_image_rgb24a error = 0 w=@0x7c6fe19c, h=@0x7c6fe1a0, writable=0) at MltFrame.cpp:59 image = 0x0 displayWidth=89, height=50) at /home/mcfrisk/src/kdenlive-git/src/kthumb.cpp:195 ow = 89 data = <optimized out> image = {<QPaintDevice> = {_vptr.QPaintDevice = 0xaab63450, painters = 0}, d = 0x0} ---Type <return> to continue, or q <return> to quit--- p = {<QPaintDevice> = {_vptr.QPaintDevice = 0xb6959338, painters = 0 d = 0x54cf6e70} oh = 50 format = mlt_image_yuv422 frameWidth=89, displayWidth=89, height=50) at /home/mcfrisk/src/kdenlive-git/src/kthumb.cpp:177 p = {<QPaintDevice> = {_vptr.QPaintDevice = 0xb6959338, painters = 0 d = 0x54a8ec08} frame = 0x54cf6e60 at /home/mcfrisk/src/kdenlive-git/src/kthumb.cpp:134 img = {<QPaintDevice> = {_vptr.QPaintDevice = 0xb6959338, painters = 0}, d = 0x54a8ec08} frame = 0 swidth = 89 dwidth = 89 at /usr/include/qt4/QtCore/qtconcurrentrunbase.h:120 No locals. at /usr/include/qt4/QtCore/qtconcurrentrunbase.h:114 No locals. ---Type <return> to continue, or q <return> to quit--- at concurrent/qthreadpool.cpp:106 r = 0x551faa08 expired = <optimized out> locker = {val = 403709608} at thread/qthread_unix.cpp:320 __clframe = { __cancel_routine = 0xb7c48400 <QThreadPrivate::finish(void*)>, __cancel_arg = 0xac151cb0, __do_it = 1, __cancel_type = <optimized out>} thr = 0xac151cb0 data = 0xaaba31b0 __res = <optimized out> __ignore1 = <optimized out> __ignore2 = <optimized out> pd = 0x7c6feb70 now = <optimized out> unwind_buf = {cancel_jmp_buf = {{jmp_buf = {-1220292620, 0, 4001536, 2087707704, 1598580809, 85384159}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}} ---Type <return> to continue, or q <return> to quit--- not_first_call = <optimized out> freesize = <optimized out> __PRETTY_FUNCTION__ = "start_thread" No locals. Backtrace stopped: Not enough registers or memory available to unwind furthe |
From: Dan D. <da...@de...> - 2011-10-08 20:27:52
|
On Sat, Oct 8, 2011 at 12:39 PM, Mikko Rapeli <mik...@ik...> wrote: > Another crash around the same area. Would you by chance have an idea of a fix? Can you determine if Kdenlive is trying to actively use 10 or more instances of avformat producer? This is not supported unless it has increased the size of the producer_avformat cache. What did you do just before this crash? Kdenlive has had some problems before with thumbnailing and importing a large number of clips because it was creating a thread for each clip, which was unstable usage of MLT not to mention bad usage of system resources. Now it uses QtConcurrent, which defaults number of threads to the number of virtual cores, which I still feel is dangerous and not system friendly. I really do not want all of my CPUs used by background threads leaving none for the UI. And I do not really want my hard drive thrashed reading 8 or more large video files simultaneously. Furthermore, there is no check to see if cpu count exceeds 10. How many do you have? > (gdb) bt full > format=0x7c6fe1a4, width=0x7c6fdd4c, height=0x7c6fdd50, writable=0) > at producer_avformat.c:1259 > self = 0x54e1c400 > producer = 0xaab5ccf8 > frame_properties = 0x7d2d4ae0 > position = 0 > properties = 0xaab5ccf8 > context = 0x0 > stream = <optimized out> > codec_context = <optimized out> > image_size = <optimized out> > pkt = {pts = 28998398831345, dts = 7040148852380004700, > data = 0x61b39d38 "", size = 1639162000, stream_index = -120833325 > flags = 1639161964, side_data = 0x0, side_data_elems = 12, > duration = -1208225444, destruct = 0x2d, priv = 0xb7fbf15c, > pos = -5189727972738993828, > convergence_duration = -5189404136511966841} > ignore = <optimized out> > source_fps = <optimized out> > req_position = <optimized out> > must_decode = <optimized out> > use_new_seek = <optimized out> > ---Type <return> to continue, or q <return> to quit--- > paused = 2100120288 > format=0x7c6fe1a4, width=0x7c6fdd4c, height=0x7c6fdd50, writable=0) > at mlt_frame.c:453 > properties = 0x7d2d4ae0 > get_image = 0xb0f1a150 <producer_get_image> > producer = <optimized out> > requested_format = mlt_image_yuv422 > error = 0 > image=0x7c6fe09c, format=0x7c6fe1a4, width=0x7c6fdec4, height=0x7c6fdec8 > mode=0) at filter_deinterlace.c:120 > properties = 0xaab63450 > previous_frame = 0x7d2d4ae0 > previous_image = 0x0 > previous_width = 480 > previous_height = 270 > next_frame = 0x54c896e8 > next_image = 0x0 > next_width = 480 > next_height = 270 > error = <optimized out> > ---Type <return> to continue, or q <return> to quit--- > format=0x7c6fe1a4, width=0x7c6fdec4, height=0x7c6fdec8, writable=0) > at filter_deinterlace.c:220 > mode = 0 > method_str = <optimized out> > method = 7 > frame_method_str = <optimized out> > error = 0 > properties = 0xaab63450 > deinterlace = 1 > progressive = <optimized out> > filter = 0x61b3b920 > format=0x7c6fe1a4, width=0x7c6fdec4, height=0x7c6fdec8, writable=0) > at mlt_frame.c:453 > properties = 0xaab63450 > get_image = 0xb1465ea0 <filter_get_image> > producer = <optimized out> > requested_format = mlt_image_rgb24a > error = 0 > format=0x7c6fe1a4, width=0x7c6fdfd0, height=0x7c6fdfd4, writable=0) > at filter_rescale.c:215 > interps = <optimized out> > ---Type <return> to continue, or q <return> to quit--- > iwidth = 480 > iheight = 270 > factor = 1 > oheight = 50 > error = 0 > properties = 0xaab63450 > filter = 0xac14f0e8 > filter_properties = 0xac14f0e8 > scaler_method = 0xb0f15cb0 <filter_scale> > format=0x7c6fe1a4, width=0x7c6fdfd0, height=0x7c6fdfd4, writable=0) > at mlt_frame.c:453 > properties = 0xaab63450 > get_image = 0xad9f9ed0 <filter_get_image> > producer = <optimized out> > requested_format = mlt_image_rgb24a > error = 0 > format=0x7c6fe1a4, width=0x7c6fe19c, height=0x7c6fe1a0, writable=0) > at filter_resize.c:267 > error = 0 > properties = 0xaab63450 > filter = 0x54c9ce68 > ---Type <return> to continue, or q <return> to quit--- > aspect_ratio = 1.0000000000001599 > consumer_aspect = 1 > owidth = 88 > oheight = 50 > rescale = <optimized out> > format=0x7c6fe1a4, width=0x7c6fe19c, height=0x7c6fe1a0, writable=0) > at mlt_frame.c:453 > properties = 0xaab63450 > get_image = 0xad9fa630 <filter_get_image> > producer = <optimized out> > requested_format = mlt_image_rgb24a > error = 0 > w=@0x7c6fe19c, h=@0x7c6fe1a0, writable=0) at MltFrame.cpp:59 > image = 0x0 > displayWidth=89, height=50) > at /home/mcfrisk/src/kdenlive-git/src/kthumb.cpp:195 > ow = 89 > data = <optimized out> > image = {<QPaintDevice> = {_vptr.QPaintDevice = 0xaab63450, > painters = 0}, d = 0x0} > ---Type <return> to continue, or q <return> to quit--- > p = {<QPaintDevice> = {_vptr.QPaintDevice = 0xb6959338, painters = 0 > d = 0x54cf6e70} > oh = 50 > format = mlt_image_yuv422 > frameWidth=89, displayWidth=89, height=50) > at /home/mcfrisk/src/kdenlive-git/src/kthumb.cpp:177 > p = {<QPaintDevice> = {_vptr.QPaintDevice = 0xb6959338, painters = 0 > d = 0x54a8ec08} > frame = 0x54cf6e60 > at /home/mcfrisk/src/kdenlive-git/src/kthumb.cpp:134 > img = {<QPaintDevice> = {_vptr.QPaintDevice = 0xb6959338, > painters = 0}, d = 0x54a8ec08} > frame = 0 > swidth = 89 > dwidth = 89 > at /usr/include/qt4/QtCore/qtconcurrentrunbase.h:120 > No locals. > at /usr/include/qt4/QtCore/qtconcurrentrunbase.h:114 > No locals. > ---Type <return> to continue, or q <return> to quit--- > at concurrent/qthreadpool.cpp:106 > r = 0x551faa08 > expired = <optimized out> > locker = {val = 403709608} > at thread/qthread_unix.cpp:320 > __clframe = { > __cancel_routine = 0xb7c48400 <QThreadPrivate::finish(void*)>, > __cancel_arg = 0xac151cb0, __do_it = 1, > __cancel_type = <optimized out>} > thr = 0xac151cb0 > data = 0xaaba31b0 > __res = <optimized out> > __ignore1 = <optimized out> > __ignore2 = <optimized out> > pd = 0x7c6feb70 > now = <optimized out> > unwind_buf = {cancel_jmp_buf = {{jmp_buf = {-1220292620, 0, 4001536, > 2087707704, 1598580809, 85384159}, mask_was_saved = 0}}, > priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, > cleanup = 0x0, canceltype = 0}}} > ---Type <return> to continue, or q <return> to quit--- > not_first_call = <optimized out> > freesize = <optimized out> > __PRETTY_FUNCTION__ = "start_thread" > No locals. > Backtrace stopped: Not enough registers or memory available to unwind furthe > > > |
From: Dan D. <da...@de...> - 2011-10-12 17:26:04
|
On Tue, Oct 11, 2011 at 11:02 PM, Mikko Rapeli <mik...@ik...> wrote: > On Tue, Oct 11, 2011 at 03:32:57PM -0700, Dan Dennedy wrote: >> Can you please test with this experiment? >> put a return on the first line within mlt_service.c:mlt_service_cache_set_size() >> and change mlt_cache.c:DEFAULT_CACHE_SIZE to 100 > > With this: > > and a big project I get a bus error, quite likely ran out of stack: Please use the same project or pattern when working on a specific bug. The change I suggested may have worked around the bug we were hunting but that is not clear. I doubt that change is related to the backtrace you provided. Indeed, the stack trace on that one thread is very big - it looks like there is some nested calls to the invalid clip dialog. Sorry, I am not very good at debugging from backtrace dumps alone. -- +-DRD-+ |
From: Mikko R. <mik...@ik...> - 2011-10-12 18:17:45
|
On Wed, Oct 12, 2011 at 10:25:57AM -0700, Dan Dennedy wrote: > On Tue, Oct 11, 2011 at 11:02 PM, Mikko Rapeli <mik...@ik...> wrote: > > On Tue, Oct 11, 2011 at 03:32:57PM -0700, Dan Dennedy wrote: > >> Can you please test with this experiment? > >> put a return on the first line within mlt_service.c:mlt_service_cache_set_size() > >> and change mlt_cache.c:DEFAULT_CACHE_SIZE to 100 > > > > With this: > > > > and a big project I get a bus error, quite likely ran out of stack: > > Please use the same project or pattern when working on a specific bug. It's the same project I try to work with. Version numbers are increasing but I try to repeat some problems with an older version of the project file if it's relevant as it was in this case > The change I suggested may have worked around the bug we were hunting > but that is not clear. I doubt that change is related to the backtrace > you provided. Indeed, the stack trace on that one thread is very big - > it looks like there is some nested calls to the invalid clip dialog. > Sorry, I am not very good at debugging from backtrace dumps alone. That's ok. I can try some hacky patches as well if this crash gets on my way too much. -Mikko |
From: Mikko R. <mik...@ik...> - 2011-10-09 22:04:01
|
On Sat, Oct 08, 2011 at 01:27:45PM -0700, Dan Dennedy wrote: > On Sat, Oct 8, 2011 at 12:39 PM, Mikko Rapeli <mik...@ik...> wrote: > > Another crash around the same area. Would you by chance have an idea of a fix? > > Can you determine if Kdenlive is trying to actively use 10 or more > instances of avformat producer? This is not supported unless it has I guess full trace with all threads would show this, sorry for not capturing it. I will try to hit this again to see what's going on. > increased the size of the producer_avformat cache. What did you do > just before this crash? Setting in and out points for clips using procies. Original clips are on an external USB disk which is sometimes a bit slow when disk caches are empty. > Kdenlive has had some problems before with thumbnailing and importing > a large number of clips because it was creating a thread for each > clip, which was unstable usage of MLT not to mention bad usage of > system resources. Now it uses QtConcurrent, which defaults number of > threads to the number of virtual cores, which I still feel is > dangerous and not system friendly. I really do not want all of my CPUs > used by background threads leaving none for the UI. And I do not > really want my hard drive thrashed reading 8 or more large video files > simultaneously. Furthermore, there is no check to see if cpu count > exceeds 10. How many do you have? Just 2 cpu's. -Mikko |
From: Dan D. <da...@de...> - 2011-09-28 23:13:09
|
On Wed, Sep 28, 2011 at 12:46 PM, Mikko Rapeli <mik...@ik...> wrote: > Similar problem was crashing in audio codec This patch you provided is for video. Why are you making a comment about audio? > --- > src/modules/avformat/producer_avformat.c | 4 ++-- > 1 files changed, 2 insertions(+), 2 deletions(-) > > diff --git a/src/modules/avformat/producer_avformat.c b/src/modules/avformat/producer_avformat.c > index 194fb15..1f33c37 100644 > --- a/src/modules/avformat/producer_avformat.c > +++ b/src/modules/avformat/producer_avformat.c > @@ -863,11 +863,10 @@ static void reopen_video( producer_avformat self, mlt_producer producer ) > mlt_service_lock( MLT_PRODUCER_SERVICE( producer ) ); > pthread_mutex_lock( &self->audio_mutex ); > > + avformat_lock(); > if ( self->video_codec ) > { > - avformat_lock(); > avcodec_close( self->video_codec ); > - avformat_unlock(); > } > self->video_codec = NULL; > if ( self->dummy_context ) > @@ -876,6 +875,7 @@ static void reopen_video( producer_avformat self, mlt_producer producer ) > if ( self->video_format ) > av_close_input_file( self->video_format ); > self->video_format = NULL; > + avformat_unlock(); > > int audio_index = self->audio_index; > int video_index = self->video_index; > -- > 1.7.5.4 > -- +-DRD-+ |
From: Dan D. <da...@de...> - 2011-09-28 23:23:31
|
On Wed, Sep 28, 2011 at 4:13 PM, Dan Dennedy <da...@de...> wrote: > On Wed, Sep 28, 2011 at 12:46 PM, Mikko Rapeli <mik...@ik...> wrote: >> Similar problem was crashing in audio codec > > This patch you provided is for video. Why are you making a comment about audio? nevermind, see http://www.kdenlive.org/mantis/view.php?id=2296 >> --- >> src/modules/avformat/producer_avformat.c | 4 ++-- >> 1 files changed, 2 insertions(+), 2 deletions(-) >> >> diff --git a/src/modules/avformat/producer_avformat.c b/src/modules/avformat/producer_avformat.c >> index 194fb15..1f33c37 100644 >> --- a/src/modules/avformat/producer_avformat.c >> +++ b/src/modules/avformat/producer_avformat.c >> @@ -863,11 +863,10 @@ static void reopen_video( producer_avformat self, mlt_producer producer ) >> mlt_service_lock( MLT_PRODUCER_SERVICE( producer ) ); >> pthread_mutex_lock( &self->audio_mutex ); >> >> + avformat_lock(); >> if ( self->video_codec ) >> { >> - avformat_lock(); >> avcodec_close( self->video_codec ); >> - avformat_unlock(); >> } >> self->video_codec = NULL; >> if ( self->dummy_context ) >> @@ -876,6 +875,7 @@ static void reopen_video( producer_avformat self, mlt_producer producer ) >> if ( self->video_format ) >> av_close_input_file( self->video_format ); >> self->video_format = NULL; >> + avformat_unlock(); >> >> int audio_index = self->audio_index; >> int video_index = self->video_index; >> -- >> 1.7.5.4 >> > > -- > +-DRD-+ > -- +-DRD-+ |
From: Mikko R. <mik...@ik...> - 2011-09-29 05:49:08
|
On Wed, Sep 28, 2011 at 04:23:25PM -0700, Dan Dennedy wrote: > On Wed, Sep 28, 2011 at 4:13 PM, Dan Dennedy <da...@de...> wrote: > > On Wed, Sep 28, 2011 at 12:46 PM, Mikko Rapeli <mik...@ik...> wrote: > >> Similar problem was crashing in audio codec > > > > This patch you provided is for video. Why are you making a comment about audio? > > nevermind, see http://www.kdenlive.org/mantis/view.php?id=2296 Yes, I should have included this bug link to commit message. -Mikko |
From: Dan D. <da...@de...> - 2011-09-29 19:39:41
|
On Wed, Sep 28, 2011 at 4:23 PM, Dan Dennedy <da...@de...> wrote: > On Wed, Sep 28, 2011 at 4:13 PM, Dan Dennedy <da...@de...> wrote: >> On Wed, Sep 28, 2011 at 12:46 PM, Mikko Rapeli <mik...@ik...> wrote: >>> Similar problem was crashing in audio codec >> >> This patch you provided is for video. Why are you making a comment about audio? > > nevermind, see http://www.kdenlive.org/mantis/view.php?id=2296 > >>> --- >>> src/modules/avformat/producer_avformat.c | 4 ++-- >>> 1 files changed, 2 insertions(+), 2 deletions(-) >>> >>> diff --git a/src/modules/avformat/producer_avformat.c b/src/modules/avformat/producer_avformat.c >>> index 194fb15..1f33c37 100644 >>> --- a/src/modules/avformat/producer_avformat.c >>> +++ b/src/modules/avformat/producer_avformat.c >>> @@ -863,11 +863,10 @@ static void reopen_video( producer_avformat self, mlt_producer producer ) >>> mlt_service_lock( MLT_PRODUCER_SERVICE( producer ) ); >>> pthread_mutex_lock( &self->audio_mutex ); >>> >>> + avformat_lock(); >>> if ( self->video_codec ) >>> { >>> - avformat_lock(); >>> avcodec_close( self->video_codec ); >>> - avformat_unlock(); >>> } >>> self->video_codec = NULL; >>> if ( self->dummy_context ) >>> @@ -876,6 +875,7 @@ static void reopen_video( producer_avformat self, mlt_producer producer ) >>> if ( self->video_format ) >>> av_close_input_file( self->video_format ); >>> self->video_format = NULL; >>> + avformat_unlock(); >>> >>> int audio_index = self->audio_index; >>> int video_index = self->video_index; >>> -- >>> 1.7.5.4 >>> Mikko, The sole purpose of avformat_lock and avformat_unlock is to protect non-thread-safe libavcodec/libavformat functions. From other usages of avformat_lock, one can determine that av_close_input_file() is unsafe, and this fixes that. Thank you! I am going to commit that change now. However, in the audio patch, it makes no sense. you are expanding the usage of avformat_lock() to protect some internal state against race condition. I am not opposed to fixing things, but for me it makes the code harder to maintain because currently it is very clear when and how to use avformat_lock. Also, as I said in the bug ticket, the expanded lock is protecting state that is already protected by mlt_service_lock() called in mlt_service_get_frame(). I want you to double-check whether that change is really need if you have a good repro case. If it still fixes it, please see if locking on self->audio_mutex fixes it as well. |
From: Mikko R. <mik...@ik...> - 2011-09-29 20:13:14
|
On Thu, Sep 29, 2011 at 12:39:32PM -0700, Dan Dennedy wrote: > The sole purpose of avformat_lock and avformat_unlock is to protect > non-thread-safe libavcodec/libavformat functions. From other usages of > avformat_lock, one can determine that av_close_input_file() is unsafe, > and this fixes that. Thank you! I am going to commit that change now. Great! > However, in the audio patch, it makes no sense. you are expanding the > usage of avformat_lock() to protect some internal state against race > condition. I am not opposed to fixing things, but for me it makes the > code harder to maintain because currently it is very clear when and > how to use avformat_lock. Also, as I said in the bug ticket, the > expanded lock is protecting state that is already protected by > mlt_service_lock() called in mlt_service_get_frame(). I want you to > double-check whether that change is really need if you have a good > repro case. If it still fixes it, please see if locking on > self->audio_mutex fixes it as well. I can try without the patch again. And if the crashes occur the audio_mutex. These crashes are not easy to reproduce with kdenlive so I've just been looking at the traces and trying more or less random fixes in various places. -Mikko |