Dan Dennedy [Sun, 26 Sep 2010 19:32:43 +0000 (12:32 -0700)]
Use denominators as the litmus test for generating profile.
This allows converting all producers to meta.media.width and
meta.media.height while not attempting to auto-profile the image
producers, which can potentially hold extremely large images and do not
contain any inherent frame rate. This also protects from potential
divide by zero errors.
Dan Dennedy [Sun, 29 Aug 2010 06:10:34 +0000 (23:10 -0700)]
Add an automatic profile feature to melt.
Here are the main use cases this feature provides:
- Given a regular (non-mlt-xml) media file, melt reads the media
attributes and generates an equivalent MLT profile. This makes it easier
to transcode without changing or specifying resolution, aspect, and
framerate.
- Given a MLT XML file containing a profile attribute or element, melt
loads the specified profile. A composition typically contains profile-
without you having to remember.
- Given a MLT XML containing a profile but also specifying a -profile
option, melt automatically uses the 'consumer' producer with the
requested profiles. This is similar to the above case, but when
explicitly choosing a profile different than the composition one should
use the consumer producer. This just makes melt smarter and more
automatic.
Dan Dennedy [Sun, 29 Aug 2010 05:59:35 +0000 (22:59 -0700)]
Add immutable meta.media-prefixed properties.
I am deprecating real_width, real_height, and source_fps in favor of new
properties prefixed by "meta.media." These are different than the
"meta.media.N.stream" and "meta.media.N.codec" properties because they
represent the selected tracks as well as some interpretation of the raw
AVFormat and AVCodec attributes in addition to reflecting "force_"
overrides.
There is still many changes to make throughout to full remove real_width
and real_height. This change just adds what melt's new auto-profile
feature needs for most use cases.
Handle --avformat-svn-version=0.5.
Fix building without swscale.
Fix compiling new colorspace stuff against FFmpeg <= v0.5.
FFmpeg libs are increasing; only support contemporary header layout.
Dan Dennedy [Sun, 26 Sep 2010 22:47:35 +0000 (15:47 -0700)]
Rename variables and properties around luma range for clarity.
Frame property "force_full_luma" controls this and can be set via
producer property "set.force_full_luma." However, it is not really ready
for use until libswscale can respect its full_range parameter in a RGB
to YUV conversion.
Dan Dennedy [Tue, 24 Aug 2010 07:24:25 +0000 (00:24 -0700)]
Get initial skipping of luma scaling to work.
When the avformat producer property skip_luma_scale is set to 1, then we
do not scale the luma on the first YCbCr to RGB conversion. This is only
done once because swscale always downscales luma when converting RGB to
YCbCr, and we need to keep the conversions symmetrical to prevent luma
contraction (loss of contrast).
Dan Dennedy [Tue, 21 Sep 2010 05:21:34 +0000 (22:21 -0700)]
Fix field order correction on cached image.
When the avformat producer is using image caching, the field order is
top-field-first, and the consumer is paused then the field order
correction was applied to the cached image. As a result, when repeating
the image due to being paused, the active image would scroll down the
frame. This fixes it by copying to a new image instead of reusing the
cached image.
Dan Dennedy [Sat, 11 Sep 2010 05:04:44 +0000 (22:04 -0700)]
Base alpha channel on width and height.
Removes scaled_width and scaled_height properties, which were typically
redundant with width and height, but less available. Besides, width and
height better reflect the image attributes to help keep the image and
alpha channel in sync.
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.