Dan Dennedy [Tue, 15 Dec 2009 06:20:44 +0000 (22:20 -0800)]
Revert a bunch of changes made to SDL for VDPAU.
This set of changes conflicted with Kdenlive, which requires two
consumers that need to release SDL on stop. Now, VDPAU support does not
need SDL as it gets its own X11 Display pointer.
Dan Dennedy [Mon, 14 Dec 2009 03:40:40 +0000 (19:40 -0800)]
Fix for when actual channels does not match requested.
This typically only happens when using audio_index=all on the avformat
producer.
This also adds a audio_offset property to the sdl consumer to help with
testing audio_index. It takes a numeric value in units of channels over
which to skip.
Dan Dennedy [Mon, 14 Dec 2009 00:59:23 +0000 (16:59 -0800)]
Add producer variant avformat-novalidate.
The purpose of this is to increase the speed of loading playlists with
known good files. Use with care. This assumes a few properties have been
set, in particular "length." This was only tested thus far by modifying
the output of consumer xml to change mlt_service from "avformat" to
"avformat-novalidate".
Dan Dennedy [Sun, 29 Nov 2009 01:13:01 +0000 (17:13 -0800)]
Add support for decoding H.264 with VDPAU.
This applies to all H.264 at the moment unless novdpau=1 is set on the
producer. Also, this can only handle up to about 10 - 15 clips using
VDPAU in the project at the moment until the avformat producer is
changed to use mlt_cache.
Dan Dennedy [Sun, 29 Nov 2009 01:08:13 +0000 (17:08 -0800)]
Make the SDL consumer cooperate with VDPAU.
This moves the SDL_Quit calls from the consumer_stop to the
consumer_close functions. Also, it exports the X11 Display pointer to
the mlt_environment and the global SDL mutex to the consumer class.
Dan Dennedy [Wed, 2 Dec 2009 06:38:30 +0000 (22:38 -0800)]
Fix distorting aspect ratio of images with crop.
Unfortunately, this has the side effect of breaking the crop extents of
existing projects when crop was applied to an image or image sequence.
However, those projects were using a distorting version of crop and
would need to be revised anyways.
Dan Dennedy [Sat, 21 Nov 2009 08:04:39 +0000 (00:04 -0800)]
Fix seek on some AVCHD causing infinite loop.
This detects when libavformat starts to consistently report invalid PTS
and then will disable Ivan's new_seek code. In the example file I have
this only happens when seeking backwards, which typically implies an
interactive use case (except when using framebuffer with speed < 0).
Then, it should still use the new_seek when simply apply an in point to
allow for a clean, accurate cut.
Dan Dennedy [Sun, 11 Oct 2009 05:58:43 +0000 (22:58 -0700)]
Add audio channel mapping.
This uses meta properties on the producer:
meta.map.audio.<N>.channels=<integer>
meta.map.audio.<N>.start=<integer>
where 8 > N >= 0.
The consumer loops over N, consumes meta...channels and outputs them
from channel meta...start. The channel index starts at 0. For example,
if the first audio track of the clip is stereo English and the second
audio track is stereo French, then this will swap them:
$ melt someclip audio_index=all meta.map.audio.0.channels=2
meta.map.audio.0.start=2 meta.map.audio.1.channels=2
meta.map.audio.1.start=0 -consumer linsys_sdi.
However, the last pair of meta properties in this example are actually
optional. The algorithm outputs the remaining channels at the start
channel you specify. But since getting an unspecified property yields 0,
the last meta properties is unnecessary as well.
Dan Dennedy [Fri, 25 Sep 2009 06:08:26 +0000 (23:08 -0700)]
Wait for and close AVCodec threads at end.
Except when using x264 because it may crash at the end of the second
pass when using multiple threads. Also, cleanup another dual pass log
file that new versions of x264 creates.