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

Reply via email to