mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-22 05:56:31 +00:00
libs: filter: guard all color properties to VA-API 1.2.0
Older VA-API (0.39.0) doesn't have VAProcColorProperties. Thus, guard all colorimetry -> VA-API support to version 1.2.0. Fixes #234
This commit is contained in:
parent
c4d8b5c44c
commit
13c3b8ba5b
2 changed files with 12 additions and 3 deletions
|
@ -1526,13 +1526,13 @@ gst_vaapi_filter_set_operation (GstVaapiFilter * filter, GstVaapiFilterOp op,
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if VA_CHECK_VERSION(1,2,0)
|
||||||
static void
|
static void
|
||||||
fill_color_standard (GstVideoColorimetry * colorimetry,
|
fill_color_standard (GstVideoColorimetry * colorimetry,
|
||||||
VAProcColorStandardType * type, VAProcColorProperties * properties)
|
VAProcColorStandardType * type, VAProcColorProperties * properties)
|
||||||
{
|
{
|
||||||
*type = from_GstVideoColorimetry (colorimetry);
|
*type = from_GstVideoColorimetry (colorimetry);
|
||||||
|
|
||||||
#if VA_CHECK_VERSION(1,2,0)
|
|
||||||
if (*type == VAProcColorStandardExplicit) {
|
if (*type == VAProcColorStandardExplicit) {
|
||||||
properties->colour_primaries =
|
properties->colour_primaries =
|
||||||
gst_video_color_primaries_to_iso (colorimetry->primaries);
|
gst_video_color_primaries_to_iso (colorimetry->primaries);
|
||||||
|
@ -1541,10 +1541,10 @@ fill_color_standard (GstVideoColorimetry * colorimetry,
|
||||||
properties->matrix_coefficients =
|
properties->matrix_coefficients =
|
||||||
gst_video_color_matrix_to_iso (colorimetry->matrix);
|
gst_video_color_matrix_to_iso (colorimetry->matrix);
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
properties->color_range = from_GstVideoColorRange (colorimetry->range);
|
properties->color_range = from_GstVideoColorRange (colorimetry->range);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* gst_vaapi_filter_process:
|
* gst_vaapi_filter_process:
|
||||||
|
@ -1647,6 +1647,7 @@ gst_vaapi_filter_process_unlocked (GstVaapiFilter * filter,
|
||||||
pipeline_param->surface = GST_VAAPI_SURFACE_ID (src_surface);
|
pipeline_param->surface = GST_VAAPI_SURFACE_ID (src_surface);
|
||||||
pipeline_param->surface_region = &src_rect;
|
pipeline_param->surface_region = &src_rect;
|
||||||
|
|
||||||
|
#if VA_CHECK_VERSION(1,2,0)
|
||||||
fill_color_standard (&filter->input_colorimetry,
|
fill_color_standard (&filter->input_colorimetry,
|
||||||
&pipeline_param->surface_color_standard,
|
&pipeline_param->surface_color_standard,
|
||||||
&pipeline_param->input_color_properties);
|
&pipeline_param->input_color_properties);
|
||||||
|
@ -1654,6 +1655,10 @@ gst_vaapi_filter_process_unlocked (GstVaapiFilter * filter,
|
||||||
fill_color_standard (&filter->output_colorimetry,
|
fill_color_standard (&filter->output_colorimetry,
|
||||||
&pipeline_param->output_color_standard,
|
&pipeline_param->output_color_standard,
|
||||||
&pipeline_param->output_color_properties);
|
&pipeline_param->output_color_properties);
|
||||||
|
#else
|
||||||
|
pipeline_param->surface_color_standard = VAProcColorStandardNone;
|
||||||
|
pipeline_param->output_color_standard = VAProcColorStandardNone;
|
||||||
|
#endif
|
||||||
|
|
||||||
pipeline_param->output_region = &dst_rect;
|
pipeline_param->output_region = &dst_rect;
|
||||||
pipeline_param->output_background_color = 0xff000000;
|
pipeline_param->output_background_color = 0xff000000;
|
||||||
|
|
|
@ -969,6 +969,7 @@ to_GstVaapiBufferMemoryType (guint va_type)
|
||||||
guint
|
guint
|
||||||
from_GstVideoColorimetry (const GstVideoColorimetry * const colorimetry)
|
from_GstVideoColorimetry (const GstVideoColorimetry * const colorimetry)
|
||||||
{
|
{
|
||||||
|
#if VA_CHECK_VERSION(1,2,0)
|
||||||
if (!colorimetry
|
if (!colorimetry
|
||||||
|| colorimetry->primaries == GST_VIDEO_COLOR_PRIMARIES_UNKNOWN)
|
|| colorimetry->primaries == GST_VIDEO_COLOR_PRIMARIES_UNKNOWN)
|
||||||
return VAProcColorStandardNone;
|
return VAProcColorStandardNone;
|
||||||
|
@ -985,7 +986,6 @@ from_GstVideoColorimetry (const GstVideoColorimetry * const colorimetry)
|
||||||
GST_VIDEO_COLORIMETRY_SMPTE240M))
|
GST_VIDEO_COLORIMETRY_SMPTE240M))
|
||||||
return VAProcColorStandardSMPTE240M;
|
return VAProcColorStandardSMPTE240M;
|
||||||
|
|
||||||
#if VA_CHECK_VERSION(1,2,0)
|
|
||||||
return VAProcColorStandardExplicit;
|
return VAProcColorStandardExplicit;
|
||||||
#else
|
#else
|
||||||
return VAProcColorStandardNone;
|
return VAProcColorStandardNone;
|
||||||
|
@ -1003,6 +1003,7 @@ from_GstVideoColorimetry (const GstVideoColorimetry * const colorimetry)
|
||||||
guint
|
guint
|
||||||
from_GstVideoColorRange (const GstVideoColorRange value)
|
from_GstVideoColorRange (const GstVideoColorRange value)
|
||||||
{
|
{
|
||||||
|
#if VA_CHECK_VERSION(1,2,0)
|
||||||
switch (value) {
|
switch (value) {
|
||||||
case GST_VIDEO_COLOR_RANGE_0_255:
|
case GST_VIDEO_COLOR_RANGE_0_255:
|
||||||
return VA_SOURCE_RANGE_FULL;
|
return VA_SOURCE_RANGE_FULL;
|
||||||
|
@ -1011,4 +1012,7 @@ from_GstVideoColorRange (const GstVideoColorRange value)
|
||||||
default:
|
default:
|
||||||
return VA_SOURCE_RANGE_UNKNOWN;
|
return VA_SOURCE_RANGE_UNKNOWN;
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
return 0;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue