Dan Dennedy [Fri, 27 May 2011 03:45:30 +0000 (20:45 -0700)]
Do not immediately destroy all cache items on purge.
This is behaving badly with the addition of mlt_service_cache_purge in
the avformat producer because there were frames in consumer buffers
holding references to cache items calling mlt_cache_item_close on
destruction.
Dan Dennedy [Sun, 22 May 2011 18:30:32 +0000 (11:30 -0700)]
Fix full closure of avformat on explicit close.
JBM wrote:
Creating a video4linux producer like (simplified code):
producer = new Mlt::Producer(*profile, "video4linux2:/dev/video0");
consumer->connect(*producer);
consumer->start();
It works fine. But when I want to stop the capture, there is no way to
stop the video4linux producer. Deleting the producer and the consumer
still leaves the video4linux device open.
After a few hours of struggling, I figured out that some stuff was kept
in the cache. Adding :
Dan Dennedy [Sun, 15 May 2011 22:05:17 +0000 (15:05 -0700)]
Improve frame-dropping for real_time=1.
Uses thresholds relative to fps and buffer levels.
Properly drops more frames to keep audio continuous.
Does not drop first several frames to prevent chopping playback.
Dan Dennedy [Fri, 13 May 2011 03:12:00 +0000 (20:12 -0700)]
Presets!
Put property setters in a file and apply them to a service using
properties=filename. Alternatively, apply a supplied preset using
properties=preset. For example, melt ... -consumer avformat:my.vob
properties=DVD.
Dan Dennedy [Wed, 11 May 2011 04:27:31 +0000 (21:27 -0700)]
Add support for ladspa.id variants.
This is much more convenient to use without having to compose the JACK
Rack XML. Also, we will be able to add future support for property
animation (automation), which JACK Rack lacks. However, it does still
support loading and processing JACK Rack files.
Dan Dennedy [Mon, 9 May 2011 00:59:30 +0000 (17:59 -0700)]
Add support for sox.effect variants.
The legacy forms of 'sox:"effect options"' and 'sox effect="name
options"' still work. The new forms allows them all to be enumerated by
Mlt apps, e.g.: melt -query filter. Also, this registers metadata for
both the generic 'sox' filter and all of the new 'sox.effect' ones
including their usage help!
Dan Dennedy [Sat, 7 May 2011 05:46:59 +0000 (22:46 -0700)]
Factor out some frame properties in transitions.
Transitions had to apply a pattern of copying some properties from the A
frame to the B frame that was unrelated to its core routine. This is now
largely taken care of by a recent commit to mlt_transition.c.
Dan Dennedy [Sat, 7 May 2011 04:54:29 +0000 (21:54 -0700)]
Revert commits e49264, c9cb51, and e7a775.
These commits are related to kdenlive bugs 1962 and 2003.
This is about an a/v sync problem when using full duration of a file.
The changes are reverted because I believe the root cause is returning
fewer samples than requested on the last frame of audio, and that was
fixed in the previous commit.
Also, the adjust_length property is removed because it did not work; the
property was not available when trying to get it from within the
constructor. The correct way to adjust the length is to first get the
length and then set the length and out properties.
Dan Dennedy [Sat, 7 May 2011 03:56:27 +0000 (20:56 -0700)]
Add conversion routines for new audio formats.
These only doing conversion _from_ the new types mlt_audio_s32le and
mlt_audio_f32le. There are no plans at the moment for conversion into
them, but it is certainly not out of the question.
Dan Dennedy [Sat, 7 May 2011 03:52:25 +0000 (20:52 -0700)]
Add audiochannels normalization filter.
Refactors code from the resamplers into a new filter to be more
manageable. Eventually, we can add options on what to do when
adding/removing channels.
Dan Dennedy [Wed, 4 May 2011 06:23:59 +0000 (23:23 -0700)]
Ensure transition B frames get some consumer properties.
Also, ensure both A and B frames have sane scaling and aspect ratio
values.
This addresses an issue where composite and region were not getting the
correct deinterlace method impacting performance. In addition, it
factors out some common code (best practice) from various transitions
moving it into the framework.
Dan Dennedy [Mon, 2 May 2011 05:17:48 +0000 (22:17 -0700)]
Finish work to normalize channel count.
Also, refactor the audio resamplers to use mlt_audio_format_size() and
mlt_frame_set_audio(). Currently, there are no controls over which
channels to drop or duplicate.
Dan Dennedy [Sun, 1 May 2011 02:03:13 +0000 (19:03 -0700)]
Fix sample rate and channel count from avformat producer.
If unable to resample or the decoder does not give the requested channel
count, then we should return the actual values so downstream components
can do the correct thing if they can. A good example of this is 6
channel AAC when the consumer requests 2 channels. Unlike the AC-3
decoder, the AAC decoder can not downmix. So, we were returning audio
pcm containing 6 channels but with a channel count of 2.