Wim Taymans
e97f6401de
videoconvert: add additional width/height constraints
...
Some of the fastpath function can only work with aligned widht/height
so make sure we check this as well when choosing a fastpath.
Add fastpath for I420/YV12 -> BGRx
2013-09-05 17:22:50 +02:00
Wim Taymans
ce2b40670a
videoconvert: don't convert too much with odd width
2013-09-05 16:26:33 +02:00
Wim Taymans
700afbf6fd
videoconvert: handle lines in one go
...
Handle odd heights in 1 go when no vertical subsampling is used.
2013-09-05 11:05:36 +02:00
Wim Taymans
ce2ad4ae4a
videoconvert: fix height round down
2013-09-05 11:04:03 +02:00
Wim Taymans
22da49a55c
videoconvert: also allocate temp lines in fastpath
...
Some of the fastpath functions need tmplines, so make sure we allocate some in
the fastpath too.
This avoids SEGFAULTs with odd heights.
See https://bugzilla.gnome.org/show_bug.cgi?id=663248
2013-09-04 17:36:29 +02:00
Wim Taymans
579be969e5
videoconvert: add more fastpaths
...
Also reuse the I420 code for YV12 because it can handle the swapped UV fields
just fine.
2013-09-04 15:10:50 +02:00
Wim Taymans
c731f1cba0
videoconvert: only chroma subsample when needed
2013-09-03 17:37:14 +02:00
Wim Taymans
10b3b88e9c
videoconvert: fix handling of chroma resample
...
Increase the number of temporary lines that we need, it is possible that the
up and downsampling offsets are out of phase and that we need to keep some
extra lines around. Also copy the unhandled output lines for the next round
instead of overwriting them.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=706823
2013-09-03 15:42:44 +02:00
Wim Taymans
cfb7b51c08
videoconvert: improve debug
2013-09-03 15:41:56 +02:00
Sebastian Dröge
eb09e561c4
videoconvert: Fix leaking of the chroma resample helper objects
2013-06-11 15:24:05 +02:00
Wim Taymans
00bbca2f9f
videoconvert: free tmplines correctly
...
Keep track of how many tmplines we allocated and use that to free the
correct amount of lines.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=701234
2013-05-30 05:27:31 +02:00
Wim Taymans
7b8ff707b6
videoconvert: run chroma resamplers
...
Run the chroma upsampler after unpack and the chroma subsampler
before pack for higher quality conversions and correct chroma siting.
2013-05-27 11:05:08 +02:00
Wim Taymans
4f2e1b46a7
videoconvert: reformat
2013-05-27 11:05:06 +02:00
Wim Taymans
620e3aad07
videoconvert: actually use the input pixels
...
Operate on the provided pixels array instead of the temp array.
2013-05-27 11:05:06 +02:00
Wim Taymans
bc4238f959
videoconvert: use one matrix function
...
Use only one matrix function pointer, let the implementation cast the pixels to
the right size.
2013-03-30 19:14:40 +01:00
Wim Taymans
43a9bfae78
videoconvert: use one temp array for lines
...
Use only one temporary array for pixels.
2013-03-30 19:14:40 +01:00
Wim Taymans
701ae2f144
videoconvert: respect the pack_lines when packing
...
Packing is supposed to happen on the amount of lines specified in the format
info. It's currently all set to 1 but that will change.
2013-03-28 18:16:09 +01:00
Wim Taymans
3532323817
videoconvert: small cleanup
2013-03-28 18:15:24 +01:00
Tim-Philipp Müller
dce49a1a7e
video: fix return type of _get_palette() and add since markers to docs
...
'const gpointer' is not the same as 'gconstpointer', see
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35928 .
2013-02-06 12:43:51 +00:00
Wim Taymans
be866d4b78
videoconvert: interlace support to some fastpath functions
...
Add interlace support for some fastpath functions.
2013-02-04 16:21:20 +01:00
Wim Taymans
599880ff8d
videoconvert: make fast path interlaced aware
...
Make sure that we also handle interlacing when choosing the fast path.
See https://bugzilla.gnome.org/show_bug.cgi?id=588535
2013-02-04 15:40:02 +01:00
Wim Taymans
e3a9a7cf07
videoconvert: pass frame interlaced flag to pack/unpack
...
If the frame is interlaced, pass the interlaced flag to the pack/unpack
functions to make it unpack correctly.
2013-02-04 15:19:35 +01:00
Wim Taymans
ed2ce49499
videoconvert: use the palette helper functions
...
Get the palette from the video library instead of making our own.
2013-02-04 15:06:10 +01:00
Wim Taymans
9b95f9de95
videoconvert: make a constant of scale factor
2013-02-04 15:06:06 +01:00
Tim-Philipp Müller
5f59b4f7ee
Fix FSF address
...
https://bugzilla.gnome.org/show_bug.cgi?id=687520
2012-11-03 23:05:09 +00:00
Wim Taymans
a5ef81e05e
videoconvert: add more debug
2012-10-22 09:51:34 +02:00
Wim Taymans
f3f08e829d
videoconvert: actually copy the palette
...
Copy the default palette in the destination buffer too.
2012-10-15 16:32:25 +02:00
Wim Taymans
7f23e75f3c
videoconvert: small cleanups
...
Make function pointers NULL when nothing needs to be done.
Pass target pixels to dither and matrix functions so that we can later make
them operate on the target buffer memory directly.
2012-07-27 12:19:04 +02:00
Wim Taymans
1e8c480dd7
videoconvert: prefix orc functions with video_convert_orc_
2012-07-23 17:19:56 +02:00
Wim Taymans
3d8636a662
videoconvert: use video helper function
...
Use the video helper function to get the offset and scale of a format.
2012-07-16 11:22:03 +02:00
Sebastian Dröge
a479886ff9
videoconvert: Fix compiler warnings
...
videoconvert.c: In function 'videoconvert_convert_new':
videoconvert.c:287:11: error: 'Kr' may be used uninitialized in this function
videoconvert.c:287:15: error: 'Kb' may be used uninitialized in this function
2012-07-11 12:57:28 +02:00
Wim Taymans
aa261162d2
videoconvert: fix offset and scale for GRAY
...
Fix the calculation of the offset and scale values for GRAY formats. We also
need to set the offset and base of the chroma values to match what the unpack
function creates.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=679612
2012-07-10 11:08:00 +02:00
Wim Taymans
ec4ca4773a
videoconvert: refactor matrix setup
2012-06-04 20:36:10 +02:00
Wim Taymans
93c3a74755
videoconvert: fix 0_255 handling
...
We also need to apply an offset to the Cb and Cr samples in the 0-255 case.
2012-06-04 16:17:32 +02:00
Wim Taymans
29edc0c6a5
videoconvert: improve color transform setup
...
Remove hardcoded color matrices and compute the matrices using the cms helper
library that was in cogcolorspace before.
2012-06-04 16:17:31 +02:00
Wim Taymans
443b0a3c78
videoconvert: use video helper library more
...
Use VideoInfo to setup the conversion.
Use the color matrix from the video info.
2012-06-01 12:09:44 +02:00
Wim Taymans
7f134c1441
video: fix paletted format
...
RGB8_PALETTED -> RGB8P
Fix the definition of paletted formats, store the palette in the second
plane.
Make sure we copy the palette correctly in gst_video_frame_copy()
Don't do alignment on the palette in videopool
2012-05-31 13:44:43 +02:00
Wim Taymans
c7b2011d68
videoconvert: use video library pack/unpack
...
Remove obsolete code and use the video pack/unpack functions
2012-05-30 17:17:24 +02:00
Wim Taymans
059a6ca673
video: update for removed formats
2012-05-29 17:52:06 +02:00
Wim Taymans
03dc5d4a1b
video: fix UYVP packing function
2012-05-28 17:11:46 +02:00
Wim Taymans
ae2c5e1757
videoconvert: fix v216
2012-05-28 16:31:14 +02:00
Wim Taymans
d2a1613a43
videoconvert: add support for 10bit I420
...
Add support for 10bit I420
Reorganize some macros, have separate plane and component macros, fix
a problem with YV12 in the process.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=665034
2012-05-28 12:59:40 +02:00
David Schleef
df11b1a5d1
colorspace: Fix v210 writing out of bounds
...
Port from 0.10 branch in -bad
2012-02-21 10:05:20 +01:00
David Schleef
bb19c41081
videoconvert: clamp intermediates when dithering
...
Port from the colorspace plugin in -bad.
2012-02-20 16:10:22 +01:00
Wim Taymans
e22f406a9a
videoconvert: improve error reporting
2012-02-10 15:41:19 +01:00
Vincent Penquerc'h
d69e4e7a2c
videoconvert: fix width/height mismatches
...
https://bugzilla.gnome.org/show_bug.cgi?id=663238
2011-11-24 11:09:20 +01:00
Mark Nauwelaerts
2c0b294005
videoconvert: fix odd width and height handling in some fastpath cases
2011-11-24 11:04:10 +01:00
Vincent Penquerc'h
e4d27cfa60
videoconvert: fix r210 writing only half a scanline
2011-11-07 18:19:51 +00:00
Wim Taymans
ddce68a5c2
video: More video helper library improvements
...
Make a new GstVideoFormatinfo structure that contains the specific information
related to a format such as the number of planes, components, subsampling,
pixel stride etc. The result is that we are now able to introduce the concept of
components again in the API.
Use tables to specify the formats and its properties.
Use macros to get information about the video format description.
Move code to set strides, offsets and size into one function.
Remove methods that are not handled with the structures.
Add methods to retrieve pointers and strides to the components in the video.
2011-07-04 16:01:14 +02:00
Wim Taymans
6d9e76f2de
video: remove intermediate Plane structure
...
Remove the GstVideoPlane structure and move the fields directly into the
GstVideoInfo structure. This makes things a little easier to read and also makes
it more likely that we can pass the stride array to external libraries.
2011-06-20 11:25:58 +02:00