summaryrefslogtreecommitdiff
path: root/gst/videoconvert
Commit message (Collapse)AuthorAgeFilesLines
* videoconvert: allow per feature registrationStéphane Cerveau2021-03-162-2/+5
| | | | | | | | | | | | | Split plugin into features including dynamic types which can be indiviually registered during a static build. More details here: https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199 https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1029>
* videoconvert: Only prefer upstream chroma-site with same subsampling.Jan Schmidt2021-02-191-2/+30
| | | | | | | | If converting YUV formats with different chroma-subsampling, there's probably no good reason to prefer the upstream chroma-siting so just use the default for the output format. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1033>
* videoconvert: Implement more sophisticated colorimetry caps transferJan Schmidt2021-02-191-12/+68
| | | | | | | Implement a more sophisticated transfer of colorimetry and chroma-site fields to output caps when fixating. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1033>
* videoconvert: Forward colorimetry and chroma-site from upstream.Jan Schmidt2021-02-191-0/+18
| | | | | | | | | If downstream has expressed no preference for particular colorimetry and chroma-site configuration, transfer them from the input caps. Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/614 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1033>
* videoconvert: Support for alternate-field interlacingVivia Nikolaidou2021-02-041-2/+16
| | | | | | | | Treat the data just like normal data with half the height. Also treat it as progressive when converting from/to I420 because it requires different handling for chroma subsampling. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1027>
* videoconvert: Enhance debug message to be more human readableSeungha Yang2020-10-141-2/+3
| | | | | | | Numerical representation of GstVideoFormat is not debugging friendly Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/822>
* video: Rename gst_video_color_transfer_*() to ↵Sebastian Dröge2020-09-071-3/+3
| | | | | | | | | | | | | | | gst_video_transfer_function_*() in new API The type is called GstVideoTransferFunction so the function names should match, otherwise gobject-introspection is keeping the functions as global functions instead of methods on the type. The same mistake was also made in lots of other APIs over the years, but here we can at least fix it for 1.18 still. Thanks to Marijn Suijten for noticing. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/807>
* video-converter: Make fast path work for equivalent transfer functionsVivia Nikolaidou2020-07-031-0/+18
| | | | | | | | | | | | | | | | | | | | | | | | For example, BT709, BT601, and BT2020_10 all have theoretically different transfer functions, but the same function in practice. In these cases, we should use the fast path for negotiating. Also, BT2020_12 is essentially the same as the other three, just with one more decimal point, so it gives the same result for fewer bits. This is now also aliased to the former three. Also make videoconvert do passthrough if the caps have equivalent transfer functions but are otherwise matching. As of the previous commit, we write the correct transfer function for BT601, instead of the (functionally identical but different ISO code) transfer function for BT709. Files created using GStreamer prior to that commit write the wrong transfer function for BT601 and are, strictly speaking, 2:4:5:4 instead. However, this commit takes care of negotiation, so that conversions from/to the same transfer function are done using the fast path. Fixes #783 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/724>
* videoconvert: Use G_DECLARE_FINAL_TYPENiels De Graef2020-03-162-16/+4
|
* Remove autotools build systemTim-Philipp Müller2019-10-131-15/+0
|
* Pass the code through codespellThibault Saunier2019-08-301-3/+3
|
* doc: Port to hotdocThibault Saunier2019-05-131-0/+1
|
* Meson: Generate pc file for all plugins in baseXavier Claessens2018-04-251-0/+1
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=794568
* videoconvert: Filter-out crop metaNicolas Dufresne2017-12-171-1/+7
| | | | | | | | | | | | | | To passthrough crop-meta, the converter would need to allocate and convert buffers of the size of the originating buffer. This is currently made difficult by GstBaseTransform since we cannot alter the caps passed though the allocation query. We would also need to wait for the first input buffer to be received in order to make the decision around that size. So the short and safe solution is just to stop pretending we can passthrought that meta. https://bugzilla.gnome.org/show_bug.cgi?id=791412
* Remove plugin specific static build optionNicolas Dufresne2017-05-161-1/+0
| | | | | Static and dynamic plugins now have the same interface. The standard --enable-static/--enable-shared toggle are sufficient.
* docs: Convert gtkdoc comments to markdownThibault Saunier2017-03-101-4/+5
| | | | | | Modernizing the documentation, making it simpler to read an modify and allowing us to possibly switch to hotdoc in the future.
* video-converter: Implement multi-threaded scaling/conversionSebastian Dröge2017-02-232-2/+18
| | | | | | | | | | | | This adds a property to select the maximum number of threads to use for conversion and scaling. During processing, each plane is split into an equal number of consecutive lines that are then processed by each thread. During tests, this gave up to 1.8x speedup with 2 threads and up to 3.2x speedup with 4 threads when converting e.g. 1080p to 4k in v210. https://bugzilla.gnome.org/show_bug.cgi?id=778974
* Add support for Meson as alternative/parallel build systemNirbheek Chauhan2016-08-201-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | https://github.com/mesonbuild/meson With contributions from: Tim-Philipp Müller <tim@centricular.com> Jussi Pakkanen <jpakkane@gmail.com> (original port) Highlights of the features provided are: * Faster builds on Linux (~40-50% faster) * The ability to build with MSVC on Windows * Generate Visual Studio project files * Generate XCode project files * Much faster builds on Windows (on-par with Linux) * Seriously fast configure and building on embedded ... and many more. For more details see: http://blog.nirbheek.in/2016/05/gstreamer-and-meson-new-hope.html http://blog.nirbheek.in/2016/07/building-and-developing-gstreamer-using.html Building with Meson should work on both Linux and Windows, but may need a few more tweaks on other operating systems.
* base: use new gst_element_class_add_static_pad_template()Vineeth TM2016-03-241-4/+4
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=763075
* Fix use of undeclared core debug category symbolsTim-Philipp Müller2016-02-201-2/+4
| | | | | | | | | | | libgstreamer currently exports some debug category symbols GST_CAT_*, but those are not declared in any public headers. Some plugins and libgstvideo just use GST_DEBUG_CATEGORY_EXTERN() to declare and use those, but that's just not right at all, and it won't work on Windows with MSVC. Instead look up the categories via the API.
* win32: remove outdated build cruftTim-Philipp Müller2016-02-201-154/+0
| | | | | | This hasn't been touched for generations, doesn't work, and is just causing confusion. We also don't want to maintain these files manually.
* Update mailing list address from sourceforge to freedesktopTim-Philipp Müller2015-07-161-1/+1
|
* docs: update element example pipelinesTim-Philipp Müller2015-05-101-2/+4
| | | | | | - gst-launch -> gst-launch-1.0 - use autoaudiosink and audiovideosink more often - review pipeline examples and descriptions
* videoconvert: Expose some properties from the videoconverter APIVivia Nikolaidou2015-05-082-2/+117
| | | | | | | Expose chroma resampler, alpha mode, alpha value, chroma mode, matrix mode, gamma mode and primaries mode from the videoconverter API. https://bugzilla.gnome.org/show_bug.cgi?id=749105
* videoconvert: Keep colorimetry and chroma-site fields if passthroughMatthieu Bouron2015-04-271-0/+6
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=748141
* Remove obsolete Android build cruftTim-Philipp Müller2015-04-261-15/+0
| | | | This is not needed any longer.
* videoconvert: add dither-bits optionWim Taymans2014-12-022-3/+23
| | | | | Fix the dither option. Add a new option to set the quantizer
* video-convert: swap src and destWim Taymans2014-10-291-1/+1
| | | | It is more natural and consistent with other uses.
* video: convertor -> converterWim Taymans2014-09-242-5/+5
|
* video: move videoconvert code to video libraryWim Taymans2014-09-2410-12040/+13
| | | | | | | | | Move the conversion code used in videoconvert to the video library and expose a simple but generic API to do arbitrary conversion. It can currently do colorspace conversion but the plan is to add videoscale to it as well. See https://bugzilla.gnome.org/show_bug.cgi?id=732415
* video-color: add gst_video_color_matrix_get_Kr_Kb()Wim Taymans2014-09-241-35/+2
| | | | | Move the function to get the color matrix coefficients from videoconvert to the video library.
* Release 1.3.11.3.1Sebastian Dröge2014-05-031-21/+13
|
* videoconvert: tweak the scoring algorithmWim Taymans2014-01-241-24/+74
| | | | | | | | | | | | Make a little table of conversions and manually score them. Use this info to define better weights for the scoring algorithm. give separate scores for doing changes and the impact of the change, This allows us to avoid conversion when we can but still allow fairly lossless changes. The old code did not penalize GRAY conversions, PAL conversions were punished too low and depth conversions too high. Fixes https://bugzilla.gnome.org/show_bug.cgi?id=722656
* videoconvert: don't interpolate chroma in I420 -> RGBWim Taymans2014-01-132-4/+2
| | | | | | Don't try to interpolate the chroma samples, the used algorithm only works for horizontal cositing. Let's switch to a faster and safer version until we handle chroma siting correctly in the fastpaths.
* videoconvert: Update disted orc files once againSebastian Dröge2014-01-102-8132/+1280
|
* videoconvert: Update disted orc filesSebastian Dröge2014-01-102-779/+112
|
* videoconvert: rework YUV->RGB fastpathsWim Taymans2014-01-092-268/+297
| | | | | | | | Rework the orc code to be around 10% faster and support arbitrary matrices. Pass the matrix parameters to the YUV->RGB functions to make them work for all matrices. This enables more and faster fastpath conversions. See https://bugzilla.gnome.org/show_bug.cgi?id=721701
* videoconvert: fix I420 to BGRA fast-path some moreWim Taymans2014-01-091-4/+5
| | | | | Calculate alpha value differently so that we can avoid running out of registers.
* videoconvert: remove unused codeWim Taymans2014-01-081-449/+0
|
* videoconvert: Fix I420 to BGRA fast-path alpha settingSebastian Dröge2013-12-232-99/+7
| | | | | | | | | | | | This fast-path was adding 128 to every component including alpha while it should only be done for all components except alpha. This caused wrong alpha values to be generated. Also remove the high-quality I420 to BGRA fast-path as it needs the same fix, which causes an additional instruction, which causes orc to emit more than 96 variables, which then just crashes. This can only be fixed in orc by breaking ABI and allowing more variables.
* videoconvert: remove unneeded guint comparaisonMatthieu Bouron2013-10-251-1/+1
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=710760
* videoconvert: disable fastpath for odd width on some formatsWim Taymans2013-09-061-11/+11
|
* videoconvert: add additional width/height constraintsWim Taymans2013-09-051-54/+67
| | | | | | 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
* videoconvert: don't convert too much with odd widthWim Taymans2013-09-051-2/+4
|
* videoconvert: handle lines in one goWim Taymans2013-09-051-24/+4
| | | | Handle odd heights in 1 go when no vertical subsampling is used.
* videoconvert: fix height round downWim Taymans2013-09-051-6/+2
|
* videoconvert: also allocate temp lines in fastpathWim Taymans2013-09-041-7/+13
| | | | | | | | | 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
* videoconvert: add more fastpathsWim Taymans2013-09-041-0/+23
| | | | | Also reuse the I420 code for YV12 because it can handle the swapped UV fields just fine.
* videoconvert: only chroma subsample when neededWim Taymans2013-09-031-12/+22
|
* videoconvert: fix handling of chroma resampleWim Taymans2013-09-031-2/+8
| | | | | | | | | 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