Commit graph

184 commits

Author SHA1 Message Date
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
Renamed from gst-libs/gst/video/video-convertor.c (Browse further)