Dan Dennedy [Tue, 7 Sep 2010 01:35:50 +0000 (18:35 -0700)]
Fix regression in commit f9dbf1.
Sometimes a frame may not have an alpha channel nor "scaled_width" and
"scaled_height" properties thereby yielding a default alpha with size
0x0. The fix is to add a check for valid alpha size. Also, make the
tractor pass a size for the alpha channel instead of just 0.
Dan Dennedy [Sun, 5 Sep 2010 07:05:08 +0000 (00:05 -0700)]
Fix a regression in the yadif deinterlace filter.
Now that it properly checks if the previous frame progressive after getting its image, when progressive, it was returning the previous frame's image for the current frame!
Dan Dennedy [Fri, 3 Sep 2010 18:37:52 +0000 (11:37 -0700)]
Fix channel alignment in sox filter.
This pointer swapping is somehow breaking the stereo imaging even though
I can not see why now. Anyways, it no longer support multiple effects,
so it does not matter.
Dan Dennedy [Sat, 21 Aug 2010 08:44:49 +0000 (01:44 -0700)]
Enhance luma filter to work with animated filters.
Previously, in a slideshow the luma filter would apply the dissolve or
wipe repeatedly over a slide. For example, with a slide duration of 75
frames and a luma period of 25 (expressed as 24), the wipe occurs 3
times. However, since the slides were static, you did not notice it
until the transition at the beginning of a new slide - when you do want
to see it. However, upon adding an affine filter to animate a smooth
pan/zoom, you do notice the extra repetitions - the slides appear to
blend with one another when they are not transitioning.
This change fixes that with new properties 'cycle' and 'duration'. Cycle
is basically a replacement for 'period' that fixes the semantics to
properly represent a duration. Where you would previously express, for
example, period=24, you now say cycle=25. The 'duration' property
prevents the repeating and expresses that the transition should only
occur within the first N frames of the cycle. See demo/mlt_slideshow2
for an example of using it in conjunction with the affine filter!
Dan Dennedy [Thu, 19 Aug 2010 04:45:02 +0000 (21:45 -0700)]
Fix waveform generation.
It was not obtaining a valid fps. Also, changed rendering to something
more expected - negative as negative and channels stacked.
Also, add a Python binding to this call to return 8-bit grayscale image
as a Python string. Finally, add a Python example.
Dan Dennedy [Mon, 16 Aug 2010 09:09:46 +0000 (02:09 -0700)]
Add a panning filter.
This does a simple left/right balance when channel=-1 (default). When
channel >= 0, you can adjust an individual channel's left/right
position. Whereas the simple balance will not cause one channel to
appear in another channel, the individual channel does. The start/end
properties are floats in the range [-1.0, 1.0]. A start property alone
makes it constant over the duration of the filter. There is some
handling for more than 2 channels by providing front/rear fade and
ganging (balance front and rear together or fade left and right
together).
Dan Dennedy [Mon, 16 Aug 2010 08:58:59 +0000 (01:58 -0700)]
Fix ramping the mix level in mix transition.
Without ramping the same mix level is applied across the samples in the
frame. The result is a stair-stepping effect. With ramping, the mix
levels are actually values _between_ frames and the mix factor gradually
changes from one level to the next across all of the samples in the
frame.
Dan Dennedy [Fri, 13 Aug 2010 05:49:36 +0000 (22:49 -0700)]
Cleanup existing native color space conversions.
This change clarifies that the existing conversions are according to the
ITU 601 standard and scaled to and from full gamut RGB. Also, adjust 2
coefficients according to Charles Poynton's matrices. This does not yet
attempt to make any substantial improvements.
Finally, it replaces the verbose logic and redundancy in the image
conversion routine with a concise function dispatch table.
Dan Dennedy [Mon, 9 Aug 2010 04:10:19 +0000 (21:10 -0700)]
Optimize some deinterlace filter logic.
Prevents YADIF from fetching current frame image if previous frame image
is signalled progressive. Also, tells mlt_service to stop decorating
frame with previous and next frames when producer is determined to be
progressive or deinterlace is not requested.
Add support for auto rotation for images with exif data
The meta.attr.rotation property must be set to the exif data
to get the auto rotate effect. Only supported by qimage producer, not
with pixbuf currently...
modified: src/modules/qimage/qimage_wrapper.cpp
Dan Dennedy [Sun, 16 May 2010 18:03:32 +0000 (11:03 -0700)]
Multitrack audio encoding continued.
This version changes the configuration and remapping. The number of
channels per output audio track is set using "channels.<N>" properties
on the avformat consumer, where <N> is a 0-based numeric representing
the output track. At this time, all tracks must share all other
attributes such as sample rate, codec, and bitrate.
As for the remapping, this attempts to reuse the meta.map.audio...
properties set on the producers as used with the sdi consumer. One
exception: to skip or silence channels at the beginning tracks or in the
middle, you must add additional map properties to the end of the list to
simulate these "gaps."