diff options
author | Christian König <[email protected]> | 2015-12-08 13:18:43 +0100 |
---|---|---|
committer | Christian König <[email protected]> | 2016-01-12 13:28:35 +0100 |
commit | e945235aed86f473f27362bae902fbe67d5f0f20 (patch) | |
tree | 6de44985d9b4acd0aac3c1994eee87c3e63fbb1d /src/gallium/state_trackers/va/surface.c | |
parent | 3949cf0e025539a4fbcfe728482f74fd663f1cb6 (diff) |
st/va: add BOB deinterlacing v2
Tested with MPV.
v2: correctly handle compositor deinterlacing as well.
Signed-off-by: Christian König <[email protected]>
Reviewed-by: Emil Velikov <[email protected]>
Diffstat (limited to 'src/gallium/state_trackers/va/surface.c')
-rw-r--r-- | src/gallium/state_trackers/va/surface.c | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/src/gallium/state_trackers/va/surface.c b/src/gallium/state_trackers/va/surface.c index cead10b6bd8..f23a88901f5 100644 --- a/src/gallium/state_trackers/va/surface.c +++ b/src/gallium/state_trackers/va/surface.c @@ -663,7 +663,7 @@ vlVaQueryVideoProcFilters(VADriverContextP ctx, VAContextID context, if (!num_filters || !filters) return VA_STATUS_ERROR_INVALID_PARAMETER; - filters[num++] = VAProcFilterNone; + filters[num++] = VAProcFilterDeinterlacing; *num_filters = num; @@ -688,8 +688,20 @@ vlVaQueryVideoProcFilterCaps(VADriverContextP ctx, VAContextID context, switch (type) { case VAProcFilterNone: break; + case VAProcFilterDeinterlacing: { + VAProcFilterCapDeinterlacing *deint = filter_caps; + + if (*num_filter_caps < 2) { + *num_filter_caps = 2; + return VA_STATUS_ERROR_MAX_NUM_EXCEEDED; + } + + deint[i++].type = VAProcDeinterlacingBob; + deint[i++].type = VAProcDeinterlacingWeave; + break; + } + case VAProcFilterNoiseReduction: - case VAProcFilterDeinterlacing: case VAProcFilterSharpening: case VAProcFilterColorBalance: case VAProcFilterSkinToneEnhancement: |