VA-API

va_vpp.h

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2007-2011 Intel Corporation. All Rights Reserved.
00003  *
00004  * Permission is hereby granted, free of charge, to any person obtaining a
00005  * copy of this software and associated documentation files (the
00006  * "Software"), to deal in the Software without restriction, including
00007  * without limitation the rights to use, copy, modify, merge, publish,
00008  * distribute, sub license, and/or sell copies of the Software, and to
00009  * permit persons to whom the Software is furnished to do so, subject to
00010  * the following conditions:
00011  *
00012  * The above copyright notice and this permission notice (including the
00013  * next paragraph) shall be included in all copies or substantial portions
00014  * of the Software.
00015  *
00016  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
00017  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
00018  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
00019  * IN NO EVENT SHALL INTEL AND/OR ITS SUPPLIERS BE LIABLE FOR
00020  * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
00021  * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
00022  * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
00023  */
00024 
00032 #ifndef VA_VPP_H
00033 #define VA_VPP_H
00034 
00035 #ifdef __cplusplus
00036 extern "C" {
00037 #endif
00038 
00238 typedef enum _VAProcFilterType {
00239     VAProcFilterNone = 0,
00241     VAProcFilterNoiseReduction,
00243     VAProcFilterDeinterlacing,
00245     VAProcFilterSharpening,
00247     VAProcFilterColorBalance,
00249     VAProcFilterColorStandard,
00251     VAProcFilterCount
00252 } VAProcFilterType;
00253 
00255 typedef enum _VAProcDeinterlacingType {
00256     VAProcDeinterlacingNone = 0,
00258     VAProcDeinterlacingBob,
00260     VAProcDeinterlacingWeave,
00262     VAProcDeinterlacingMotionAdaptive,
00264     VAProcDeinterlacingMotionCompensated,
00266     VAProcDeinterlacingCount
00267 } VAProcDeinterlacingType;
00268 
00270 typedef enum _VAProcColorBalanceType {
00271     VAProcColorBalanceNone = 0,
00273     VAProcColorBalanceHue,
00275     VAProcColorBalanceSaturation,
00277     VAProcColorBalanceBrightness,
00279     VAProcColorBalanceContrast,
00281     VAProcColorBalanceAutoSaturation,
00283     VAProcColorBalanceAutoBrightness,
00285     VAProcColorBalanceAutoContrast,
00287     VAProcColorBalanceCount
00288 } VAProcColorBalanceType;
00289 
00291 typedef enum _VAProcColorStandardType {
00292     VAProcColorStandardNone = 0,
00294     VAProcColorStandardBT601,
00296     VAProcColorStandardBT709,
00298     VAProcColorStandardBT470M,
00300     VAProcColorStandardBT470BG,
00302     VAProcColorStandardSMPTE170M,
00304     VAProcColorStandardSMPTE240M,
00306     VAProcColorStandardGenericFilm,
00308     VAProcColorStandardCount
00309 } VAProcColorStandardType;
00310 
00314 #define VA_PROC_PIPELINE_SUBPICTURES    0x00000001
00315 
00325 #define VA_PROC_PIPELINE_FAST           0x00000002
00326 
00331 #define VA_PROC_FILTER_MANDATORY        0x00000001
00332 
00335 typedef struct _VAProcPipelineCaps {
00337     unsigned int        flags;
00339     unsigned int        pipeline_flags;
00341     unsigned int        filter_flags;
00343     unsigned int        num_forward_references;
00345     unsigned int        num_backward_references;
00347     VAProcColorStandardType *input_color_standards;
00349     unsigned int        num_input_color_standards;
00351     VAProcColorStandardType *output_color_standards;
00353     unsigned int        num_output_color_standards;
00354 } VAProcPipelineCaps;
00355 
00357 typedef struct _VAProcFilterValueRange {
00359     float               min_value;
00361     float               max_value;
00363     float               default_value;
00365     float               step;
00366 } VAProcFilterValueRange;
00367 
00398 typedef struct _VAProcPipelineParameterBuffer {
00406     VASurfaceID         surface;
00414     const VARectangle  *surface_region;
00423     VAProcColorStandardType surface_color_standard;
00434     const VARectangle  *output_region;
00450     unsigned int        output_background_color;
00454     VAProcColorStandardType output_color_standard;
00462     unsigned int        pipeline_flags;
00480     unsigned int        filter_flags;
00497     VABufferID         *filters;
00499     unsigned int        num_filters;
00501     VASurfaceID        *forward_references;
00503     unsigned int        num_forward_references;
00505     VASurfaceID        *backward_references;
00507     unsigned int        num_backward_references;
00508 } VAProcPipelineParameterBuffer;
00509 
00517 typedef struct _VAProcFilterParameterBufferBase {
00519     VAProcFilterType    type;
00520 } VAProcFilterParameterBufferBase;
00521 
00528 typedef struct _VAProcFilterParameterBuffer {
00530     VAProcFilterType    type;
00532     float               value;
00533 } VAProcFilterParameterBuffer;
00534 
00536 typedef struct _VAProcFilterParameterBufferDeinterlacing {
00538     VAProcFilterType            type;
00540     VAProcDeinterlacingType     algorithm;
00541 } VAProcFilterParameterBufferDeinterlacing;
00542 
00583 typedef struct _VAProcFilterParameterBufferColorBalance {
00585     VAProcFilterType            type;
00587     VAProcColorBalanceType      attrib;
00601     float                       value;
00602 } VAProcFilterParameterBufferColorBalance;
00603 
00605 typedef struct _VAProcFilterParameterBufferColorStandard {
00607     VAProcFilterType            type;
00609     VAProcColorStandardType     standard;
00610 } VAProcFilterParameterBufferColorStandard;
00611 
00618 typedef struct _VAProcFilterCap {
00620     VAProcFilterValueRange      range;
00621 } VAProcFilterCap;
00622 
00624 typedef struct _VAProcFilterCapDeinterlacing {
00626     VAProcDeinterlacingType     type;
00627 } VAProcFilterCapDeinterlacing;
00628 
00630 typedef struct _VAProcFilterCapColorBalance {
00632     VAProcColorBalanceType      type;
00634     VAProcFilterValueRange      range;
00635 } VAProcFilterCapColorBalance;
00636 
00638 typedef struct _VAProcFilterCapColorStandard {
00640     VAProcColorStandardType     type;
00641 } VAProcFilterCapColorStandard;
00642 
00668 VAStatus
00669 vaQueryVideoProcFilters(
00670     VADisplay           dpy,
00671     VAContextID         context,
00672     VAProcFilterType   *filters,
00673     unsigned int       *num_filters
00674 );
00675 
00695 VAStatus
00696 vaQueryVideoProcFilterCaps(
00697     VADisplay           dpy,
00698     VAContextID         context,
00699     VAProcFilterType    type,
00700     void               *filter_caps,
00701     unsigned int       *num_filter_caps
00702 );
00703 
00726 VAStatus
00727 vaQueryVideoProcPipelineCaps(
00728     VADisplay           dpy,
00729     VAContextID         context,
00730     VABufferID         *filters,
00731     unsigned int        num_filters,
00732     VAProcPipelineCaps *pipeline_caps
00733 );
00734 
00737 #ifdef __cplusplus
00738 }
00739 #endif
00740 
00741 #endif /* VA_VPP_H */
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Defines