summaryrefslogtreecommitdiff
path: root/gst/vaapi/gstvaapipostproc.h
AgeCommit message (Collapse)AuthorFilesLines
2020-04-03vaapipostproc: enable HDR10 tone mappingU. Artie Eoff1-0/+16
2019-09-30vaapipostproc: Use level value for skin-tone-enhancement filter.Yan Wang1-0/+6
Currently the parameter of skin-tone-enhancement filter is forced to zero. In fact it could be set different value by the user. So create a new property named as "skin-tone-enhancement-level" for accepting the used defined parameter value. At the same time, skin-tone-enhancement is marked as deprecated. When skin-tone-enhancement-level is set, skin-tone-enhancement will be ignored.
2019-09-05vaapipostproc: allow cropping via propertiesU. Artie Eoff1-0/+7
Add crop-left, crop-right, crop-top and crop-bottom properties to vaapipostproc.
2019-08-30vaapipostproc: advertise crop meta is handledU. Artie Eoff1-0/+1
Advertise to upstream that vaapipostproc can handle crop meta. When used in conjunction with videocrop plugin, the videocrop plugin will only do in-place transform on the crop meta when vaapipostproc advertises the ability to handle it. This allows vaapipostproc to apply the crop meta on the output buffer using vaapi acceleration. Without this advertisement, the videocrop plugin will crop the output buffer directly via software methods, which is not what we desire. vaapipostproc will not apply the crop meta if downstream advertises crop meta handling; vaapipostproc will just forward the crop meta to downstream. If crop meta is not advertised by downstream, then vaapipostproc will apply the crop meta. Examples: 1. vaapipostproc will forward crop meta to vaapisink gst-launch-1.0 videotestsrc \ ! videocrop left=10 \ ! vaapipostproc \ ! vaapisink 2. vaapipostproc will do the cropping gst-launch-1.0 videotestsrc \ ! videocrop left=10 \ ! vaapipostproc \ ! identity drop-allocation=1 \ ! vaapisink
2019-08-19vaapipostproc: handle image-orientation upstream eventVíctor Manuel Jáquez Leal1-0/+1
Now that vaapipostproc can possible handle video-direction, it should also handle the image-orientation event from upstream if video-direction property is set to auto.
2019-05-29vaapipostproc: add mirror supportU. Artie Eoff1-1/+7
Adds vpp mirroring support to vaapipostproc. Use property video-direction. Valid values are identity, horiz or vert. Default is identity (no mirror). Closes #89 v2: Use GstVideoOrientationMethod enum v3: Don't warn for VA_MIRROR_NONE. Use GST_TYPE_VIDEO_ORIENTATION_METHOD type. v4: Query VAAPI caps when setting mirror value instead of during per-frame processing. v5: Return TRUE in warning cases when setting mirror value.
2016-07-22vaapipostproc: make it enable/disable pass-through modeHyunjun Ko1-0/+1
In case that sink caps and src caps are same, and no filtering parameter set, pass-through mode is enabled. If new filtering parameter is set during playback, it makes it reconfiguring, so that pass-through mode is changed In addition, updating filter is performed during reconfiguration, if needed. https://bugzilla.gnome.org/show_bug.cgi?id=751876
2016-06-08vaapipostproc: add postproc_lock to protect data membersScott D Phillips1-0/+1
Add a mutex to postproc to protect concurrent access to data members. Previously set_caps() could release the allowed_srcpad_caps while transform_caps was in the middle of using it. Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com> https://bugzilla.gnome.org/show_bug.cgi?id=766940
2015-06-12vaapipostproc: add color balance interfaceVíctor Manuel Jáquez Leal1-0/+3
https://bugzilla.gnome.org/show_bug.cgi?id=720376
2015-06-08vaapipostproc: add skin tone enhancementVíctor Manuel Jáquez Leal1-0/+4
Added the 'skin-tone-enhancement' property to vaapostproc. https://bugzilla.gnome.org/show_bug.cgi?id=744088
2015-03-06vaapipostproc: always activate buffer poolVíctor Manuel Jáquez Leal1-1/+0
The vaapipostproc has a proxy flag to know if the the buffer pool is already active. But this fails in some situations where it is needed to renegotiate the buffer pool. This patch removes that flag so the renegotiation is done whenever is required. https://bugzilla.gnome.org/show_bug.cgi?id=745535
2014-11-24plugins: re-indent all video processing related source code.Gwenole Beauchesne1-93/+89
2014-10-29vaapipostproc: allow user defined scaling mode.Gwenole Beauchesne1-0/+3
Add new "scale-method" property to expose the scaling mode to use during video processing. Note that this is only a hint, and the actual behaviour may differ from implementation (VA driver) to implementation.
2014-08-22vaapipostproc: use pooled vaapi video meta.Gwenole Beauchesne1-0/+1
Use pooled GstVaapiVideoMeta information, i.e. always allocate that on video buffer allocation. Also optimize copy of additional metadata info into the resulting video buffer: only copy the video cropping info and the source surface proxy. https://bugzilla.gnome.org/show_bug.cgi?id=720311 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com> [fixed proxy leak, fixed double free on error, optimized meta copy] Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2014-08-22vaapipostproc: fix output buffer to have a GstVaapiVideoMemory.Sreerenj Balachandran1-0/+1
https://bugzilla.gnome.org/show_bug.cgi?id=720311 [used new infrastructure through base decide_allocation() impl] Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2014-08-21vaapipostproc: improve heuristics for detecting native VA surfaces.Gwenole Beauchesne1-1/+1
Use the new gst_caps_has_vaapi_surface() helper function to detect whether the sink pad caps contain native VA surfaces, or not, i.e. no raw video caps. Also rename is_raw_yuv to get_va_surfaces to make the variable more explicit as we just want a way to differentiate raw video caps from VA surfaces actually.
2014-01-22legal: update copyright notice dates.Gwenole Beauchesne1-1/+1
2014-01-15vaapipostproc: add support for colorbalance filters.Zhao, Halley1-0/+6
Add support for hue, saturation, brightness and constrat adjustments. Also fix cap info local copy to match the really expected cap subtype of interest. https://bugzilla.gnome.org/show_bug.cgi?id=720376 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2013-12-20plugins: fix permissions for certain files.Gwenole Beauchesne1-0/+0
Drop the execute bit for gstvaapiuploader.c and gstvaapipostproc.[ch] files.
2013-12-18plugins: factor out support for raw YUV buffers on sink pads.Gwenole Beauchesne1-6/+0
Factor out propose_allocation() hooks, creation of video buffer pool for the sink pad, conversion from raw YUV buffers to VA surface backed buffers. Update vaapidecode, vaapiencode and vaapipostproc to cope with the new GstVaapiPluginBase abilities.
2013-12-18plugins: factor out pad caps.Gwenole Beauchesne1-2/+0
2013-12-18plugins: add new base object, store display in there.Gwenole Beauchesne1-5/+3
Introduce a new GstVaapiPluginBase object that will contain all common data structures and perform all common tasks. First step is to have a single place to hold VA displays. While we are at it, also make sure to store and subsequently release the appropriate debug category for the subclasses.
2013-11-22vaapipostproc: fix and optimize advanced deinterlacing mode.Gwenole Beauchesne1-1/+1
Fix advanced deinterlacing modes with VPP to track only up to 2 past reference buffers. This used to be 3 past reference buffers but this doesn't fit with the existing decode pipeline that only has 4 extra scratch surfaces. Also optimize references tracking to be only enabled when needed, i.e. when advanced deinterlacing mode is used. This means that we don't need to track past references for basic bob or weave deinterlacing.
2013-11-22legal: update copyright notice dates.Gwenole Beauchesne1-1/+1
2013-11-22legal: add per-file authorship information.Gwenole Beauchesne1-0/+1
Credit original authors on a per-file basis as we cannot expect people to know all country-specific rules, or bother browsing through the git history.
2013-11-21vaapipostproc: add support for denoise and sharpen filters.Halley Zhao1-0/+4
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2013-11-21vaapipostproc: add support for advanced deinterlacing.Gwenole Beauchesne1-0/+34
Add initial support for advanced deinterlacing. The history buffer size is arbitrarily set to 3 references for now.
2013-11-15vaapipostproc: add initial support for scaling.Gwenole Beauchesne1-0/+3
Add initial support for basic scaling with size specified through the "width" and "height" properties. If either user-provided dimension is zero and "force-aspect-ratio" is set to true (the default), then the other dimension is scaled to preserve the aspect ratio.
2013-11-15vaapipostproc: add initial support for color conversion.Gwenole Beauchesne1-2/+11
If VPP is available, we always try to implicitly convert the source buffer to the "native" surface format for the underlying accelerator. This means that no optimization is performed yet to propagate raw YUV buffers to the downstream element as is, if VPP is available. i.e. it will always cause a color conversion.
2013-11-15vaapipostproc: factor out operations to be applied into flags.Gwenole Beauchesne1-1/+30
Even if we only support deinterlacing for now, use flags to specify which filters are to be applied to each frame we receive in transform(). This is preparatory work for integrating new filters.
2013-10-09vaapipostproc: add support for raw YUV video source buffers.Gwenole Beauchesne1-0/+8
Allow video processing from raw YUV buffers coming from the sink pad, while still producing a VA surface for the downstream elements.
2013-10-09vaapipostproc: rework plug-in element.Gwenole Beauchesne1-13/+7
Rewrite the vaapipostproc plug-in element so that it derives from GstBaseTransform, thus simplifying the caps negotiation process.
2013-08-23filter: add initial support for deinterlacing.Zhao Halley1-14/+1
Add basic deinterlacing support, i.e. bob-deinterlacing whereby only the selected field from the input surface is kept for the target surface. Setting gst_vaapi_filter_set_deinterlacing() method argument to GST_VAAPI_DEINTERLACE_METHOD_NONE means to disable deinterlacing. Also move GstVaapiDeinterlaceMethod definition from vaapipostproc plug-in to libgstvaapi core library. Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2013-03-21plugins: integrate GstVaapiVideoBuffer from libgstvaapi.Gwenole Beauchesne1-1/+0
Move GstVaapiVideoBuffer from core libgstvaapi decoding library to the actual plugin elements. That's only useful there.
2012-09-07Do not forward declare enums.Philip Lorenz1-7/+4
Forward declaring enums is not allowed by the C standard and aborts compilation if the header file is included in a C++ project. Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2012-07-19plugins: declare _get_type() functions as const.Javier Jardón1-1/+1
Declaring a function as const enables better optimization of calls to the function. Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2012-03-26vaapipostproc: add new element for video postprocessing.Gwenole Beauchesne1-0/+123
Add vaapipostproc element for video postprocessing. So far, only basic bob deinterlacing is implemented. Interlaced mode is automatically detected based on sink caps ("interlaced" field).