Wednesday, December 9, 2009

v0.4.10 released

Yesterday, I introduced a fatal bug shortly before the 0.4.8 release. Actually, a bug fix exposed a different bug. So, this release is a "hot fix" release.

Tuesday, December 8, 2009

v0.4.8 released

This is mainly a maintenance release. Besides bug fixes here are other
notable changes.

  • avformat producer:
    • refactored producer to use much less properties
    • added support for audio_index=all for linsys_sdi consumer
    • added force_fps property (does yet not adjust duration)
  • core/crop: added "center" property to crop filter
  • linsys_sdi:
    • added support for >2 audio channels
    • added property<N>.channels=<integer>
    • added property<N>.start=<integer>
  • qimage/kdenlivetitle: add typewriter effect

Monday, November 30, 2009


Last week I added support for VDPAU decoding of H.264. This is working and stable, but it is not yet pushed to the public Git repository. Currently, one can only load about 10-20 AVCHD clips - depending upon video memory. I have to refactor the FFmpeg (avformat) module to take advantage of the new LRU mlt_cache. Previously, this was difficult due to all the numerous properties it was using. Well, just after the 0.4.6 release, I had refactored it to use a mlt_producer child structure. This was done partly to be more efficient and gave me an opportunity to have a thorough re-review of this code before embarking on a major change I promised in exchange for getting the Linsys SDI consumer as open source and a card with which to test it. I know; I am rambling. The point is that it should be fairly easy to now make it use the cache, which means it will also be possible to support hundreds of clips in a project with random access. (Previously, hundreds could only be supported for sequential access by usage of the autoclose=1 property on the playlist object.)

Whew! OK, now for the not-so-great part. I was hoping this could give a good performance boost especially for seeking as that took a major hit in performance in 0.4.6 in exchange for accuracy and quality. Unfortunately, on my MacBook Pro with a Geforce 8600M GT, I am only seeing about a one second improvement in seek performance and this is without disabling the in-loop deblocking filter on the CPU test. I see about 33% improvement in time to simply decode frames as-fast-as-possible and about a 10% reduction in CPU utilization during real-time playback. Why is this? Well for one, MLT uses packed 4:2:2 for its Y'CbCr colorspace and even though the API seems to indicate it can provide this, neither of my 2 systems that can support VDPAU can provide this. Therefore, it must still do a colorspace conversion on the CPU. The overhead of sending the bitstream to the GPU and especially receiving the uncompressed decoded image back into system memory seems to counter-compensate the gains provided by the GPU. I do plan to keep this code and try to integrate the deinterlacer and perhaps some other filters to make it more compelling. However, it means I am going to wait until after today's release to further it and make it available.

Wednesday, October 7, 2009

v0.4.6 released

This release is an enhancement release along with numerous build, A/V synch, concurrency, and other bug fixes.

configure:  new option --avformat-svn-version

  • avformat: much improved seeking on H.264/MPEG2-TS (AVCHD) (Ivan Schreter)
  • core: new imageconvert and audioconvert filters (framework refactorization)
  • linsys: new SDI consumer (Broadcast Centre Europe)
  • qimage: new kdenlivetitle producer (J.B. Mardelle and Marco Gittler)
  • sdl: new audio_only consumer for OS X
mlt++ and swig: update bindings

  • refactored image format conversion
  • mlt_frame.h:
    • added convert_image() virtual function
    • added mlt_image_format_name()
    • removed many mlt_convert_ and scaling/padding functions
  • refactored audio format conversion
  • mlt_frame.h:
    • mlt_get_audio() virtual function parameters changed
    • added convert_audio() virtual function
    • mlt_frame_get_audio() parameters changed
    • added mlt_frame_set_audio()
    • added mlt_audio_format_name()
  • mlt_types.h:
    • deprecated mlt_audio_pcm
    • added mlt_audio_s16
    • added mlt_audio_s32
    • added mlt_audio_float

Wednesday, September 9, 2009

Kdenlive on Mac OS X

It lives! For a while now, MLT has worked on Mac OS X, but it was not possible to embed the MLT video window into a native Carbon or Cocoa application. However, with a new SDL audio-only consumer, an application can retrieve the image in a MLT frame-show event handler and paint it as desired. In the case of Kdenlive, I used a custom QGLWidget:

Free/Open Source SDI plugin now available

Thanks to Linsys and Broadcast Centre Europe, MLT Git trunk now features a fully open source SDI output capability. Whereas the closed BlueFish444 module also supports HD, this is currently SD only.

Saturday, July 25, 2009

status update

Here are some things that are happening since the v0.4.4 release. First, already committed to the Git tree, image conversion throughout the framework and modules has been refactored to reduce the number of conversions and only convert when necessary. This benefit in performance and quality is most noticeable when applying multiple frei0r-based filters. However, it also helps with the development and maintenance of the code.

Currently, I am working on the same for the audio where the benefit is most noticeable when applying multiple LADSPA or SoX-based filters. This is not yet in the Git tree.

Also, I have been working on the ability to embed the SDL window inside of Qt applications on Mac OS X (based on avidemux's approach). Embedding is currently working in my test app, and I am working on handling resize events. I am rather worried about making this work stably.

Finally, Broadcast Centre Europe has contributed an open source consumer for the Linsys SD SDI card. They have sent me a card and the code, but I have not yet had a chance to review and commit this.

Tuesday, June 30, 2009

v0.4.4 release

This version is mostly fixes to bugs reported in Kdenlive, and changes from distribution maintainer feedback.

Saturday, May 30, 2009

v0.4.2 released

This is a quick followup to v0.4.0 to address a few important things as a result of all the changes in recently in MLT and FFmpeg.

Wednesday, May 20, 2009

Source code repository moved

We are no longer using Subversion. We have git repositories hosted at git:// and git://

Monday, May 18, 2009

inigo is now known as melt!

Read the full details of our source code reorganization: