O' munificent maintainers of merry melt!
Thanks for suggesting a break point.
If I understand correctly, I did as you asked.
$ gdb
(gdb) file kdenlive
(gdb) b mlt_pool.c:142
(gdb) r
Thread 28 "RenderThread" hit Breakpoint 1, pool_fetch (self=0x809c8920)
at mlt_pool.c:142
(gdb) print self->size
$1 = 33554432
I expect you're in a better position to know
a.) if I did it right and
b.) whether 33554432 looks OK.
If you happen to have the time, and are so
inclined, I'd be interested in any further
thoughts you may have.
Thanks,
Kingsley
PS: The full back trace is attached.
On 02/10/2018 22:36, Dan Dennedy wrote:
> On Sat, Feb 10, 2018 at 2:17 PM Kingsley G. Morse Jr. <kings...@loaner.com>
> wrote:
>
> > Hi,
> >
> > First of all, thank you very much for developing
> > melt.
> >
> > It's been a lot of fun.
> >
> > And congratulations on your technical expertise.
> >
> > My impression is that video software is complex.
> >
> >
> > The main reasons I'm writing are
> >
> > 1.) I seem to have stumbled upon a bug,
> >
> > 2.) if possible, I'd like to help fix it, and
> >
> > 3.) I thought it might be smart to ask for good
> > advice.
> >
> > I elicit a
> >
> > [mlt_pool] out of memory
> >
> > by using the mouse to move kdenlive's time line
> > pointer.
> >
> > I doubt its really out of memory for 2 reasons:
> >
> > 1.) The kdenlive project file only has 2
> > pictures, and
> >
> > 2.) I've used it to edit other projects with
> > about 10 X as many pictures and about
> > 10 X as long.
> >
> >
> Set a break point on the mlt_log_fatal() line 142 in mlt_pool.c, run
> kdenlive in the debugger, and see what self->size is. Alternative, add
> self->size to the log message on that line. I suspect Kdenlive is pushing
> MLT or one of its effects into corner that makes it try to allocate
> something really huge.
>
>
> > I'm using Debian's version
> >
> > 6.6.0-1+b1 of melt
> >
> > and
> >
> > 17.12.1-1 of kdenlive
> >
> >
> > Feel free to try to replicate the bug.
> >
> > I attached a tar file of the kdenlive project and
> > a video showing what to do.
> >
> > Just copy the tar file to /tmp and watch the
> > video.
> >
> > Advice welcome!
> >
> > Thanks,
> > Kingsley
> >
> > --
> > Time is the fire in which we all burn.
> >
> >
> > ------------------------------------------------------------------------------
> > Check out the vibrant tech community on one of the world's most
> > engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> > _______________________________________________
> > Mlt-devel mailing list
> > Mlt-devel@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/mlt-devel
> >
--
Time is the fire in which we all burn.
#0 0xb7c97d70 in pool_fetch (self=0x809c8600) at mlt_pool.c:142
release = 0x0
ptr = 0x0
pool = 0x809c8600
index = <optimized out>
#1 0xb7c97d70 in mlt_pool_alloc (size=23800848) at mlt_pool.c:292
pool = 0x809c8600
index = <optimized out>
#2 0xa4730a45 in producer_get_image (frame=0x744703c0, buffer=0x8a48debc,
format=0x8a48dec0, width=0x8a48db60, height=0x8a48db64, writable=0)
at producer_pixbuf.c:718
image_size = 23800832
image_copy = <optimized out>
error = 0
properties = 0x744703c0
self = <optimized out>
producer = <optimized out>
#3 0xb7c7e708 in mlt_frame_get_image (self=0x744703c0, buffer=0x8a48debc,
format=0x8a48dec0, width=0x8a48db60, height=0x8a48db64, writable=0)
at mlt_frame.c:620
properties = 0x744703c0
get_image = 0xa47306c0 <producer_get_image>
requested_format = <optimized out>
error = 0
#4 0x93d0bde5 in filter_get_image (frame=0x744703c0, image=0x8a48debc,
format=0x8a48dec0, width=0x8a48db60, height=0x8a48db64, writable=0)
at filter_deinterlace.c:307
error = 0
filter = 0x6a3444e0
properties = 0x744703c0
deinterlace = 0
progressive = 1
#5 0xb7c7e708 in mlt_frame_get_image (self=0x744703c0, buffer=0x8a48debc,
format=0x8a48dec0, width=0x8a48db60, height=0x8a48db64, writable=0)
at mlt_frame.c:620
properties = 0x744703c0
get_image = 0x93d0bd60 <filter_get_image>
requested_format = <optimized out>
error = 0
#6 0xa4ee2935 in get_image (frame=0x744703c0, image=0x8a48debc,
format=0x8a48dec0, width=0x8a48db60, height=0x8a48db64, writable=0) at
filter_fieldorder.c:33
properties = 0x744703c0
error = <optimized out>
#7 0xb7c7e708 in mlt_frame_get_image (self=0x744703c0, buffer=0x8a48debc,
format=0x8a48dec0, width=0x8a48db60, height=0x8a48db64, writable=0)
at mlt_frame.c:620
properties = 0x744703c0
get_image = 0xa4ee28d0 <get_image>
requested_format = <optimized out>
error = 0
#8 0xa4ee11a6 in filter_get_image (frame=0x744703c0, image=0x8a48debc,
format=0x8a48dec0, width=0x8a48db60, height=0x8a48db64, writable=0) at
filter_crop.c:76
error = 0
profile = <optimized out>
properties = 0x744703c0
left = <optimized out>
right = 0
top = 0
bottom = 0
owidth = <optimized out>
oheight = <optimized out>
#9 0xb7c7e708 in mlt_frame_get_image (self=0x744703c0, buffer=0x8a48debc,
format=0x8a48dec0, width=0x8a48db60, height=0x8a48db64, writable=0)
at mlt_frame.c:620
properties = 0x744703c0
get_image = 0xa4ee10b0 <filter_get_image>
requested_format = <optimized out>
error = 0
#10 0xa4ee6ed8 in filter_get_image (frame=0x744703c0, image=0x8a48debc,
format=0x8a48dec0, width=0x8a48dec4, height=0x8a48dec8, writable=0)
at filter_rescale.c:221
interps = <optimized out>
iwidth = 2816
iheight = 2112
owidth = 2816
oheight = 2112
properties = 0x744703c0
filter_properties = 0x6a349eb0
scaler_method = 0xa421c8c0 <filter_scale>
#11 0xb7c7e708 in mlt_frame_get_image (self=0x744703c0, buffer=0x8a48debc,
format=0x8a48dec0, width=0x8a48dec4, height=0x8a48dec8, writable=0)
at mlt_frame.c:620
properties = 0x744703c0
get_image = 0xa4ee6ca0 <filter_get_image>
requested_format = <optimized out>
error = 0
#12 0xa4ee76a0 in filter_get_image (frame=0x744703c0, image=0x8a48debc,
format=0x8a48dec0, width=0x8a48dec4, height=0x8a48dec8, writable=0)
at filter_resize.c:214
error = 0
properties = 0x744703c0
filter = <optimized out>
profile = 0x824a39c0
aspect_ratio = 1
consumer_aspect = 0.88888888888888884
owidth = 2816
oheight = 2112
rescale = <optimized out>
#13 0xb7c7e708 in mlt_frame_get_image (self=0x744703c0, buffer=0x8a48debc,
format=0x8a48dec0, width=0x8a48dec4, height=0x8a48dec8, writable=0)
at mlt_frame.c:620
properties = 0x744703c0
get_image = 0xa4ee72a0 <filter_get_image>
requested_format = <optimized out>
error = 0
#14 0xb7c9426d in get_image_b (b_frame=0x744703c0, image=0x8a48debc,
format=0x8a48dec0, width=0x8a48dec4, height=0x8a48dec8, writable=0)
at mlt_transition.c:366
self = 0x7d72c8e0
a_props = 0x74470d80
b_props = 0x744703c0
#15 0xb7c7e708 in mlt_frame_get_image (self=0x744703c0, buffer=0x8a48debc,
format=0x8a48dec0, width=0x8a48dec4, height=0x8a48dec8, writable=0)
at mlt_frame.c:620
properties = 0x744703c0
get_image = 0xb7c941c0 <get_image_b>
requested_format = <optimized out>
error = 0
#16 0xa4ec9829 in transition_get_image (a_frame=0x74470d80, image=0x8a48e180,
format=0x8233365c, width=0x8a48e170, height=0x8a48e174, writable=0)
at transition_affine.c:504
b_frame = 0x744703c0
transition = 0x7d72c8e0
properties = 0x7d72c8e0
a_props = 0x74470d80
b_props = 0x744703c0
b_image = 0x0
b_format = mlt_image_rgb24a
b_width = 2816
b_height = 2112
b_ar = 1
b_dar = <optimized out>
position = <optimized out>
mirror = <optimized out>
length = <optimized out>
profile = <optimized out>
normalised_width = 720
normalised_height = 480
consumer_ar = 0.88888888888888884
result =
{key = 1, frame = 33, distort = 0, x = -180, y = -48, w = 1080, h =
720, mix = 100, f = {1, 1, 1, 1, 1}}
error = <optimized out>
geometry_w = 1080
geometry_h = 720
#17 0xb7c7e708 in mlt_frame_get_image (self=0x74470d80, buffer=0x8a48e180,
format=0x8233365c, width=0x8a48e170, height=0x8a48e174, writable=0)
at mlt_frame.c:620
properties = 0x74470d80
get_image = 0xa4ec94d0 <transition_get_image>
requested_format = <optimized out>
error = 0
#18 0xb7c951f5 in producer_get_image (self=0x74470dd0, buffer=0x8a48e180,
format=0x8233365c, width=0x8a48e170, height=0x8a48e174, writable=0)
at mlt_tractor.c:370
data = 0x0
size = 0
properties = 0x74470dd0
frame = 0x74470d80
frame_properties = 0x74470d80
i = <optimized out>
#19 0xb7c7e708 in mlt_frame_get_image (self=0x74470dd0, buffer=0x8a48e180,
format=0x8233365c, width=0x8a48e170, height=0x8a48e174, writable=0)
at mlt_frame.c:620
properties = 0x74470dd0
get_image = 0xb7c95070 <producer_get_image>
requested_format = <optimized out>
error = 0
#20 0xb7c92341 in consumer_read_ahead_thread (arg=0x82b81fc0)
at mlt_consumer.c:896
_mlt_log_timings_begin = <optimized out>
_mlt_log_timings_end = <optimized out>
time_current = <optimized out>
self = 0x82b81fc0
priv = 0x82333650
properties = 0x82b81fc0
width = 720
height = 480
video_off = 0
preview_off = <optimized out>
preview_format = <optimized out>
samples = 1602
audio = 0xa786c3a0
audio_off = 0
buffer = 26
frame = <optimized out>
image = 0x6a5e2020
"n\241\326\377o\244\332\377k\237\330\377k\237\331\377m\241\333\377o\242\333\377m\240\331\377l\241\325\377n\243\327\377n\243\327\377k\240\326\377k\240\326\377n\242\333\377m\241\332\377j\236\327\377l\236\331\377l\237\330\377m\242\330\377j\241\327\377h\241\326\377i\242\327\377k\242\332\377j\241\332\377h\237\327\377k\242\332\377k\242\332\377j\241\331\377j\241\331\377j\236\327\377l\240\331\377k\237\330\377m\241\332\377o\242\333\377l\240\331\377k\237\330\377g\236\326\377k\242\330\377k\244\331\377k\244\331\377j\243\330\377i\242\331\377k\242\332\377k\237\331\377l\237\330\377m\240\331\377m\240\327\377m\242\326\377m\242\324\377n\243\327\377l\244\327\377"...
ante = {tv_sec = 1518397744, tv_usec = 289297}
count = <optimized out>
skipped = 0
time_process = 0
skip_next = <optimized out>
pos = 265
start_pos = 265
last_pos = 265
frame_duration = 33033
drop_max = 5
#21 0x803338f3 in ()
#22 0xb2033e1c in QThreadPrivate::start(void*) (arg=<optimized out>)
at thread/qthread_unix.cpp:368
__clframe =
{__cancel_routine = 0xb2032ce0 <QThreadPrivate::finish(void*)>,
__cancel_arg = 0xa6d387a0, __do_it = 1, __cancel_type = <optimized out>}
thr = 0xa6d387a0
data = <optimized out>
#23 0xb1972316 in start_thread (arg=0x8a48eb40) at pthread_create.c:465
pd = 0x8a48eb40
now = <optimized out>
unwind_buf =
{cancel_jmp_buf = {{jmp_buf = {-1315405824, -1974932672,
-1315405824, -1974934808, -1482748578, 404684585}, mask_was_saved = 0}}, priv =
{pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype =
0}}}
not_first_call = 0
#24 0xb1c24296 in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:108
quit
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Mlt-devel mailing list
Mlt-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mlt-devel