Commit graph

132 commits

Author SHA1 Message Date
Wim Taymans 3532323817 videoconvert: small cleanup 2013-03-28 18:15:24 +01:00
Wim Taymans a092cbee5e videoconvert: avoid double free
Set variable to NULL after free so that we don't free twice.
2013-03-24 00:38:22 +01:00
Wim Taymans b1950b6409 Revert "videoconvert: prevent bad interlaced conversions"
This reverts commit adc9694ed7.

No need to restrict the conversion, we can handle interlace correctly. We
basically unpack each field, then convert each field to the target colorspace
and pack and interleave each field to the target format. We also disable any
fast path that can't deal with interlaced formats.
2013-03-24 00:21:36 +01:00
David Schleef adc9694ed7 videoconvert: prevent bad interlaced conversions
Don't allow conversion that changes vertical subsampling if video
is interlaced.
2013-03-22 17:24:43 -07: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
Sebastian Dröge 3c1041d5eb Revert "gst: Add better support for static plugins"
This reverts commit d2d79e3bc2,
which was accidentially pushed.
2012-10-24 13:26:26 +02:00
Sebastian Dröge d2d79e3bc2 gst: Add better support for static plugins 2012-10-24 12:10:44 +02: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
Sebastian Dröge a3878f8bb8 videoconvert: Set correct plugin metadata 2012-09-25 13:16:45 +02:00
Tim-Philipp Müller f7c6aa5abd Release 0.11.94 2012-09-14 02:47:54 +01:00
Tim-Philipp Müller 9f1856a7a5 videoconvert: fix up dither method enum GType name for consistency 2012-09-09 15:12:14 +01:00
Sreerenj Balachandran fe08923628 videoconvert: fix example pipeline in docs
There is no more 'fourcc' typecast for format.

https://bugzilla.gnome.org/show_bug.cgi?id=681436
2012-08-08 11:21:51 +01: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 53fc1f3fca update for query api changes 2012-07-06 11:50:44 +02:00
Wim Taymans bc5ba349b7 update for allocation query changes 2012-07-06 11:05:09 +02:00
Sebastian Dröge ce4f2c462c videoconvert: Need $(LIBM) for pow() 2012-06-08 11:28:56 +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 f859dcd699 videoconvert: remove unused functions 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
Sebastian Dröge c84108de3c video: Update for libgstvideo API changes 2012-04-19 12:30:57 +02:00
Tim-Philipp Müller 3c6a3ad629 Use new gst_element_class_set_static_metadata() 2012-04-10 00:45:16 +01:00
Sebastian Dröge ad42b16375 gst: Update for GST_PLUGIN_DEFINE() API change 2012-04-05 15:11:05 +02:00
Sebastian Dröge 65307dd132 gst: Update versioning 2012-04-04 14:55:15 +02:00
Mark Nauwelaerts 6656affdfa videoconvert: plug caps leak 2012-04-02 17:03:48 +02:00
Wim Taymans 1982d1ce12 Release 0.11.3 2012-03-22 15:51:39 +01:00
Wim Taymans 25137962ad fix for caps API changes 2012-03-11 19:04:41 +01:00
Wim Taymans abca785f0f videoconvert: use base class new vmethods
Use the base class filter_meta to proxy all metadata upstream.
Use the base class transform_meta to let it copy all non-colorspace dependent
metadata.
2012-03-02 17:35:40 +01:00
Wim Taymans 5595c0a7df videoconvert: remove old metadata code
The subclass can help us better
2012-03-02 17:12:25 +01:00
Wim Taymans df004b586e videoconvert: update for copy data changes 2012-03-02 13:11:36 +01:00
Wim Taymans dcd277b916 videoconvert: proxy allocation meta when we can
Proxy all the metadata APIs in the allocation query.
Remove all metadata that is dependent on the colorspace, copy others.
2012-03-01 17:36:08 +01:00
Wim Taymans 7d58b0aa0b videoconvert: improve fixation
Use the fixed upstream caps to fixate the output caps by taking the
intersection.
2012-02-22 15:31:12 +01:00
Wim Taymans 9212619549 update for new fixate_caps function 2012-02-22 12:32:44 +01: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 6678c531e0 videoconvert: try to preserver colorimetry and chroma-site
Try to preserve the original chroma-site and colorimetry when nothing else was
negotiated.
2012-02-20 12:36:02 +01:00
Wim Taymans 61c446f2ef RELEASE 0.11.2 2012-02-17 11:03:14 +01:00
Wim Taymans e22f406a9a videoconvert: improve error reporting 2012-02-10 15:41:19 +01:00
Wim Taymans 6e1288bd00 videoconvert: avoid using _CATEGORY_GET 2012-02-09 16:00:59 +01:00
Wim Taymans f31d5d7505 debug: add some performance debug 2012-02-09 15:28:54 +01:00
Wim Taymans fcdc385aa1 port to new map API 2012-01-25 12:30:53 +01:00
Wim Taymans a5f3d21723 videofilter: improve video filter
Flesh out the video filter base class. Make it parse the input and output caps
and turn them into GstVideoInfo. Map buffers as video frames and pass them to
the transform functions.
This allows us to also implement the propose and decide_allocation vmethods.
Implement the transform size method as well.
Update subclasses with the new improvements.
2011-12-21 23:46:53 +01:00
Wim Taymans 8a9c4ed69f videofilter: implement propose_allocation
With the new video bufferpool we can now implement the propose_allocation
vmethod on some video filter elements so that we can also use video metadata and
bufferpools when not operating in passthrough mode.
2011-12-21 18:58:42 +01:00
Wim Taymans b53c02417c Revert "videoconvert: We can handle GST_VIDEO_META_API"
This reverts commit bd539753eb.

Adding the supported metadata to the query does nothing at this stage. Proposing
allocation parameters and supported metadata for upstream should use the
propose_allocation vmethod.
2011-12-05 20:33:41 +01:00
Edward Hervey bd539753eb videoconvert: We can handle GST_VIDEO_META_API 2011-12-05 18:30:50 +01:00
Wim Taymans 892716e076 videoconvert: fix the transform_size function
The output size of a buffer does not depend on the input size but simply on the
caps of the output buffers. Don't let the base implementation deal with
unit_sizes, because input buffers might not be a multiple of that when they have
padding or non-default strides. instead, implement a transform size function
that simply calculate the natural size of an output buffer based on the caps.
2011-12-01 15:47:16 +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
René Stadler 5f3c8eb680 audioconvert, videoconvert: fix caps leak in transform_caps 2011-11-12 01:38:37 +01:00
Vincent Penquerc'h e4d27cfa60 videoconvert: fix r210 writing only half a scanline 2011-11-07 18:19:51 +00:00
Wim Taymans e067e67923 rename meta* -> *meta 2011-11-02 09:04:27 +01:00
Wim Taymans 82d82203f6 base: fix for allocation methods rename 2011-08-26 14:26:37 +02:00
Wim Taymans 9ad89374a3 video: add colorimetry info
Make enums for the chroma siting for easier use in the videoinfo.
Make enums for the color range, color matrix, transfer function and the
color primaries. Add these values to the video info structure in a Colorimetry
structure. These values define the exact colors and are needed to perform
correct colorspace conversion. Use a couple of predefined colorimetry specs
because in practice only a few combinations are in use.
Add view_id to the video frames to identify the view this frame represents in
multiview video.
Remove old gst_video_parse_caps_framerate, use the videoinfo for this.
Port elements to new colorimetry info.
Remove deprecated colorspace property from videotestsrc.
2011-08-23 18:57:35 +02:00
Wim Taymans 3f8e568dd3 videoconvert: update ORC dist files 2011-08-02 12:24:19 +02:00
Wim Taymans 5a85e1d75f base: update for new bufferpool API 2011-07-29 17:15:39 +02:00
Tim-Philipp Müller c3234c84ed videoconvert: link to local libgstvideo-0.11 2011-07-28 14:18:34 +01: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
Tim-Philipp Müller 92a85024de videoconvert: fix unused-but-set-variable compiler warning 2011-06-26 23:17:39 +01:00
Wim Taymans 426ec86be0 videoconvert: use new allocation setup
Add setup_allocation to configure video metadata in the negotiated bufferpool.
2011-06-20 17:39:05 +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
Wim Taymans d93129d8da -base: port to GstVideoFrame API 2011-06-17 15:41:31 +02:00
Wim Taymans 6a254de438 video: port to new API
Add support for palette again.
Rewrite setup code for videoconvert using the new video methods.
2011-06-17 15:39:50 +02:00
Wim Taymans d06f599193 -base: port elements to new video caps 2011-06-16 12:52:13 +02:00
Wim Taymans db0a2f51b8 videoconvert: renamed from colorspace 2011-06-15 17:49:21 +02:00