Wim Taymans
63012a07c5
video-converter: split YUV to and from RGB conversions
...
Prepare for doing full gamma corrected conversion and scaling by first
splitting the conversions from and to RGB into separate steps.
split scaling in downscaling and upscaling steps to be performed before
and after conversion respectively.
2014-11-19 12:55:02 +01:00
Wim Taymans
f51bed2a3b
video-converter: don't convert too much
...
because we do conversion after downscaling we only need to convert the
smallest width.
2014-11-19 12:55:02 +01:00
Wim Taymans
fc5dd035fa
video-converter: add orc splat functions to draw border
2014-11-19 12:55:02 +01:00
Wim Taymans
61e84bc435
video-converter: take offset into account when unpacking
...
When we can directly take the input line from the source frame when
unpacking, also take into account the x offset.
2014-11-12 09:57:38 +01:00
Wim Taymans
bb4863111b
video-converter: add some notes
2014-11-12 09:57:12 +01:00
Wim Taymans
7690d97189
video-converter: clamp lines
2014-11-06 18:19:44 +01:00
Wim Taymans
d35c5fd75c
video-converter: ORCify 8<->16 conversion
2014-11-06 16:26:24 +01:00
Wim Taymans
da6f66e550
video-converter: unpack into the destination when needed
...
Make sure we write into the destination line when we can propose the
dest allocator.
2014-11-06 16:26:24 +01:00
Wim Taymans
d148963c7a
video-converter: add more debug
2014-11-06 16:26:24 +01:00
Wim Taymans
7888b4f9fa
video-converter: keep separate lines with border
...
Make separate with a border around them so that we can avoid a memcpy.
2014-11-05 11:55:22 +01:00
Wim Taymans
0980dfcb99
video-converter: pass output line correctly
2014-11-05 11:55:21 +01:00
Wim Taymans
3dd059baf3
video-converter: rework the converter to allow more optimizations
...
Rework the converter, keep track of the conversion steps by chaining the
cache objects together. We can then walk the chain and decide the
optimal allocation pattern.
Remove the free function, we're not going to need this anytime soon.
Keep track of what output line we're constructing so that we can let the
allocator return a line directly into the target image when possible.
Directly read from the source pixels when possible.
2014-11-04 17:38:11 +01:00
Wim Taymans
7a56ec1186
video-converter: add extra pixels for the border
...
We need extra pixels for the border.
2014-11-03 16:19:25 +01:00
Wim Taymans
e72a01e949
video-converter: Add support for 16 bits formats
...
Rework the way we track the current state of the video through the
different conversion phases and use this to make sure we use the right
format and pstride where needed.
2014-11-03 15:41:02 +01:00
Wim Taymans
b3ff9c030f
video-converter: align offsets to subsampling
...
Only apply an offset that is a multiple of the subsampling. To handle
arbitrary offsets in the future, we need to be able to chroma-resample
part of the borders.
2014-10-31 11:23:21 +01:00
Wim Taymans
308d21c71f
video-converter: clamp output lines
2014-10-31 11:23:21 +01:00
Wim Taymans
5c3c42b95d
video-converter: also chroma up/downsample when scaling
2014-10-31 11:23:21 +01:00
Wim Taymans
6a529cb1dd
video-converter: clamp input lines correctly
2014-10-31 11:23:21 +01:00
Wim Taymans
5cf4aa358d
video-converter: add border color
2014-10-30 17:34:48 +01:00
Wim Taymans
ce2d4d40a1
video-converter: add support for src/dest regions
...
Add support for cropping the source and placing the converted image
into a rectangle in the destination frame.
Add an option to add a border and border color.
2014-10-30 17:34:48 +01:00
Wim Taymans
ca2bd1cc6b
video-scaler: rename resampler to video-resampler
...
Prefix the resampler with video-. It we would like to reuse the
resampler for audio later, we can copy/move it and deprecate this
one.
2014-10-30 11:48:00 +01:00
Wim Taymans
daf20d5e09
video-scaler: remove color range argument
...
We just need to clip to the format limits, if there is extra headroom in
the range we can use that without problems.
2014-10-29 17:38:33 +01:00
Wim Taymans
72b30ac5ed
video-converter: copy config fields
...
When setting a new config, copy all the fields into our own config and
not only the ones we know about.
2014-10-29 16:26:19 +01:00
Wim Taymans
9591e22fee
video-converter: don't convert too much
...
Always convert the smallest width.
2014-10-29 16:26:10 +01:00
Wim Taymans
716b91d86e
resampler: add parameters to cubic filter
...
Improve cubic filter and add parameters. Switch to mitchell filter
by default.
2014-10-29 16:26:10 +01:00
Wim Taymans
32047eaac0
video-scaler: add extra options
2014-10-29 16:26:10 +01:00
Wim Taymans
c409a45d13
video-converter: define some options
2014-10-29 16:26:10 +01:00
Wim Taymans
a81d450b7e
video-converter: add scaling support
...
Add scaling support for the video-converter object
2014-10-29 16:26:10 +01:00
Wim Taymans
549bdd4ece
video-converter: rework the generic converter function
...
Use a LineCache object to track and process lines between unpack,
upsample, convert, downsample and pack stages. This simplifies the
main core processing function a lot and allows for future additions
easily.
Add support for interlaced formats in chroma up and downsampling.
2014-10-29 16:26:10 +01:00
Wim Taymans
71efeaaa6f
video-convert: swap src and dest
...
It is more natural and consistent with other uses.
2014-10-29 16:26:10 +01:00
Sebastian Dröge
2c4bd2296a
videoconverter: Free the converter config in free()
2014-10-06 10:11:05 +03:00
Wim Taymans
b5f3e5261a
video-converter: add orc optimized matrix8 function
...
Add an ORC implementation of the matrix8 function.
Regenerate video-orc-dist.[ch]
2014-09-29 17:28:06 +02:00
Wim Taymans
07d1d7ba38
video: improve YUV -> RGB conversion
...
Reorganize orc instructions to free up some registers.
We can reuse the ORC code to implement the generic AYUV->ARGB matrix.
2014-09-26 18:14:11 +02:00
Wim Taymans
98c42dc5e4
video: convertor -> converter
2014-09-24 16:19:30 +02:00