Coder Social home page Coder Social logo

mltframework / mlt Goto Github PK

View Code? Open in Web Editor NEW
1.4K 77.0 297.0 16.58 MB

MLT Multimedia Framework

Home Page: https://www.mltframework.org

License: GNU Lesser General Public License v2.1

Shell 0.09% C++ 33.84% C 63.60% Objective-C 0.07% Assembly 0.19% C# 0.01% Java 0.02% Lua 0.01% Perl 0.02% PHP 0.01% Python 0.15% Ruby 0.13% Tcl 0.01% QMake 0.03% JavaScript 0.04% CMake 1.64% SWIG 0.11% Dockerfile 0.04% Makefile 0.01%
c c-plus-plus multimedia audio video video-processing audio-processing ffmpeg qt framework

mlt's People

Contributors

aib avatar alcinos avatar bmatherly avatar camillem avatar cclauss avatar chouquette avatar dany123 avatar ddennedy avatar eddrog avatar elfring avatar eszlari avatar gabrieljablonski avatar gmarco avatar ice0 avatar j-b-m avatar jksiezni avatar jliljebl avatar jlskuz avatar max-verem avatar mcfrisk avatar ondrejpopp avatar rayl avatar rectalogic avatar rlalik avatar sandsmark avatar sesse avatar tjoppen avatar ttill avatar vpinon avatar vvck avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mlt's Issues

'asm' operand has impossible constraints

some error show when i make mlt source, i use msys2

./configure --prefix=/home/lsj/build --enable-gpl --disable-decklink --disable-kdenlive --disable-gtk2 --disable-jackrack --disable-frei0r --disable-linsys --disable-opengl --disable-plus --disable-qt --disable-sox --disable-swfdec --disable-vid.stab --disable-resample

make install

cc -c -I../.. -DARCH_X86_64 -Wall -DPIC -O2 -pipe -fno-tree-dominator-opts -fno-tree-pre -ffast-math -DUSE_MMX -DUSE_SSE -DUSE_SSE2 -g -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -I../../win32 -o composite_line_yuv_sse2_simple.o composite_line_yuv_sse2_simple.c
composite_line_yuv_sse2_simple.c: In function 'composite_line_yuv_sse2_simple':
composite_line_yuv_sse2_simple.c:113:5: error: 'asm' operand has impossible constraints
asm volatile
^~~~~~~
{standard input}: Assembler messages:
{standard input}:110: Error: bad register name %xmm9' {standard input}:111: Error: bad register name%xmm10'
{standard input}:130: Error: bad register name %xmm8' {standard input}:132: Error: bad register name%xmm8'
{standard input}:134: Error: bad register name %xmm8' {standard input}:136: Error: bad register name%xmm8'
{standard input}:139: Error: bad register name `%xmm8'

crash during audio processing

mlt 0.9.6 crashes at memcpy. See the stacktrace (I believe it is meaningful and line numbers are correct):

Thread 11 (Thread 0x7f0d3208d700 (LWP 4775)):
[KCrash Handler]
#5  0x00007f0d62c32026 in __memcpy_sse2_unaligned () at /lib64/libc.so.6
#6  0x00007f0d4fd2471d in producer_get_audio (__len=4, __src=<optimized out>, __dest=<optimized out>) at /usr/include/bits/string3.h:51
#7  0x00007f0d4fd2471d in producer_get_audio (bytes_per_sample=4, channels=2, samples=4608, src=0x7f0d2811eca0, dest=<optimized out>) at producer_avformat.c:1999
#8  0x00007f0d4fd2471d in producer_get_audio (fps=24, timecode=<optimized out>, samples=2000, pkt=..., ignore=0x7f0d3208ca84, self=0x50ece60) at producer_avformat.c:2095
#9  0x00007f0d4fd2471d in producer_get_audio (frame=frame@entry=0x7f0d28000af0, buffer=buffer@entry=0x7f0d3208ce00, format=format@entry=0x3271620, frequency=frequency@entry=0x7f0d3208cdf8, channels=channels@entry=0x7f0d3208cbcc, samples=samples@entry=0x7f0d3208cdfc) at producer_avformat.c:2306
#10 0x00007f0d64775be9 in mlt_frame_get_audio (self=self@entry=0x7f0d28000af0, buffer=buffer@entry=0x7f0d3208ce00, format=format@entry=0x3271620, frequency=frequency@entry=0x7f0d3208cdf8, channels=channels@entry=0x7f0d3208cbcc, samples=samples@entry=0x7f0d3208cdfc) at mlt_frame.c:749
#11 0x00007f0d4576bab1 in filter_get_audio (frame=frame@entry=0x7f0d28000af0, buffer=buffer@entry=0x7f0d3208ce00, format=format@entry=0x3271620, frequency=frequency@entry=0x7f0d3208cdf8, channels=channels@entry=0x7f0d3208cdf4, samples=samples@entry=0x7f0d3208cdfc) at filter_audiochannels.c:32
#12 0x00007f0d64775be9 in mlt_frame_get_audio (self=self@entry=0x7f0d28000af0, buffer=buffer@entry=0x7f0d3208ce00, format=format@entry=0x3271620, frequency=frequency@entry=0x7f0d3208cdf8, channels=channels@entry=0x7f0d3208cdf4, samples=samples@entry=0x7f0d3208cdfc) at mlt_frame.c:749
#13 0x00007f0d45efb28f in resample_get_audio (frame=frame@entry=0x7f0d28000af0, buffer=buffer@entry=0x7f0d3208ce00, format=format@entry=0x3271620, frequency=frequency@entry=0x7f0d3208cdf8, channels=channels@entry=0x7f0d3208cdf4, samples=samples@entry=0x7f0d3208cdfc) at filter_resample.c:53
#14 0x00007f0d64775be9 in mlt_frame_get_audio (self=self@entry=0x7f0d28000af0, buffer=buffer@entry=0x7f0d3208ce00, format=format@entry=0x3271620, frequency=frequency@entry=0x7f0d3208cdf8, channels=channels@entry=0x7f0d3208cdf4, samples=samples@entry=0x7f0d3208cdfc) at mlt_frame.c:749
#15 0x00007f0d6478852a in consumer_read_ahead_thread (arg=0x3c58520) at mlt_consumer.c:815
#16 0x00007f0d649a20a4 in start_thread () at /lib64/libpthread.so.0
#17 0x00007f0d62c8708d in clone () at /lib64/libc.so.6

160701 melt script segfault, wag: libmltqt.so

ubuntu xenial

shotcut-debian8-x86_64-160701.tar.bz2

this works fine:
(veyepar) juser@dhcp20:~/local/Shotcut/Shotcut.app$ bin/melt --version
melt 6.3.0
...

but trying to run from the script, segfalt

gdb "$INSTALL_DIR/bin/melt" "$@"

(veyepar) juser@dhcp20:~/local/Shotcut/Shotcut.app$ ./melt 
+ readlink -f ./melt
+ CURRENT_DIR=/home/juser/local/Shotcut/Shotcut.app/melt
+ dirname /home/juser/local/Shotcut/Shotcut.app/melt
+ INSTALL_DIR=/home/juser/local/Shotcut/Shotcut.app
+ export LD_LIBRARY_PATH=/home/juser/local/Shotcut/Shotcut.app/lib:
+ export MLT_REPOSITORY=/home/juser/local/Shotcut/Shotcut.app/lib/mlt
+ export MLT_DATA=/home/juser/local/Shotcut/Shotcut.app/share/mlt
+ export MLT_PROFILES_PATH=/home/juser/local/Shotcut/Shotcut.app/share/mlt/profiles
+ export FREI0R_PATH=/home/juser/local/Shotcut/Shotcut.app/lib/frei0r-1
+ export MLT_MOVIT_PATH=/home/juser/local/Shotcut/Shotcut.app/share/movit
+ export QT_PLUGIN_PATH=/home/juser/local/Shotcut/Shotcut.app/lib/qt5
+ export QML2_IMPORT_PATH=/home/juser/local/Shotcut/Shotcut.app/lib/qml
+ gdb /home/juser/local/Shotcut/Shotcut.app/bin/melt
GNU gdb (Ubuntu 7.11-0ubuntu1) 7.11
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /home/juser/local/Shotcut/Shotcut.app/bin/melt...done.
(gdb) run
Starting program: /home/juser/local/Shotcut/Shotcut.app/bin/melt 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
mlt_repository_init: failed to dlopen /home/juser/local/Shotcut/Shotcut.app/lib/mlt/libmltwebvfx.so
  (libgstapp-0.10.so.0: cannot open shared object file: No such file or directory)

Program received signal SIGSEGV, Segmentation fault.
0x0000000000000750 in ?? ()
(gdb) bt full
#0  0x0000000000000750 in ?? ()
No symbol table info available.
#1  0x00007ffff7de74ea in call_init (l=<optimized out>, argc=argc@entry=1, 
    argv=argv@entry=0x7fffffffe308, env=env@entry=0x7fffffffe318)
    at dl-init.c:72
        j = <optimized out>
        jm = <optimized out>
        addrs = <optimized out>
        init_array = <optimized out>
#2  0x00007ffff7de75fb in call_init (env=0x7fffffffe318, argv=0x7fffffffe308, 
    argc=1, l=<optimized out>) at dl-init.c:30
No locals.
#3  _dl_init (main_map=main_map@entry=0x73e950, argc=1, argv=0x7fffffffe308, 
    env=0x7fffffffe318) at dl-init.c:120
        preinit_array = <optimized out>
        preinit_array_size = <optimized out>
        i = 14
#4  0x00007ffff7dec712 in dl_open_worker (a=a@entry=0x7fffffffdec0)
    at dl-open.c:575
        args = 0x7fffffffdec0
        file = <optimized out>
        mode = <optimized out>
        call_map = <optimized out>
---Type <return> to continue, or q <return> to quit---
        dst = <optimized out>
        new = <optimized out>
        __PRETTY_FUNCTION__ = "dl_open_worker"
        r = <optimized out>
        reloc_mode = <optimized out>
        nmaps = <optimized out>
        l = <optimized out>
        maps = <optimized out>
        relocation_in_progress = <optimized out>
        any_tls = <optimized out>
        first_static_tls = <optimized out>
#5  0x00007ffff7de7394 in _dl_catch_error (
    objname=objname@entry=0x7fffffffdeb0, 
    errstring=errstring@entry=0x7fffffffdeb8, 
    mallocedp=mallocedp@entry=0x7fffffffdeaf, 
    operate=operate@entry=0x7ffff7dec300 <dl_open_worker>, 
    args=args@entry=0x7fffffffdec0) at dl-error.c:187
        errcode = 32767
        c = {objname = 0x7fffffffdeb0, errstring = 0x7fffffffdeb8, 
          malloced = 0x7fffffffdeaf, errcode = 0x7fffffffdd8c, env = {{
              __jmpbuf = {140737488347088, -7189635459537260952, 2147483650, 
                6394320, 140737349720900, 140737354125376, 
                -7189635459470152088, -7189617580821664152}, 
              __mask_was_saved = -828265453, __saved_mask = {__val = {
                  54167216, 140733193388051, 0, 140737354103376, 
                  140737488346704, 8589925972, 140737488346688, 457950612, 
                  140737349606454, 4294967295, 7598416, 140737343461712, 
                  140737353966824, 79, 140737354103376, 140737488347072}}}}}
        catchp = 0x7ffff7fd46f8
        old = <optimized out>
#6  0x00007ffff7debbd9 in _dl_open (
    file=0x6191d0 "/home/juser/local/Shotcut/Shotcut.app/lib/mlt/libmltqt.so", 
mode=-2147483646, caller_dlopen=0x7ffff7bc9b44 <mlt_repository_init+292>, 
    nsid=-2, argc=<optimized out>, argv=<optimized out>, env=0x7fffffffe318)
    at dl-open.c:660
        args = {
          file = 0x6191d0 "/home/juser/local/Shotcut/Shotcut.app/lib/mlt/libmltqt.so", mode = -2147483646, 
          caller_dlopen = 0x7ffff7bc9b44 <mlt_repository_init+292>, 
          caller_dl_open = 0x7ffff73bdf09 <dlopen_doit+89>, map = 0x73e950, 
          nsid = 0, argc = 1, argv = 0x7fffffffe308, env = 0x7fffffffe318}
        objname = 0x1 <error: Cannot access memory at address 0x1>
        errstring = 0x7ffff7dd6c10 <[email protected]> "0\341`\367\377\177"
        malloced = false
        errcode = <optimized out>
        __PRETTY_FUNCTION__ = "_dl_open"
#7  0x00007ffff73bdf09 in dlopen_doit (a=a@entry=0x7fffffffe0f0)
    at dlopen.c:66
        args = 0x7fffffffe0f0
#8  0x00007ffff7de7394 in _dl_catch_error (objname=0x60f670, 
    errstring=0x60f678, mallocedp=0x60f668, 
    operate=0x7ffff73bdeb0 <dlopen_doit>, args=0x7fffffffe0f0)
    at dl-error.c:187
        errcode = 32767
        c = {objname = 0x60f670, errstring = 0x60f678, malloced = 0x60f668, 
          errcode = 0x7fffffffdfcc, env = {{__jmpbuf = {0, 
                -7189617283225178520, 140737488347376, 22, 6353584, 0, 
                -7189635459562426776, -7189617580821664152}, 
              __mask_was_saved = 25, __saved_mask = {__val = {
                  140737349727746, 255, 6354528, 140737341284016, 
                  140737488347376, 22, 6353584, 0, 140737343933116, 6394080, 
                  140737343974195, 0, 46, 18446744073709551612, 6354528, 
                  140737341284016}}}}}
        catchp = 0x7ffff7fd46f8
---Type <return> to continue, or q <return> to quit---
        old = <optimized out>
#9  0x00007ffff73be571 in _dlerror_run (
    operate=operate@entry=0x7ffff73bdeb0 <dlopen_doit>, 
    args=args@entry=0x7fffffffe0f0) at dlerror.c:163
        result = 0x60f660
#10 0x00007ffff73bdfa1 in __dlopen (file=<optimized out>, 
    mode=<optimized out>) at dlopen.c:87
        args = {
          file = 0x6191d0 "/home/juser/local/Shotcut/Shotcut.app/lib/mlt/libmltqt.so", mode = 2, new = 0x16, 
          caller = 0x7ffff7bc9b44 <mlt_repository_init+292>}
#11 0x00007ffff7bc9b44 in mlt_repository_init (
    directory=0x1 <error: Cannot access memory at address 0x1>)
    at mlt_repository.c:105
        flags = -7416
        object_name = 0x6191d0 "/home/juser/local/Shotcut/Shotcut.app/lib/mlt/libmltqt.so"
        object = 0x0
        self = 0x60e020
        dir = 0x60f2b0
        i = 25
        plugin_count = 22
        __FUNCTION__ = "mlt_repository_init"
#12 0x00007ffff7bc9378 in mlt_factory_init (
    directory=0x7fffffffe687 "/home/juser/local/Shotcut/Shotcut.app/lib/mlt", 
    directory@entry=0x0) at mlt_factory.c:184
No locals.
#13 0x000000000040229c in main (argc=1, argv=0x7fffffffe308) at melt.c:718
        i = <optimized out>
        consumer = 0x0
        store = 0x0
        name = 0x0
        profile = 0x0
        is_progress = 0
        is_silent = 0
        is_abort = 0
        is_getc = 0
        error = 0
        backup_profile = <optimized out>
        repo = <optimized out>
(gdb) 

Problem with consumer multi

Hello, I have problems in consumer multi, I can not seek the playlist

melt -profile dv_ntsc Wildlife.mov -consumer multi 0=sdl 1=decklink terminate_on_pause=0 real_time=1

Pressing (H = back 1 minute), (L = forward 1 minute) or (g = start of clip) the melt hangs for a few seconds and goes, but not back or forward in the playlist. Using libmlt ++ is the same problem, it is not possible to seek in the playlist when using the multi consumer. Can someone help me please?

Bad frames generated when using composition of affine filtered video and webvfx

Hello

After my last issue #108, I removed QT4, installed QT5, and installed MELT V6.0.0

$ melt -version
melt 6.0.0
Copyright (C) 2002-2016 Meltytech, LLC
<http://www.mltframework.org/>
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
$ ffmpeg
ffmpeg version N-79294-g972df59 Copyright (c) 2000-2016 the FFmpeg developers
  built with gcc 4.8 (Ubuntu 4.8.4-2ubuntu1~14.04.1)
  configuration: --prefix=/opt/melt --enable-gpl --enable-version3 --enable-shared --enable-debug --enable-pthreads --enable-runtime-cpudetect --disable-doc --enable-libtheora --enable-libvorbis --enable-libmp3lame --enable-libx264 --enable-libx265 --enable-libvpx
  libavutil      55. 20.100 / 55. 20.100
  libavcodec     57. 34.100 / 57. 34.100
  libavformat    57. 32.100 / 57. 32.100
  libavdevice    57.  0.101 / 57.  0.101
  libavfilter     6. 41.100 /  6. 41.100
  libswscale      4.  1.100 /  4.  1.100
  libswresample   2.  0.101 /  2.  0.101
  libpostproc    54.  0.100 / 54.  0.100

But I have a regression (compared to Melt 0.9.6 running with QT4) on a specific example : bad frames are generated when using a combination of webvfx and affine filtered videos.

Example where bad frames are generated

MELT file

<mlt LC_NUMERIC="en_US.UTF-8">
  <producer id="1">
    <property name="resource">../../melt-tests/penguin.mp4</property>
  </producer>
  <producer id="63">
    <property name="mlt_service">webvfx</property>
    <property name="resource">plain:boc-bug.html</property>
    <property name="transparent">1</property>
  </producer>
  <tractor>
    <multitrack>
      <tractor>
        <multitrack>
          <tractor>
            <playlist>
              <entry producer="1" in="0" out="200">
              </entry>
            </playlist>
          </tractor>
        </multitrack>
        <filter>
          <property name="mlt_service">affine</property>
          <property name="transition.cycle">25</property>
          <property name="transition.geometry">0=0/0:110%x110%;22=0/0:110%x110%;23=0/-2:110%x110%;24=0/0:110%x110%</property>
          <property name="transition.distort">0</property>
        </filter>
      </tractor>
      <tractor>
        <multitrack>
          <tractor>
            <playlist>
              <entry producer="63" in="0" out="124">
              </entry>
            </playlist>
          </tractor>
        </multitrack>
      </tractor>
    </multitrack>
    <transition in="0" out="99">
      <property name="mlt_service">composite</property>
      <property name="a_track">0</property>
      <property name="b_track">1</property>
    </transition>
    <transition in="100" out="124">
      <property name="mlt_service">luma</property>
      <property name="a_track">0</property>
      <property name="b_track">1</property>
      <property name="reverse">1</property>
    </transition>
  </tractor>
</mlt>

HTML file

<html>
<head>
</head>
<body>
  <h1 style="color: #FFF">TITLE TITLE TITLE TITLE TITLE TITLE TITLE TITLE TITLE TITLE TITLE TITLE TITLE</h1>
</body>
</html>

Profile my_nhd

description=my nHD
frame_rate_num=25
frame_rate_den=1
width=640
height=360
progressive=0
sample_aspect_num=1
sample_aspect_den=1
display_aspect_num=16
display_aspect_den=9
colorspace=709

Command

$ xvfb-run -a melt -profile my_nhd boc-bug.xml -progress -consumer avformat:boc-bug.mp4 strict=experimental

Output
capture d ecran 2016-04-11 a 17 25 12

Removing affine filter

Same HTML

Affine filter is commented

<mlt LC_NUMERIC="en_US.UTF-8">
  <producer id="1">
    <property name="resource">../../melt-tests/penguin.mp4</property>
  </producer>
  <producer id="63">
    <property name="mlt_service">webvfx</property>
    <property name="resource">plain:boc-bug.html</property>
    <property name="transparent">1</property>
  </producer>
  <tractor>
    <multitrack>
      <tractor>
        <multitrack>
          <tractor>
            <playlist>
              <entry producer="1" in="0" out="200">
              </entry>
            </playlist>
          </tractor>
        </multitrack>
        <!-- <filter>
          <property name="mlt_service">affine</property>
          <property name="transition.cycle">25</property>
          <property name="transition.geometry">0=0/0:110%x110%;22=0/0:110%x110%;23=0/-2:110%x110%;24=0/0:110%x110%</property>
          <property name="transition.distort">0</property>
        </filter> -->
      </tractor>
      <tractor>
        <multitrack>
          <tractor>
            <playlist>
              <entry producer="63" in="0" out="124">
              </entry>
            </playlist>
          </tractor>
        </multitrack>
      </tractor>
    </multitrack>
    <transition in="0" out="99">
      <property name="mlt_service">composite</property>
      <property name="a_track">0</property>
      <property name="b_track">1</property>
    </transition>
    <transition in="100" out="124">
      <property name="mlt_service">luma</property>
      <property name="a_track">0</property>
      <property name="b_track">1</property>
      <property name="reverse">1</property>
    </transition>
  </tractor>
</mlt>

Video is perfect in this case
capture d ecran 2016-04-11 a 17 27 57

Many thanks again in advance for your help

php 7 support ?

Hi, next Fedora version (F25) got php 7.0 , and php module doesn't build , any plans for php 7 ?

Thanks

Frozen when rendering a clip in a playlist in a playlist

I am trying to make a video where I have a clip in a playlist in a playlsit. Which is to say, The main producer is a playlist with one producer, which is another playlist with one producer, which is a m4v video clip.

I output the result to an xml file called out.xml, and then use the melt command line application to run it:

melt out.xml

When I do this the clip plays the first frame and then freezes. Additionally, when I add other clips to the inner playlist only the last clip is shown. Is this a bug in the XML producer or consumer, or am I missing something here?

For reference, the following is the xml file:

<?xml version="1.0" encoding="utf-8"?>
<mlt LC_NUMERIC="en_US.UTF-8" version="6.2.0" root="/Users/leif/src/video/private" title="Anonymous Submission" producer="playlist0">
  <profile description="DV/DVD PAL" width="720" height="576" progressive="0" sample_aspect_num="16" sample_aspect_den="15" display_aspect_num="4" display_aspect_den="3" frame_rate_num="25" frame_rate_den="1" colorspace="601"/>
  <producer id="producer0" in="0" out="5001">
    <property name="length">5002</property>
    <property name="eof">pause</property>
    <property name="resource">/Users/leif/demo.mkv</property>
    <property name="meta.media.nb_streams">2</property>
    <property name="meta.media.0.stream.type">video</property>
    <property name="meta.media.0.stream.frame_rate">30</property>
    <property name="meta.media.0.stream.sample_aspect_ratio">1</property>
    <property name="meta.media.0.codec.width">1920</property>
    <property name="meta.media.0.codec.height">1080</property>
    <property name="meta.media.0.codec.rotate">0</property>
    <property name="meta.media.0.codec.frame_rate">1000</property>
    <property name="meta.media.0.codec.pix_fmt">yuv420p</property>
    <property name="meta.media.0.codec.sample_aspect_ratio">0</property>
    <property name="meta.media.0.codec.colorspace">709</property>
    <property name="meta.media.0.codec.name">vp9</property>
    <property name="meta.media.0.codec.long_name">Google VP9</property>
    <property name="meta.media.0.codec.bit_rate">0</property>
    <property name="meta.attr.0.stream.LANGUAGE.markup">eng</property>
    <property name="meta.attr.0.stream.DURATION.markup">00:03:20.000000000</property>
    <property name="meta.media.1.stream.type">audio</property>
    <property name="meta.media.1.codec.sample_fmt">fltp</property>
    <property name="meta.media.1.codec.sample_rate">44100</property>
    <property name="meta.media.1.codec.channels">2</property>
    <property name="meta.media.1.codec.name">aac</property>
    <property name="meta.media.1.codec.long_name">AAC (Advanced Audio Coding)</property>
    <property name="meta.media.1.codec.bit_rate">0</property>
    <property name="meta.attr.1.stream.CREATION_TIME.markup">2015-05-18 08:29:00</property>
    <property name="meta.attr.1.stream.HANDLER_NAME.markup">SoundHandler</property>
    <property name="meta.attr.1.stream.DURATION.markup">00:03:20.086000000</property>
    <property name="meta.attr.ENCODER.markup">Lavf56.40.101</property>
    <property name="seekable">1</property>
    <property name="meta.media.sample_aspect_num">1</property>
    <property name="meta.media.sample_aspect_den">1</property>
    <property name="aspect_ratio">1</property>
    <property name="audio_index">1</property>
    <property name="video_index">0</property>
    <property name="mute_on_pause">1</property>
    <property name="mlt_service">avformat</property>
  </producer>
  <playlist id="playlist1">
    <entry producer="producer0" in="0" out="5001"/>
  </playlist>
  <playlist id="playlist0" title="Anonymous Submission">
    <entry producer="playlist1" in="" out=""/>
  </playlist>
</mlt>

Any suggestions? Thank you.

Movit: Kdenlive rendering to screen unless --avformat-no-vdpau used or GPL3 not used

If MLT 6.1.0 is built with --enable-gpl3 , used with Kdenlive, and Kdenlive is set up with Movit enabled, all render jobs get diverted to a window on the screen. The output file remains at 0 bytes. Adding --avformat-no-vdpau to the configuration options stops this, as does buidling without GPLv3 support. I had to read the configure script for the avformat module to find this and sucessfully build for Movit with GPL3 components (video quality measurement transition) enabled. It was not listed anywhere in the options displayed by./configure --help and it should be. That line and a note that it is needed for kdenlive would save other builders a lot of trouble. In short, this is a documentation issue-the code works. Only those builders using GPLv3 will encounter this, for me the render output diversion was a mystery that took months to figure out.

Compiling using musl libc

I'm trying to compile the MLT using musl, but occurs some errors during compilation.

My config.log is:

./configure --prefix=/usr --sysconfdir=/etc --sbindir=/usr/bin --bindir=/usr/bin --mandir=/usr/share/man --infodir=/usr/share/info --localstatedir=/var --host=x86_64-unknown-linux-gnu --build=x86_64-unknown-linux-gnu --host=x86_64-linux-musl --with-sysroot=/usr/x86_64-linux-musl --with-libtool-sysroot=/usr/x86_64-linux-musl --enable-mmx

Error message is:

list='src/framework src/mlt++ src/melt src/modules src/swig profiles'; \
for subdir in $list; do \
    make -s -C $subdir depend || exit 1; \
    make -C $subdir all || exit 1; \
done
make[1]: Entering directory '/builddir/mlt-0.9.8/src/framework'
x86_64-linux-musl-gcc  -O2 -pipe -fstack-protector-strong -D_FORTIFY_SOURCE=2 -mtune=generic   -DARCH_X86_64 -Wall -DPIC   -O2 -pipe -fno-tree-dominator-opts -fno-tree-pre -ffast-math -DUSE_MMX -DUSE_SSE -DUSE_SSE2 -g -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fPIC -pthread -DARCH_X86_64 -Wall -DPIC   -O2 -pipe -fno-tree-dominator-opts -fno-tree-pre -ffast-math -DUSE_MMX -DUSE_SSE -DUSE_SSE2 -g -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fPIC -pthread -rdynamic -DPREFIX_DATA="\"/usr/share/mlt\"" -DPREFIX_LIB="\"/usr/lib/mlt\""      -c -o mlt_frame.o mlt_frame.c
x86_64-linux-musl-gcc  -O2 -pipe -fstack-protector-strong -D_FORTIFY_SOURCE=2 -mtune=generic   -DARCH_X86_64 -Wall -DPIC   -O2 -pipe -fno-tree-dominator-opts -fno-tree-pre -ffast-math -DUSE_MMX -DUSE_SSE -DUSE_SSE2 -g -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fPIC -pthread -DARCH_X86_64 -Wall -DPIC   -O2 -pipe -fno-tree-dominator-opts -fno-tree-pre -ffast-math -DUSE_MMX -DUSE_SSE -DUSE_SSE2 -g -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fPIC -pthread -rdynamic -DPREFIX_DATA="\"/usr/share/mlt\"" -DPREFIX_LIB="\"/usr/lib/mlt\""      -c -o mlt_version.o mlt_version.c
x86_64-linux-musl-gcc  -O2 -pipe -fstack-protector-strong -D_FORTIFY_SOURCE=2 -mtune=generic   -DARCH_X86_64 -Wall -DPIC   -O2 -pipe -fno-tree-dominator-opts -fno-tree-pre -ffast-math -DUSE_MMX -DUSE_SSE -DUSE_SSE2 -g -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fPIC -pthread -DARCH_X86_64 -Wall -DPIC   -O2 -pipe -fno-tree-dominator-opts -fno-tree-pre -ffast-math -DUSE_MMX -DUSE_SSE -DUSE_SSE2 -g -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fPIC -pthread -rdynamic -DPREFIX_DATA="\"/usr/share/mlt\"" -DPREFIX_LIB="\"/usr/lib/mlt\""      -c -o mlt_geometry.o mlt_geometry.c
x86_64-linux-musl-gcc  -O2 -pipe -fstack-protector-strong -D_FORTIFY_SOURCE=2 -mtune=generic   -DARCH_X86_64 -Wall -DPIC   -O2 -pipe -fno-tree-dominator-opts -fno-tree-pre -ffast-math -DUSE_MMX -DUSE_SSE -DUSE_SSE2 -g -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fPIC -pthread -DARCH_X86_64 -Wall -DPIC   -O2 -pipe -fno-tree-dominator-opts -fno-tree-pre -ffast-math -DUSE_MMX -DUSE_SSE -DUSE_SSE2 -g -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fPIC -pthread -rdynamic -DPREFIX_DATA="\"/usr/share/mlt\"" -DPREFIX_LIB="\"/usr/lib/mlt\""      -c -o mlt_deque.o mlt_deque.c
x86_64-linux-musl-gcc  -O2 -pipe -fstack-protector-strong -D_FORTIFY_SOURCE=2 -mtune=generic   -DARCH_X86_64 -Wall -DPIC   -O2 -pipe -fno-tree-dominator-opts -fno-tree-pre -ffast-math -DUSE_MMX -DUSE_SSE -DUSE_SSE2 -g -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fPIC -pthread -DARCH_X86_64 -Wall -DPIC   -O2 -pipe -fno-tree-dominator-opts -fno-tree-pre -ffast-math -DUSE_MMX -DUSE_SSE -DUSE_SSE2 -g -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fPIC -pthread -rdynamic -DPREFIX_DATA="\"/usr/share/mlt\"" -DPREFIX_LIB="\"/usr/lib/mlt\""      -c -o mlt_property.o mlt_property.c
In file included from /usr/x86_64-linux-musl/usr/include/string.h:23:0,
                 from mlt_property.c:33:
/usr/x86_64-linux-musl/usr/include/bits/alltypes.h:368:34: error: conflicting types for ‘locale_t’
 typedef struct __locale_struct * locale_t;
                                  ^
In file included from mlt_property.c:28:0:
mlt_property.h:36:15: note: previous declaration of ‘locale_t’ was here
 typedef char* locale_t;
               ^
mlt_property.c: In function ‘time_clock_to_frames’:
mlt_property.c:292:26: warning: passing argument 2 of ‘setlocale’ from incompatible pointer type
   setlocale( LC_NUMERIC, locale );
                          ^
In file included from mlt_property.c:34:0:
/usr/x86_64-linux-musl/usr/include/locale.h:53:7: note: expected ‘const char *’ but argument is of type ‘locale_t’
 char *setlocale (int, const char *);
       ^
mlt_property.c: At top level:
mlt_property.c:446:5: error: conflicting types for ‘mlt_property_get_int’
 int mlt_property_get_int( mlt_property self, double fps, locale_t locale )
     ^
In file included from mlt_property.c:28:0:
mlt_property.h:46:12: note: previous declaration of ‘mlt_property_get_int’ was here
 extern int mlt_property_get_int( mlt_property self, double fps, locale_t );
            ^
mlt_property.c: In function ‘mlt_property_atof’:
mlt_property.c:506:27: warning: passing argument 2 of ‘setlocale’ from incompatible pointer type
    setlocale( LC_NUMERIC, locale );
                           ^
In file included from mlt_property.c:34:0:
/usr/x86_64-linux-musl/usr/include/locale.h:53:7: note: expected ‘const char *’ but argument is of type ‘locale_t’
 char *setlocale (int, const char *);
       ^
mlt_property.c: At top level:
mlt_property.c:536:8: error: conflicting types for ‘mlt_property_get_double’
 double mlt_property_get_double( mlt_property self, double fps, locale_t locale )
        ^
In file included from mlt_property.c:28:0:
mlt_property.h:47:15: note: previous declaration of ‘mlt_property_get_double’ was here
 extern double mlt_property_get_double( mlt_property self, double fps, locale_t );
               ^
mlt_property.c:563:14: error: conflicting types for ‘mlt_property_get_position’
 mlt_position mlt_property_get_position( mlt_property self, double fps, locale_t locale )
              ^
In file included from mlt_property.c:28:0:
mlt_property.h:48:21: note: previous declaration of ‘mlt_property_get_position’ was here
 extern mlt_position mlt_property_get_position( mlt_property self, double fps, locale_t );
                     ^
mlt_property.c:687:7: error: conflicting types for ‘mlt_property_get_string_l’
 char *mlt_property_get_string_l( mlt_property self, locale_t locale )
       ^
In file included from mlt_property.c:28:0:
mlt_property.h:51:14: note: previous declaration of ‘mlt_property_get_string_l’ was here
 extern char *mlt_property_get_string_l( mlt_property self, locale_t );
              ^
mlt_property.c: In function ‘mlt_property_get_string_l’:
mlt_property.c:703:28: warning: initialization from incompatible pointer type
   const char *localename = locale;
                            ^
mlt_property.c: At top level:
mlt_property.c:913:7: error: conflicting types for ‘mlt_property_get_time’
 char *mlt_property_get_time( mlt_property self, mlt_time_format format, double fps, locale_t locale )
       ^
In file included from mlt_property.c:28:0:
mlt_property.h:55:14: note: previous declaration of ‘mlt_property_get_time’ was here
 extern char *mlt_property_get_time( mlt_property self, mlt_time_format, double fps, locale_t );
              ^
mlt_property.c: In function ‘mlt_property_get_time’:
mlt_property.c:937:28: warning: initialization from incompatible pointer type
   const char *localename = locale;
                            ^
mlt_property.c: In function ‘is_property_numeric’:
mlt_property.c:1040:27: warning: passing argument 2 of ‘setlocale’ from incompatible pointer type
    setlocale( LC_NUMERIC, locale );
                           ^
In file included from mlt_property.c:34:0:
/usr/x86_64-linux-musl/usr/include/locale.h:53:7: note: expected ‘const char *’ but argument is of type ‘locale_t’
 char *setlocale (int, const char *);
       ^
mlt_property.c:1023:10: warning: variable ‘temp’ set but not used [-Wunused-but-set-variable]
   double temp;
          ^
mlt_property.c: At top level:
mlt_property.c:1101:5: error: conflicting types for ‘mlt_property_interpolate’
 int mlt_property_interpolate( mlt_property self, mlt_property p[],
     ^
In file included from mlt_property.c:28:0:
mlt_property.h:57:12: note: previous declaration of ‘mlt_property_interpolate’ was here
 extern int mlt_property_interpolate( mlt_property self, mlt_property points[], double progress, double fps, locale_t locale, mlt_keyframe_type interp );
            ^
mlt_property.c: In function ‘mlt_property_interpolate’:
mlt_property.c:1115:52: warning: passing argument 2 of ‘mlt_property_get_rect’ from incompatible pointer type
     points[0] = p[1]? mlt_property_get_rect( p[1], locale ) : zero;
                                                    ^
In file included from mlt_property.c:28:0:
mlt_property.h:67:17: note: expected ‘locale_t’ but argument is of type ‘locale_t’
 extern mlt_rect mlt_property_get_rect( mlt_property self, locale_t locale );
                 ^
mlt_property.c:1118:47: warning: passing argument 2 of ‘mlt_property_get_rect’ from incompatible pointer type
      points[1] = mlt_property_get_rect( p[2], locale );
                                               ^
In file included from mlt_property.c:28:0:
mlt_property.h:67:17: note: expected ‘locale_t’ but argument is of type ‘locale_t’
 extern mlt_rect mlt_property_get_rect( mlt_property self, locale_t locale );
                 ^
mlt_property.c:1134:52: warning: passing argument 2 of ‘mlt_property_get_rect’ from incompatible pointer type
     points[1] = p[1]? mlt_property_get_rect( p[1], locale ) : zero;
                                                    ^
In file included from mlt_property.c:28:0:
mlt_property.h:67:17: note: expected ‘locale_t’ but argument is of type ‘locale_t’
 extern mlt_rect mlt_property_get_rect( mlt_property self, locale_t locale );
                 ^
mlt_property.c:1137:53: warning: passing argument 2 of ‘mlt_property_get_rect’ from incompatible pointer type
      points[0] = p[0]? mlt_property_get_rect( p[0], locale ) : zero;
                                                     ^
In file included from mlt_property.c:28:0:
mlt_property.h:67:17: note: expected ‘locale_t’ but argument is of type ‘locale_t’
 extern mlt_rect mlt_property_get_rect( mlt_property self, locale_t locale );
                 ^
mlt_property.c:1138:53: warning: passing argument 2 of ‘mlt_property_get_rect’ from incompatible pointer type
      points[2] = p[2]? mlt_property_get_rect( p[2], locale ) : zero;
                                                     ^
In file included from mlt_property.c:28:0:
mlt_property.h:67:17: note: expected ‘locale_t’ but argument is of type ‘locale_t’
 extern mlt_rect mlt_property_get_rect( mlt_property self, locale_t locale );
                 ^
mlt_property.c:1139:53: warning: passing argument 2 of ‘mlt_property_get_rect’ from incompatible pointer type
      points[3] = p[3]? mlt_property_get_rect( p[3], locale ) : zero;
                                                     ^
In file included from mlt_property.c:28:0:
mlt_property.h:67:17: note: expected ‘locale_t’ but argument is of type ‘locale_t’
 extern mlt_rect mlt_property_get_rect( mlt_property self, locale_t locale );
                 ^
mlt_property.c: In function ‘refresh_animation’:
mlt_property.c:1199:74: warning: passing argument 5 of ‘mlt_animation_parse’ from incompatible pointer type
    mlt_animation_parse( self->animation, self->prop_string, length, fps, locale );
                                                                          ^
In file included from mlt_property.c:29:0:
mlt_animation.h:41:12: note: expected ‘locale_t’ but argument is of type ‘locale_t’
 extern int mlt_animation_parse(mlt_animation self, const char *data, int length, double fps, locale_t locale );
            ^
mlt_property.c: At top level:
mlt_property.c:1227:8: error: conflicting types for ‘mlt_property_anim_get_double’
 double mlt_property_anim_get_double( mlt_property self, double fps, locale_t locale, int position, int length )
        ^
In file included from mlt_property.c:28:0:
mlt_property.h:58:15: note: previous declaration of ‘mlt_property_anim_get_double’ was here
 extern double mlt_property_anim_get_double( mlt_property self, double fps, locale_t locale, int position, int length );
               ^
mlt_property.c:1262:5: error: conflicting types for ‘mlt_property_anim_get_int’
 int mlt_property_anim_get_int( mlt_property self, double fps, locale_t locale, int position, int length )
     ^
In file included from mlt_property.c:28:0:
mlt_property.h:59:12: note: previous declaration of ‘mlt_property_anim_get_int’ was here
 extern int mlt_property_anim_get_int( mlt_property self, double fps, locale_t locale, int position, int length );
            ^
mlt_property.c:1297:7: error: conflicting types for ‘mlt_property_anim_get_string’
 char* mlt_property_anim_get_string( mlt_property self, double fps, locale_t locale, int position, int length )
       ^
In file included from mlt_property.c:28:0:
mlt_property.h:60:14: note: previous declaration of ‘mlt_property_anim_get_string’ was here
 extern char* mlt_property_anim_get_string( mlt_property self, double fps, locale_t locale, int position, int length );
              ^
mlt_property.c:1345:5: error: conflicting types for ‘mlt_property_anim_set_double’
 int mlt_property_anim_set_double( mlt_property self, double value, double fps, locale_t locale,
     ^
In file included from mlt_property.c:28:0:
mlt_property.h:61:12: note: previous declaration of ‘mlt_property_anim_set_double’ was here
 extern int mlt_property_anim_set_double( mlt_property self, double value, double fps, locale_t locale, int position, int length, mlt_keyframe_type keyframe_type );
            ^
mlt_property.c:1380:5: error: conflicting types for ‘mlt_property_anim_set_int’
 int mlt_property_anim_set_int( mlt_property self, int value, double fps, locale_t locale,
     ^
In file included from mlt_property.c:28:0:
mlt_property.h:62:12: note: previous declaration of ‘mlt_property_anim_set_int’ was here
 extern int mlt_property_anim_set_int( mlt_property self, int value, double fps, locale_t locale, int position, int length, mlt_keyframe_type keyframe_type );
            ^
mlt_property.c:1417:5: error: conflicting types for ‘mlt_property_anim_set_string’
 int mlt_property_anim_set_string( mlt_property self, const char *value, double fps, locale_t locale, int position, int length )
     ^
In file included from mlt_property.c:28:0:
mlt_property.h:63:12: note: previous declaration of ‘mlt_property_anim_set_string’ was here
 extern int mlt_property_anim_set_string( mlt_property self, const char *value, double fps, locale_t locale, int position, int length );
            ^
mlt_property.c:1511:10: error: conflicting types for ‘mlt_property_get_rect’
 mlt_rect mlt_property_get_rect( mlt_property self, locale_t locale )
          ^
In file included from mlt_property.c:28:0:
mlt_property.h:67:17: note: previous declaration of ‘mlt_property_get_rect’ was here
 extern mlt_rect mlt_property_get_rect( mlt_property self, locale_t locale );
                 ^
mlt_property.c: In function ‘mlt_property_get_rect’:
mlt_property.c:1540:27: warning: passing argument 2 of ‘setlocale’ from incompatible pointer type
    setlocale( LC_NUMERIC, locale );
                           ^
In file included from mlt_property.c:34:0:
/usr/x86_64-linux-musl/usr/include/locale.h:53:7: note: expected ‘const char *’ but argument is of type ‘locale_t’
 char *setlocale (int, const char *);
       ^
mlt_property.c: At top level:
mlt_property.c:1608:5: error: conflicting types for ‘mlt_property_anim_set_rect’
 int mlt_property_anim_set_rect( mlt_property self, mlt_rect value, double fps, locale_t locale,
     ^
In file included from mlt_property.c:28:0:
mlt_property.h:68:12: note: previous declaration of ‘mlt_property_anim_set_rect’ was here
 extern int mlt_property_anim_set_rect( mlt_property self, mlt_rect value, double fps, locale_t locale, int position, int length, mlt_keyframe_type keyframe_type );
            ^
mlt_property.c:1641:10: error: conflicting types for ‘mlt_property_anim_get_rect’
 mlt_rect mlt_property_anim_get_rect( mlt_property self, double fps, locale_t locale, int position, int length )
          ^
In file included from mlt_property.c:28:0:
mlt_property.h:69:17: note: previous declaration of ‘mlt_property_anim_get_rect’ was here
 extern mlt_rect mlt_property_anim_get_rect( mlt_property self, double fps, locale_t locale, int position, int length );
                 ^
<builtin>: recipe for target 'mlt_property.o' failed
make[1]: *** [mlt_property.o] Error 1
make[1]: Leaving directory '/builddir/mlt-0.9.8/src/framework'
Makefile:9: recipe for target 'all' failed
make: *** [all] Error 1

My intention to compile the MLT using musl is to package it for the distro Void Linux.

v0.8.4+ won't build in OSX (10.7.5)

Maybe this is related to #26?

Have tried

  • v0.8.4
  • v0.8.6
  • v0.8.8

Builds fine w/ <= v0.8.2

Output from build using
./configure --prefix=/usr/local --enable-gpl --disable-gtk2
also doesn't build with one or both gpl, gtk2 options removed, with same error

In file included from MltParser.cpp:21:
In file included from ./Mlt.h:42:
./MltTokeniser.h:35:52: warning: conversion from string literal to 'char *' is deprecated [-Wdeprecated-writable-strings]
                        Tokeniser( char *text = NULL, char *delimiter = " " );
                                                                        ^
./MltTokeniser.h:37:45: warning: conversion from string literal to 'char *' is deprecated [-Wdeprecated-writable-strings]
                        int parse( char *text, char *delimiter = " " );
                                                                 ^
2 warnings generated.
c++ -D__DARWIN__ -Wall -fPIC -I..  -DVERSION=\"0.8.4\"   -c -o MltPlaylist.o MltPlaylist.cpp
c++ -D__DARWIN__ -Wall -fPIC -I..  -DVERSION=\"0.8.4\"   -c -o MltProducer.o MltProducer.cpp
c++ -D__DARWIN__ -Wall -fPIC -I..  -DVERSION=\"0.8.4\"   -c -o MltProfile.o MltProfile.cpp
c++ -D__DARWIN__ -Wall -fPIC -I..  -DVERSION=\"0.8.4\"   -c -o MltProperties.o MltProperties.cpp
c++ -D__DARWIN__ -Wall -fPIC -I..  -DVERSION=\"0.8.4\"   -c -o MltPushConsumer.o MltPushConsumer.cpp
c++ -D__DARWIN__ -Wall -fPIC -I..  -DVERSION=\"0.8.4\"   -c -o MltRepository.o MltRepository.cpp
c++ -D__DARWIN__ -Wall -fPIC -I..  -DVERSION=\"0.8.4\"   -c -o MltService.o MltService.cpp
c++ -D__DARWIN__ -Wall -fPIC -I..  -DVERSION=\"0.8.4\"   -c -o MltTokeniser.o MltTokeniser.cpp
In file included from MltTokeniser.cpp:22:
./MltTokeniser.h:35:52: warning: conversion from string literal to 'char *' is deprecated [-Wdeprecated-writable-strings]
                        Tokeniser( char *text = NULL, char *delimiter = " " );
                                                                        ^
./MltTokeniser.h:37:45: warning: conversion from string literal to 'char *' is deprecated [-Wdeprecated-writable-strings]
                        int parse( char *text, char *delimiter = " " );
                                                                 ^
2 warnings generated.
c++ -D__DARWIN__ -Wall -fPIC -I..  -DVERSION=\"0.8.4\"   -c -o MltTractor.o MltTractor.cpp
c++ -D__DARWIN__ -Wall -fPIC -I..  -DVERSION=\"0.8.4\"   -c -o MltTransition.o MltTransition.cpp
c++ -dynamiclib -single_module -install_name /usr/local/lib/libmlt++.3.dylib -current_version 0.8.4 -compatibility_version 3 -o libmlt++.0.8.4.dylib MltConsumer.o MltDeque.o MltEvent.o MltFactory.o MltField.o MltFilter.o MltFilteredConsumer.o MltFilteredProducer.o MltFrame.o MltGeometry.o MltMultitrack.o MltParser.o MltPlaylist.o MltProducer.o MltProfile.o MltProperties.o MltPushConsumer.o MltRepository.o MltService.o MltTokeniser.o MltTractor.o MltTransition.o -L/usr/local/lib -lSDLmain -lSDL -Wl,-framework,Cocoa -L../framework -lmlt
Undefined symbols for architecture x86_64:
  "_mlt_service_set_profile", referenced from:
      Mlt::Service::set_profile(Mlt::Profile&) in MltService.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[1]: *** [libmlt++.0.8.4.dylib] Error 1

Thanks

crash and bad frames generated

Hi,

If you run segfault.sh, you will see a crash in customer because the resolution of the image is not what is expect, an image with a bad resolution is copied.

It also causes bad frames in video, broken frames, noisy pictures..
Try artifacts.sh

My debugging showed me what for first frame , the producer returns bad resolution, not for the rest.

artifacts.zip

Build with explicit --enable-movit diverts kdenlive render to screen

Since at least Summer 2015, any build of MLT where --enable-movit is used in configuration and Kdenlive is run with Movit enabled diverts Kdenlive rendering from the output file to a window on the screen. Rendering ends when playback ends with a zero byte file.

On the other hand, allowing MLT to autodetect a properly installed Movit install works fine, all the Movit effects will work in kdenlive, and rendering is to the output file with all Movit effects having worked.

This is some kind of issue in the build system where autodetection of Movit does one thing, and explicit specification does something else, something that does not work right at least for Kdenlive.
This is very confusing, no documentation can be found online, I only found this out by accident when disabling VDPAU support (which I used to use) for a test build and accidently also disabling explicit Movit detection. Took until tonight to know what I had really done.

confused mix length

This is "-mix" description:

-mix length Add a mix between the last two cuts

The length means frames?
But if the frame rates(fps) of these two cuts are not different, it may cause unexpected result?

And can "-mix" followed by time(00:00:05.000)?

My Name is.. demo throws errors on OSX

I tried running this demo locally and I'm assuming it's not actually expecting those strings as actual files. I get the following errors.

Failed to load "+My name is Inigo Montoya.txt"
Failed to load "+Prepare to die.txt"
Failed to load "+You killed my father.txt"
Failed to load "+My name is Inigo Montoya.txt"
Failed to load "+Prepare to die.txt"
Failed to load "+You killed my father.txt"

Decklink prefill options not work and buffer overrun after 24-25 hours.

Make Profile("dv_pal");
Make Consumer(_Profile,"cbrts");
Make Producer(_Profile, "decklink:0");
Producer->set("buffer",50);
Producer->set("prefill",25);
Consumer->connect(*Producer);
Consumer->run();
add log 1
add log 2

Bug 1:
Ok, now i have output: prefill is 25, queue size is 50, frames in queue 1
Prefill set to 25 but frames in queue 1.

Bug 2:
After 24-25 hours producer_decklink say "buffer overrun, frame dropped..." and drop next frames each time.

I add log 2 for check what's happening and is now waiting for the result.

//master/src/modules/decklink/producer_decklink.cpp
//string 534
// Put frame in queue
if ( frame )
{
int queueMax = mlt_properties_get_int( MLT_PRODUCER_PROPERTIES( getProducer() ), "buffer" );
pthread_mutex_lock( &m_mutex );
if ( mlt_deque_count( m_queue ) < queueMax )
{
mlt_deque_push_back( m_queue, frame );
// add log 1
int prefillsize = mlt_properties_get_int( MLT_PRODUCER_PROPERTIES( getProducer() ), "prefill" );
mlt_log_warning( getProducer(), "prefill is %d, queue size is %d, frames in queue %d\n",prefillsize, queueMax, mlt_deque_count( m_queue ));
pthread_cond_broadcast( &m_condition );
}
else
{
// add log 2
int prefillsize = mlt_properties_get_int( MLT_PRODUCER_PROPERTIES( getProducer() ), "prefill" );
mlt_log_warning( getProducer(), "DROP!!! prefill is %d, queue size is %d, frames in queue %d\n",prefillsize, queueMax, mlt_deque_count( m_queue ));

        mlt_frame_close( frame );
        mlt_properties_set_int( MLT_PRODUCER_PROPERTIES( getProducer() ), "dropped", ++m_dropped );
        mlt_log_warning( getProducer(), "buffer overrun, frame dropped %d\n", m_dropped );
    }
    pthread_mutex_unlock( &m_mutex );

Feature Request: HTML Producer

I really like some of the stuff available from CasparCG (https://github.com/CasparCG/Server), but it can be fragile and unstable at times compared to melted. They are using "Chromium Embedded Framework" for HTML5 based motion graphics to be keyed over video sources.

I would prefer to be able to do the same from a linux based melted playout.

It should be easier to do a simple edit to a clip

It is well-nigh impossible to simply edit some sections out of a single clip (which I'm betting is the 99% use-case for a non-pro video editor). I think I did manage to create a custom profile for a 768x432 .avi file that I just wanted to trim a bit, but when I went to render it I got a bunch of choices, none of which were the format of the input clip or the custom profile I just created (and I did see the project dialog suggesting I switch to the custom profile, btw). It should be dead-simple to open a file, cut the interesting bits out and render it (ideally with no re-encode).

Also Shift-R only seems to work once for cutting the clip at the current cursor, and snap doesn't seem to snap very well (I think it needs to take into account the current zoom and snap within some screen-pixel distance of the closest guide, but I think it snaps in frame-space which is useless when you're zoomed out).

The version I just built:
Qt: 4.8.5
KDE Development Platform: 4.11.5
Kdenlive: 0.9.10

Segmentation fault when using both webvfx and audiowaveform

Dear Dan,

I'm getting a crash when using both webvfx and audiowaveform on the same project.

I'm running melt freshly compiled from master branch. The same happens with v6.0.0.

Crash with webvfx and audiowaveform

waveform.xml

<?xml version='1.0' encoding='utf-8'?>
<mlt LC_NUMERIC="en_US.UTF-8">
  <profile width="640" height="360" display_aspect_den="9" display_aspect_num="16" sample_aspect_num="1" sample_aspect_den="1"/>
  <!-- sources -->
  <producer id="test_video">
    <property name="resource">../melt-tests/penguin.mp4</property>
  </producer>
  <producer id="music">
    <property name="resource">test_track.mp3</property>
  </producer>
  <producer id="title">
    <property name="mlt_service">webvfx</property>
    <property name="resource">plain:title.html</property>
    <property name="transparent">1</property>
  </producer>

  <!-- tracks -->
  <tractor id="folder_fx">
    <multitrack>
      <tractor id="folder">
        <multitrack>
          <tractor id="video_track">
            <multitrack>
              <tractor id="track">
                <playlist id="track_pl">
                  <entry producer="title" in="0" out="100"/>
                  <entry producer="test_video" in="0" out="91"/>
                </playlist>
              </tractor>
            </multitrack>
          </tractor>
          <playlist id="music_track">
            <entry producer="music" in="0" out="191" />
          </playlist>
        </multitrack>
        <!-- transitions -->
      </tractor>
    </multitrack>
    <!-- effects -->
    <filter id="audiowaveform">
      <property name="mlt_service">audiowaveform</property>
      <property name="show_channel">1</property>
      <property name="rect">0,20%,100%,60%</property>
      <property name="color.1">0xffffff80</property>
      <property name="thickness">4</property>
    </filter>
  </tractor>
</mlt>
$ DISPLAY=:1.0 melt waveform.xml -progress -consumer avformat:waveform.mp4 strict=experimental
WARNING: QApplication was not created in the main() thread.

(process:16102): GLib-CRITICAL **: g_main_context_push_thread_default: assertion 'acquired_context' failed
Segmentation fault (core dumped)

No crash with audiowaveform and no webvfx

waveform.xml

<?xml version='1.0' encoding='utf-8'?>
<mlt LC_NUMERIC="en_US.UTF-8">
  <profile width="640" height="360" display_aspect_den="9" display_aspect_num="16" sample_aspect_num="1" sample_aspect_den="1"/>
  <!-- sources -->
  <producer id="test_video">
    <property name="resource">../melt-tests/penguin.mp4</property>
  </producer>
  <producer id="music">
    <property name="resource">test_track.mp3</property>
  </producer>
  <!-- <producer id="title">
    <property name="mlt_service">webvfx</property>
    <property name="resource">plain:title.html</property>
    <property name="transparent">1</property>
  </producer> -->

  <!-- tracks -->
  <tractor id="folder_fx">
    <multitrack>
      <tractor id="folder">
        <multitrack>
          <tractor id="video_track">
            <multitrack>
              <tractor id="track">
                <playlist id="track_pl">
                  <entry producer="test_video" in="0" out="100"/>
                  <entry producer="test_video" in="0" out="91"/>
                </playlist>
              </tractor>
            </multitrack>
          </tractor>
          <playlist id="music_track">
            <entry producer="music" in="0" out="191" />
          </playlist>
        </multitrack>
        <!-- transitions -->
      </tractor>
    </multitrack>
    <!-- effects -->
    <filter id="audiowaveform">
      <property name="mlt_service">audiowaveform</property>
      <property name="show_channel">1</property>
      <property name="rect">0,20%,100%,60%</property>
      <property name="color.1">0xffffff80</property>
      <property name="thickness">4</property>
    </filter>
  </tractor>
</mlt>
$ DISPLAY=:1.0 melt waveform.xml -progress -consumer avformat:waveform.mp4 strict=experimental
[filter audiowaveform] Audio not preprocessed. Potential audio distortion.
Current Frame:        192, percentage:         99

No crash with webvfx and no audiowaveform

waveform.xml

<?xml version='1.0' encoding='utf-8'?>
<mlt LC_NUMERIC="en_US.UTF-8">
  <profile width="640" height="360" display_aspect_den="9" display_aspect_num="16" sample_aspect_num="1" sample_aspect_den="1"/>
  <!-- sources -->
  <producer id="test_video">
    <property name="resource">../melt-tests/penguin.mp4</property>
  </producer>
  <producer id="music">
    <property name="resource">test_track.mp3</property>
  </producer>
  <producer id="title">
    <property name="mlt_service">webvfx</property>
    <property name="resource">plain:title.html</property>
    <property name="transparent">1</property>
  </producer>

  <!-- tracks -->
  <tractor id="folder_fx">
    <multitrack>
      <tractor id="folder">
        <multitrack>
          <tractor id="video_track">
            <multitrack>
              <tractor id="track">
                <playlist id="track_pl">
                  <entry producer="title" in="0" out="100"/>
                  <entry producer="test_video" in="0" out="91"/>
                </playlist>
              </tractor>
            </multitrack>
          </tractor>
          <playlist id="music_track">
            <entry producer="music" in="0" out="191" />
          </playlist>
        </multitrack>
        <!-- transitions -->
      </tractor>
    </multitrack>
    <!-- effects -->
    <!-- <filter id="audiowaveform">
      <property name="mlt_service">audiowaveform</property>
      <property name="show_channel">1</property>
      <property name="rect">0,20%,100%,60%</property>
      <property name="color.1">0xffffff80</property>
      <property name="thickness">4</property>
    </filter> -->
  </tractor>
</mlt>
$ DISPLAY=:1.0 melt waveform.xml -progress -consumer avformat:waveform.mp4 strict=experimental
WARNING: QApplication was not created in the main() thread.
[libx264 @ 0x7f7c6c0c7a80] interlace + weightp is not implemented
Current Frame:        192, percentage:         99

test.html

<html>
<head>
</head>
<body>
  <h1 style="color: #FFF;">TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST</h1>
</body>

Many thanks in advance for your help !!

All the best

Geoffroy

[mlt_pool] out of memory

I try to add background music to a video, and I got this error:

[mlt_pool] out of memory 0

And I find melt process %MEM up to 96.8%

And here is my command:
melt -track "http://netdisk.foream.cn:8080/netdisk/iface/downloadFile?fileId=74976&expire=1425987406247&hash=ab0609081cabea3755199519f3e36d3e&ext=.mp4" -audio-track "http://netdisk.foream.cn:8080/netdisk/iface/downloadOpen?fileId=75023" -transition mix:-1 a_track=0 b_track=1 -consumer avformat:c.mp4 vcodec=libx264 acodec=aac

rtsp_transport ignored in avformat producer

I've a problem with rtmp camera stream ingest - it seems that whatever the rtsp_transport value I set, it always uses UDP (at least from what I can tell from the logs). This doesn't work with some cameras not implementing ie, PAUSE command, and the auto fallback doesn't seem to work either (neither does setting the flag prefer_tcp in rtsp_flags). Is there something to double check?

Edit: tested under Ubuntu LTS 14.04, melt from the main repository.

melt not support codec copy?

melt 001.flv in=00:00:10.000 out=00:00:19.960 -consumer avformat:001.mp4 acodec=copy vcodec=copy

[consumer avformat] audio codec copy unrecognised - ignoring
[NULL @ 00546cc0] [consumer avformat] video codec copy unrecognised - ignoring
AVC: nal size 23330846

Problem with lut filter

On the latest master version, I cannot apply the LUT3D effect.
The ffmpeg commands works great:
ffmpeg -i GOPR1519.MP4-stab.avi -vf lut3d=GC_Protune_to_709.cube -c:a copy luted.avi

But when I try the same thing in melt:

melt GOPR1519.MP4-stab.avi -filter avfilter.lut3d av.interp=nearest  av.file=GC_Protune_to_709.cube

I get an error :
[filter avfilter.lut3d] Cannot init filter
and a black output…

Any thoughts ?

bug in mlt_alloc and suggested fix

Hi,

While browsing your code I found some code that may cause problem under some circumstance.
Location:
mlt_pool.c
static void *pool_fetch( mlt_pool self

This seems to be wrong:mlt_release release = mlt_alloc( self->size )
It should be mlt_release release = mlt_alloc( self->size + sizeof( struct mlt_release_s )) ;

Reason? the caller expects to get size but it fact, the caller gets size- sizeof( struct mlt_release_s );
See this line: ptr = ( char * )release + sizeof( struct mlt_release_s );
Allocated size is reduced by mit_release_s.....

J.

why out = total_frames - 1 ?

I do some editing in Shotcut, but I find something interesting: Shotcut sets out = total_frames - 1, such as:

a.mp4, total frames length: 3200, then Shotcut melt xml like: in=0 out=3199

What does it do? THX

bogus warning about "baseline" mis-parsed creating H.264

Related Debian bug: http://bugs.debian.org/764165

Part of the problem is that both AVCodecContext and the libx264 private data context respond to the "profile" property, but the AVCodecContext does not understand the "baseline" value for profile. The explanation on the Libav FAQ does not exactly apply because our avformat consumer uses 'v' prefix to attempt to do the same thing. However, "vprofile=baseline" still causes the problem in MLT because both video contexts still respond to "profile" (v prefix stripped) but only one understands "baseline." Somehow, avconv avoids this problem based upon some kind of difficult to follow logic.

I think part of the problem also stems from the fact that that MLT chooses to be compatible with many versions of Libav and FFmpeg, and the way I implemented mlt_property->AVOption makes it difficult to do something like "do not apply this property to the AVCodecContext if the codec private context accepted it." Not to mention, I have to fully confirm that is even the correct logic. Otherwise, there could be a situation where a redundant AVOption is not set when it should have been.

So, you see, this is something rather specific and a bit complicated for something that is only classified as a nuisance at this point.

First two frames of MP4/H.264 clips with b-frames ignored by MLT

For a long time I have been struggling with MLT (as used in kdenlive, which I use) ignoring the first two frames of clips that my camera recorded. Since not only MLT, but also other software using ffmpeg exhibited similar behaviour, I was unable to really track down the cause of this - until very recently.

I had opened an issue with mpv, which was also not displaying the first frames of such files, and that was recently fixed with a work-around, see mpv-player/mpv#1341 for reference.

There is also a ticket and some sort-of-fix to ffmpeg (as of May 2015) for what looks like the same problem here: https://trac.ffmpeg.org/ticket/4554

Based on these findings, I tried to figure out how to fix MLT such that kdenlive would also use the first frames of such MP4 / H.264 files with b-frames.

To reproduce the issue, please consider this file: http://filebin.ca/1knlOxMESIbK/P1000457.MP4 (3.5 MB < 3 seconds of 1280x720p25 video as recorded by a Panasonic camera, no software conversion in between).
It shows a screen with a millisecond counter, so it's easy to tell exactly what frame is on display.
When replayed in the camera or with the latest (fixed) mpv version, the first frame shown shows time: 3685ms on the display. But MLT using software (like kdenlive) displays the frame showing "3768ms" as the first frame. And even worse, the last frames of the clip will be duplicates - causing ugly transitions to any subsequent clip.

I found that mlt/src/modules/avformat/producer_avformat.c, function find_first_pts(), would return the PTS of the third frame for such files. The DTS of the packet the function looks at is negative. I'm not sure I fully understood the whole chain of events leading up to the wrong "first_pts" value, but I was able to implement some work-around that works for me:

--- src/modules/avformat/producer_avformat.c.orig       2015-10-25 01:24:49.320922931 +0200
+++ src/modules/avformat/producer_avformat.c    2015-10-25 02:01:59.453888378 +0200
@@ -781,6 +781,18 @@
 {
        self->invalid_pts_counter += pts == AV_NOPTS_VALUE;
        self->invalid_dts_counter += dts == AV_NOPTS_VALUE;
+
+       if ((dts != AV_NOPTS_VALUE) && (dts < 0)) {
+               // Decoding Time Stamps with negative values are reported by ffmpeg code for 
+               // (at least) MP4 files containing h.264 video using b-frames.
+               // For reasons not understood yet, the first PTS computed then is that of the
+               // third frame, causing MLT to display the third frame as if it was the first.
+               // This if-clause is meant to catch and work around this issue - if there is
+               // a valid, but negative DTS value, we just guess that the first valid
+               // Presentation Time Stamp is == 0.
+               return 0;
+       }
+
        if ( ( self->invalid_pts_counter <= self->invalid_dts_counter
                   || dts == AV_NOPTS_VALUE ) && pts != AV_NOPTS_VALUE )
                return pts;

I'm kind of sure there are better / cleaner methods than the crude fix above to fix the issue, maybe you can implement one?

Parallelize motion_est filter

Judging a system resources manager like top, the motion_est filter processes file on one CPU core/thread only during scene recognition (since only one core used 100 % of the time). It'd be nice to parallelize the process and remove this bottleneck.

experienced with 0.9.8-1build1 on Ubuntu 15.10

Performance regression with AVCHD in commit c48ed741443ffdc9ba510d0a99354d3a9fd89676

Hello.

I found significant performance regression with playing AVCHD clips in melt (and kdenlive).
I made git bisect and found commit (c48ed74) with this regression. Without this commit I can smoothly play my project (1080p 25fps) in kdenlive or melt (CPU load is about 60-80% for one core). After this commit CPU load always around 100% and I see video with about 15 fps only.

Confused position in framebuffer

Dear,

I want to speed up specific clip of a movie([00:01:00, 00:02:00] of sample.mp4), for some movies command below works:
melt framebuffer:sample.mp4?2 in=00:00:30.000 out=00:01:00.00

but for some other movies, command like:
melt framebuffer:sample.mp4?2 in=00:01:00.000 out=00:01:30.00

It confused me.

PS: Could I do speed up operation in filter, like ffmpeg -vf setpts=0.5*PTS?

fail to build swig/ruby should be easy to fix , though .

Building ruby...OK
make[2]: Entering directory '/builddir/build/BUILD/mlt-6.0.0/src/swig/ruby'
g++ -I. -I/usr/include -I/usr/include/ruby/backward -I/usr/include -I.   -fPIC -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -mtune=generic -m64 -o mlt_wrap.o -c mlt_wrap.cxx
mlt_wrap.cxx:2001:23: fatal error: mlt++/Mlt.h: No such file or directory
compilation terminated.

Looks to me easy to fix, include should be -I ..

Inconsistant rendering in libmelt XML and C interface and 'hold' producer and avformat consumer

I asked this question on Stack Overflow, but the more I think about it, the more I think this might be a bug: http://stackoverflow.com/questions/40047609/inconsistant-rendering-in-libmelt-xml-and-c-interface-and-hold-producer-and-av

For what its worth, I am running OS X El Capitan.

Here is the question:

I am trying to create a short video that is just a single image. (I know its a bit silly, but its a test for something bigger).

The code I have for rendering it is:

#include <framework/mlt.h>
#include <stdlib.h>
#include <unistd.h>

int main() {
  if(mlt_factory_init(NULL)) {
    mlt_profile p = mlt_profile_init(NULL);
    mlt_consumer target = mlt_factory_consumer(p, "avformat", 
    mlt_producer source = mlt_factory_producer(p, "hold", "/Users/leif/logo.png");
    mlt_producer_set_in_and_out(source, 0, 10);
    mlt_consumer_connect(target, mlt_producer_service(source));
    mlt_consumer_start(target);

    sleep(5);
    mlt_consumer_stop(target);

    mlt_consumer_close(target);
    mlt_producer_close(source);
    mlt_factory_close();
  } else {
    printf("No\n");
  }

  return 0;
}

Where logo.png is this file.

When I run this code and play output.mp4, the picture comes out all garbelled. There is a green line in the middle and the logo is superimposed on itself a lot.

On the other hand, if I change the consumer to be SDL, the image plays just fine.

And finally, if I change the consumer to be XML, and then use the melt command line application to render it:

melt -consumer avformat:xmlout.mp4 output.xml

and play the video, it also plays fine.

Is there something I am missing in the avformat consumer that I should be setting? Or something else that I am missing here?

Edit: For reference, the outputted xml file: output.xml is:

<?xml version="1.0" encoding="utf-8"?>
<mlt LC_NUMERIC="en_US.UTF-8" version="6.2.0" root="/Users/leif/src/video/private" title="Anonymous Submission" parent="producer0" in="0" out="10">
      <profile description="DV/DVD PAL" width="720" height="576" progressive="0" sample_aspect_num="16" sample_aspect_den="15" display_aspect_num="4" display_aspect_den="3" frame_rate_num="25" frame_rate_den="1" colorspace="601"/>
  <producer id="producer0" title="Anonymous Submission" in="0" out="10">
    <property name="length">15000</property>
    <property name="eof">pause</property>
    <property name="resource">/Users/leif/logo.png</property>
    <property name="aspect_ratio">1.06667</property>
    <property name="frame">0</property>
    <property name="method">onefield</property>
    <property name="mlt_service">hold</property>
    <property name="global_feed">1</property>
  </producer>
</mlt>

Any feedback you could give would be helpful, thank you.

Build Error on Slackware64 14.2

I get this error building 6.2.0:

producer_avformat.c: In function ‘producer_get_audio’:
producer_avformat.c:2224:17: error: ‘AVCodecContext {aka struct AVCodecContext}’ has no member named ‘request_channels’
codec_context->request_channels = self->audio_index == INT_MAX ? codec_context->channels : *channels;

Would this be connected with ffmpeg version by any chance? I have 3.1.1

Failed to initialize SDL: No available video device

Hi, I just (successfully?) installed the MLT framework on a CentOS 6.5 Linode and am trying to run a melt job on the command line:

[root@mars 20140713]# ./melt ~/chromatest/IMB_SF_R35_C8_512kb.mp4 in=400 -track ~/chromatest/IMB_SF_R19_C9_512kb.mp4 in=450 -filter chroma key=0x00ff0000 variance=0.45 -transition composite
[swscaler @ 0x2f9f6a0] Warning: data is not aligned! This can lead to a speedloss
** [consumer sdl] Failed to initialize SDL: No available video device ** (EMPHASIS MINE)

SO\o I try to install SDL and get:

[root@mars 20140713]# yum install SDL.x86_64
Package SDL-1.2.14-3.el6.x86_64 already installed and latest version
Nothing to do

What can I do?

Also, once I get past the SDL device issue, does the command make sense? I don't understand where the "output" video will be written to.

Thank you,
~Todd

Regular audio artifacts with wav to wav export

I'm having audio artifacts with a wav file. I'm using melt 6.2.0 on 64bit Archlinux.

I posted a minimal project, with the source audio file and the resulting glitchy audio file:
https://hamoid.com/mlt-error-example.zip

You can hear the source file does not glitch but the produced one does. I attached screenshots of audacity, comparing the source with the produced audio files. The spectrograms shows regular glitches at about 0.033 second interval. The waveform, I tried to find the discontinuity, but I'm not sure it's the part I show in the image which produces the audio artifact.

Anything I can do to work around this?

melt failing to run when called from a daemon

I'm trying to use melt as a playout unit within an nginx rtmp server. Running melt from the shell works fine, but the same command fails for some reason when called from within the nginx daemon. Nginx debug messages didn't really seem to tell me anything useful. I'm assuming the problem is with melt, because ffmpeg, gst-luanch, cvlc, etc. work just fine.

rpmlit reports incorrect-fsf-address

mlt.x86_64: E: incorrect-fsf-address /usr/share/licenses/mlt/COPYING
mlt.x86_64: E: incorrect-fsf-address /usr/share/licenses/mlt/GPL
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/jackrack/plugin_mgr.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/normalize/factory.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/jackrack/filter_jackrack.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/jackrack/factory.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/xine/yadif.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/motion_est/factory.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/vmfx/filter_shape.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/motion_est/producer_slowmotion.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/motion_est/arrow_code.h
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/xine/filter_deinterlace.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/melt/io.h
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/resample/factory.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/qt/producer_qimage.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/jackrack/plugin.h
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/vmfx/filter_mono.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/vmfx/factory.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/videostab/stabilize.h
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/motion_est/filter_autotrack_rectangle.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/jackrack/lock_free_fifo.h
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/jackrack/producer_ladspa.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/jackrack/plugin_desc.h
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/plusgpl/filter_lumaliftgaingamma.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/vmfx/filter_chroma_hold.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/resample/filter_resample.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/qt/factory.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/jackrack/filter_ladspa.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/normalize/filter_audiolevel.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/videostab/transform_image.h
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/jackrack/jack_rack.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/jackrack/process.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/jackrack/plugin_desc.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/normalize/filter_volume.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/plusgpl/filter_rotoscoping.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/videostab/filter_videostab.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/xine/cpu_accel.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/videostab/transform.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/qt/qimage_wrapper.h
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/videostab/stabilize.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/qt/qimage_wrapper.cpp
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/jackrack/lock_free_fifo.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/plusgpl/filter_burn.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/jackrack/jack_rack.h
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/xine/deinterlace.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/xine/factory.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/motion_est/sad_sse.h
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/plus/interp.h
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/videostab/transform_image.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/xine/yadif.h
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/videostab/transform.h
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/motion_est/filter_vismv.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/vmfx/producer_pgm.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/jackrack/plugin_settings.h
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/plusgpl/filter_telecide.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/plusgpl/factory.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/jackrack/process.h
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/motion_est/arrow_code.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/vmfx/filter_chroma.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/jackrack/plugin.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/motion_est/filter_motion_est.h
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/jackrack/plugin_mgr.h
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/xine/xineutils.h
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/melt/io.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/melt/melt.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/videostab/filter_videostab2.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/xine/deinterlace.h
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/jackrack/plugin_settings.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/xine/factory.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/jackrack/filter_jackrack.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/vmfx/factory.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/normalize/filter_volume.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/motion_est/factory.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/motion_est/arrow_code.h
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/videostab/transform_image.h
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/vmfx/producer_pgm.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/motion_est/arrow_code.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/jackrack/plugin_settings.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/plusgpl/filter_lumaliftgaingamma.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/resample/factory.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/xine/deinterlace.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/plusgpl/filter_burn.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/qt/qimage_wrapper.h
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/jackrack/process.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/xine/yadif.h
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/videostab/stabilize.h
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/videostab/filter_videostab2.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/plusgpl/factory.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/xine/xineutils.h
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/jackrack/producer_ladspa.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/jackrack/plugin_desc.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/qt/factory.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/melt/io.h
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/videostab/transform.h
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/videostab/stabilize.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/motion_est/filter_motion_est.h
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/resample/filter_resample.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/normalize/factory.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/jackrack/plugin.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/jackrack/plugin_settings.h
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/jackrack/jack_rack.h
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/jackrack/filter_ladspa.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/jackrack/lock_free_fifo.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/plus/interp.h
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/plusgpl/filter_rotoscoping.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/motion_est/filter_vismv.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/jackrack/plugin_mgr.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/jackrack/factory.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/videostab/filter_videostab.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/xine/deinterlace.h
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/videostab/transform_image.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/plusgpl/filter_telecide.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/motion_est/filter_autotrack_rectangle.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/motion_est/sad_sse.h
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/xine/cpu_accel.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/motion_est/producer_slowmotion.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/melt/io.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/jackrack/jack_rack.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/melt/melt.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/jackrack/plugin.h
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/jackrack/lock_free_fifo.h
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/vmfx/filter_chroma.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/jackrack/plugin_desc.h
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/normalize/filter_audiolevel.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/vmfx/filter_mono.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/qt/producer_qimage.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/jackrack/process.h
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/xine/filter_deinterlace.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/qt/qimage_wrapper.cpp
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/xine/yadif.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/vmfx/filter_chroma_hold.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/jackrack/plugin_mgr.h
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/videostab/transform.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/vmfx/filter_shape.c

please, at least, redownload https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt to mlt/COPYING and https://www.gnu.org/licenses/old-licenses/gpl-2.0.txt to mlt/GPL

release request

Currently we are not able to build cerain software without depending on mlt-git. See nfnty/pkgbuilds#3 Would it be possible for you to release a new version of mlt?

Melt doesn't seem to respect a given "in frame" on speed adjustments

Hi! Please excuse me for double posting this issue. Not sure which one of sourceforge or github's tracker is active. (if not both?)

I'm trying to write an automated system for previewing video clips in a timeline. It works just fine for regular speed video, but I have isssues when using video played back at other speeds. Melt doesn't seem to respect the in frame given in the xml.
I found this issue, but it doesn't apply to my case as I need to trim away a handle and begin at frame 15. With a speedup of 4 it begins at frame 60 of the file.
I also confirmed the same behavior when doing the same speedup in OpenShot. Both in the program and when using an exported mlt xml.
I've tried timewarp and framebuffer producers both yielding the same result. Here is an example of how I do the speedup:

<producer id="ms160_conform_plate_main_v001_ClientSDComp_photojpeg.mov">
  <property name="mlt_service">framebuffer</property>
  <property name="resource">/mnt/data/ms160_conform_plate_main_v001_ClientSDComp_photojpeg.mov?4.0</property>
</producer>
<playlist id="video1">
  <blank length="25"/>
  <entry in="15" out="50" producer="ms160_conform_plate_main_v001_ClientSDComp_photojpeg.mov"/>
</playlist>

Am I doing this wrong or is this a bug?
Versions: 0.7.7 (ubuntu12.04) and 6.0.0 (ubuntu 16.04)

Thanks,
-Daniel

Avformat producer AV sync

There's a problem with keeping A+V synchronization on long running live input streams. My input is a multicast UDP MPEG-TS from a decent source (satelite ingest for a big iptv provider, my server is in the same facility). Over 15h video is 1 minute ahead of audio (it's perfectly in sync at the start). On the other hand just playing the stream using ffplay or doing a live transcode with the same version of ffmpeg used for building melt is in perfect sync.

MLT compile error on CentOS 6.7

Trying to compile it on CentOS 6 but getting a lot of errors on avformat module:

make[2]: Entering directory `/root/mlt/src/modules/avformat'
cc -I../.. -DARCH_X86_64 -Wall -DPIC   -O2 -pipe -fno-tree-dominator-opts -fno-tree-pre -ffast-math -DUSE_MMX -DUSE_SSE -DUSE_SSE2 -g -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCPIC -pthread -DAVDATADIR=\"/usr/share/ffmpeg/\" -I/usr/include/ffmpeg   -I/usr/include/ffmpeg   -I/usr/include/ffmpeg   -I/usr/include/ffmpeg   -I/usr/include/ffmpeg   -DFILTEDCODECS -DAVDEVICE   -c -o filter_avcolour_space.o filter_avcolour_space.c
cc -I../.. -DARCH_X86_64 -Wall -DPIC   -O2 -pipe -fno-tree-dominator-opts -fno-tree-pre -ffast-math -DUSE_MMX -DUSE_SSE -DUSE_SSE2 -g -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCPIC -pthread -DAVDATADIR=\"/usr/share/ffmpeg/\" -I/usr/include/ffmpeg   -I/usr/include/ffmpeg   -I/usr/include/ffmpeg   -I/usr/include/ffmpeg   -I/usr/include/ffmpeg   -DFILTEDCODECS -DAVDEVICE   -c -o filter_avdeinterlace.o filter_avdeinterlace.c
cc -I../.. -DARCH_X86_64 -Wall -DPIC   -O2 -pipe -fno-tree-dominator-opts -fno-tree-pre -ffast-math -DUSE_MMX -DUSE_SSE -DUSE_SSE2 -g -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCPIC -pthread -DAVDATADIR=\"/usr/share/ffmpeg/\" -I/usr/include/ffmpeg   -I/usr/include/ffmpeg   -I/usr/include/ffmpeg   -I/usr/include/ffmpeg   -I/usr/include/ffmpeg   -DFILTEDCODECS -DAVDEVICE   -c -o filter_swscale.o filter_swscale.c
filter_swscale.c: In function ‘convert_mlt_to_av_cs’:
filter_swscale.c:40: error: ‘AV_PIX_FMT_RGB24’ undeclared (first use in this function)
filter_swscale.c:40: error: (Each undeclared identifier is reported only once
filter_swscale.c:40: error: for each function it appears in.)
filter_swscale.c:44: error: ‘AV_PIX_FMT_RGBA’ undeclared (first use in this function)
filter_swscale.c:47: error: ‘AV_PIX_FMT_YUYV422’ undeclared (first use in this function)
filter_swscale.c:50: error: ‘AV_PIX_FMT_YUV420P’ undeclared (first use in this function)
filter_avcolour_space.c: In function ‘convert_mlt_to_av_cs’:
filter_avcolour_space.c:50: error: ‘AV_PIX_FMT_RGB24’ undeclared (first use in this function)
filter_avcolour_space.c:50: error: (Each undeclared identifier is reported only once
filter_avcolour_space.c:50: error: for each function it appears in.)
filter_avcolour_space.c:54: error: ‘AV_PIX_FMT_RGBA’ undeclared (first use in this function)
filter_avcolour_space.c:57: error: ‘AV_PIX_FMT_YUYV422’ undeclared (first use in this function)
filter_avcolour_space.c:60: error: ‘AV_PIX_FMT_YUV420P’ undeclared (first use in this function)
filter_avcolour_space.c: In function ‘av_convert_image’:
filter_avcolour_space.c:126: error: ‘AV_PIX_FMT_YUYV422’ undeclared (first use in this function)
filter_avcolour_space.c:138: error: ‘AV_PIX_FMT_RGB24’ undeclared (first use in this function)
filter_avcolour_space.c:138: error: ‘AV_PIX_FMT_RGBA’ undeclared (first use in this function)
filter_avcolour_space.c: In function ‘filter_avcolour_space_init’:
filter_avcolour_space.c:323: error: ‘AV_PIX_FMT_RGB32’ undeclared (first use in this function)
filter_avdeinterlace.c: In function ‘mlt_avpicture_deinterlace’:
filter_avdeinterlace.c:237: error: ‘AV_PIX_FMT_YUV420P’ undeclared (first use in this function)
filter_avdeinterlace.c:237: error: (Each undeclared identifier is reported only once
filter_avdeinterlace.c:237: error: for each function it appears in.)
filter_avdeinterlace.c:238: error: ‘AV_PIX_FMT_YUV422P’ undeclared (first use in this function)
filter_avdeinterlace.c:239: error: ‘AV_PIX_FMT_YUYV422’ undeclared (first use in this function)
filter_avdeinterlace.c:240: error: ‘AV_PIX_FMT_YUV444P’ undeclared (first use in this function)
filter_avdeinterlace.c:241: error: ‘AV_PIX_FMT_YUV411P’ undeclared (first use in this function)
filter_avdeinterlace.c: In function ‘filter_get_image’:
filter_avdeinterlace.c:315: error: ‘AV_PIX_FMT_YUYV422’ undeclared (first use in this function)
filter_swscale.c: In function ‘filter_scale’:
filter_swscale.c:145: error: ‘AV_PIX_FMT_GRAY8’ undeclared (first use in this function)
make[2]: *** [filter_avcolour_space.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: *** [filter_avdeinterlace.o] Error 1
filter_swscale.c: In function ‘filter_swscale_init’:
filter_swscale.c:179: error: ‘AV_PIX_FMT_RGB32’ undeclared (first use in this function)
make[2]: *** [filter_swscale.o] Error 1
make[2]: Leaving directory `/root/mlt/src/modules/avformat'
make[1]: *** [all] Error 1
make[1]: Leaving directory `/root/mlt/src/modules'
make: *** [all] Error 1

Please help.
Regards.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.