Commit graph

154 commits

Author SHA1 Message Date
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 97567606e2 videoscale: activate Video meta
Configure the allocator with GstMetaVideo because we can handle that using the
GstVideoFrame helpers.
2011-06-20 17:49:13 +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 d06f599193 -base: port elements to new video caps 2011-06-16 12:52:13 +02:00
Sebastian Dröge 0c99ab5806 videoscale: Optimize transform_caps()
If the second and next caps structures are a subset of the already existing
transformed caps we can safely skip them because we would transform them to
the same caps again.
2011-05-27 14:37:41 +02:00
Sebastian Dröge d8e0af1fc1 gst: Update for the GstBaseTransform::transform_caps() changes 2011-05-27 12:13:14 +02:00
Sebastian Dröge a46485e357 gst: Update for caps/pad template related API changes 2011-05-17 13:06:01 +02:00
Sebastian Dröge 0d39d5bb8f videoscale: Update for negotiation related API changes 2011-05-16 15:35:17 +02:00
Sebastian Dröge cc785bade6 videoscale: basetransform is now better at trying passthrough, remove workaround 2011-05-16 15:34:49 +02:00
Wim Taymans 079c152e62 Merge branch 'master' into 0.11
Conflicts:
	gst/videoscale/gstvideoscale.c
2011-04-25 11:20:45 +02:00
David Schleef 8264d59aab videoscale: use simpler scaling method for small images
https://bugzilla.gnome.org/show_bug.cgi?id=633837
2011-04-24 12:55:28 +01:00
Sebastian Dröge f10a8f0986 gst: Use G_DEFINE_TYPE instead of GST_BOILERPLATE 2011-04-19 11:35:53 +02:00
Wim Taymans e1869fa267 Merge branch 'master' into 0.11-fdo 2011-03-28 20:13:59 +02:00
Wim Taymans 3b03e23559 plugins: port some plugins to the new memory API 2011-03-27 16:35:28 +02:00
Thiago Santos 91ed9290b8 videoscale: Fix assertion on caps fixation
When fixating caps, from_par should always be initialized
with a fixed value.

In case the fixation is from src to sink pad it was setting
the from par (srcpad par) to a fraction range, this patch initializes
it to 1/1, based on the assumption that missing PAR is 1/1.

https://bugzilla.gnome.org/show_bug.cgi?id=641952
2011-03-22 15:24:01 -03:00
David Schleef e1149f52c1 videoscale: Add 16-bit-channel support 2011-02-20 12:04:02 -08:00
Sebastian Dröge 32f28f476e videoscale: Change classification to Filter/Converter/Video/Scaler 2010-12-16 10:11:43 +01:00
Sebastian Dröge 8ba4b70118 Revert "Revert "Use init functions for Orc code""
This reverts commit 93aa13639d.

Everything should work now after regenerating the disted source files.
2010-09-09 10:57:41 +02:00
Wim Taymans 93aa13639d Revert "Use init functions for Orc code"
This reverts commit b2051090b4.

Fixes the build again until someone pushes the regenerated .c/.h
files too.
2010-08-27 11:49:47 +02:00
David Schleef b2051090b4 Use init functions for Orc code 2010-08-26 17:03:13 -07:00
Sebastian Dröge 4d757a29ee videoscale: Only set the PAR if the caps already had a PAR
Otherwise we're producing different caps and basetransform thinks that it
can't passthrough buffer allocations, etc.

In 0.11 all video caps really should have the PAR set...
2010-08-11 18:10:45 +02:00
Sebastian Dröge 6fb91f7711 videoscale: Rename borders property to add-borders 2010-07-19 15:59:17 +02:00
Sebastian Dröge 52e711b11d videoscale: Add support for adding black borders to keep the DAR if necessary
Fixes bug #617506.
2010-07-18 15:44:14 +02:00
Sebastian Dröge fc9de9e0a1 videoscale: Fix caps fixating if the height is fixed but the width isn't 2010-07-18 15:44:14 +02:00
Sebastian Dröge 58c77eb1b4 videoscale: Remove interlaced scaling again
This behaviour was not preferred and caused visible image quality
degradations. The real solution would be, to apply a real
deinterlacing filter before scaling the frames.

Fixes bug #615471.
2010-07-18 15:44:13 +02:00
Sebastian Dröge 9fe51a4a50 videoscale: Add helper method for filling the VSImage struct 2010-07-18 15:44:13 +02:00
Sebastian Dröge fa8fd0d7f6 videoscale: ...and add Y16 case for the linear scaling 2010-06-13 20:57:19 +02:00
Sebastian Dröge c2e01e09c4 videoscale: Add Y16 case for 4-tap scaling 2010-06-13 20:38:23 +02:00
Sebastian Dröge c2bdfc11af videoscale: Use correct variables for debug output 2010-06-12 21:04:48 +02:00
Sebastian Dröge c3cfb404ae videoscale: Add support for more gray formats 2010-06-12 13:59:32 +02:00
Sebastian Dröge b4c2af416d videoscale: Use libgstvideo for caps parsing, etc 2010-06-12 13:51:26 +02:00
Sebastian Dröge d91e3d8d78 videoscale: Use GST_VIDEO_CAPS_GRAY{8,16} 2010-06-12 13:00:26 +02:00
David Schleef dbfd5a5af8 videoscale: convert from liboil to orc 2010-06-07 23:58:54 -07:00
Sebastian Dröge a6a125e4ba videoscale: Use passthrough mode if width and height are not changed
It doesn't matter if the PAR changes or not, processing of every pixel
is only necessary when the width or height changes.
2010-05-13 12:17:31 +02:00
Sebastian Dröge b3808a57d4 videoscale: Try harder to keep the DAR if possible
Fixes bug #371108.
2010-05-13 11:16:02 +02:00
Sebastian Dröge 9f677090d5 videoscale: Log PAR and DAR of input and output caps when setting caps 2010-05-13 11:16:01 +02:00
Sebastian Dröge eb2166c97d videoscale: Set input width/height if the output caps don't have any width or height 2010-05-13 11:16:01 +02:00
Andoni Morales 75a2e14e06 videoscale: Try to keep DAR when scaling
Fixes bug #371108.
2010-05-13 11:16:01 +02:00
Stefan Kost 4967d4e3fd videoscale: use can_intersect to avoid a caps copy 2010-05-06 09:17:33 +03:00
Sebastian Dröge 838d76dc4b videoscale: Some random cleanup 2010-04-29 18:21:21 +02:00
Sebastian Dröge 43b370358d videoscale: Add support for Y444, Y42B and Y41B 2010-04-29 18:21:21 +02:00
Sebastian Dröge 2fb31ad43c videoscale: Reorder template caps by the amount of information contained in the color formats 2010-04-29 18:21:21 +02:00
Benjamin Otte 5e21fa5e0e gst_element_class_set_details => gst_element_class_set_details_simple
Also change my email from the old university one to the current one.
2010-03-16 17:41:50 +01:00
Edward Hervey 8cd1b5209b gst: Remove dead assignments and resulting unused variables 2009-08-08 15:54:02 +02:00
Sebastian Dröge cac4b032c3 videoscale: Restrict width/height to 2^15 - 1
Otherwise integer overflows will happen, resulting in segmentation faults.

Fixes bug #590243.
2009-08-06 06:43:34 +02:00
Sebastian Dröge b69f5e2c66 videoscale: Make sure to allocate enough memory for the temporary buffer
and fix scaling of odd-height interlaced video.
2009-08-06 06:43:32 +02:00
Sebastian Dröge c51d2febd3 videoscale: Fix interlaced scaling for I420
...and some other minor mistakes in the previous change.
2009-08-06 06:43:32 +02:00
Sebastian Dröge 33c490f4b9 videoscale: Add support for interlaced content
videoscale is not mixing content of two seperate fields anymore
and does scaling on every field separately.

Fixes bug #588761.
2009-08-06 06:43:31 +02:00
Sebastian Dröge 2e5c946501 videoscale: Add support for 16 bit grayscale in native endianness 2009-05-26 15:26:30 +02:00