mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-25 01:30:38 +00:00
plugins: port to new video format API.
This commit is contained in:
parent
40ac87b45e
commit
09397fa0d8
3 changed files with 16 additions and 24 deletions
|
@ -79,7 +79,7 @@ struct _GstVaapiDownload {
|
|||
GstCaps *allowed_caps;
|
||||
TransformSizeCache transform_size_cache[2];
|
||||
GstVaapiVideoPool *images;
|
||||
GstVaapiImageFormat image_format;
|
||||
GstVideoFormat image_format;
|
||||
guint image_width;
|
||||
guint image_height;
|
||||
unsigned int images_reset : 1;
|
||||
|
@ -252,7 +252,7 @@ gst_vaapidownload_init(GstVaapiDownload *download)
|
|||
download->allowed_caps = NULL;
|
||||
download->images = NULL;
|
||||
download->images_reset = FALSE;
|
||||
download->image_format = (GstVaapiImageFormat)0;
|
||||
download->image_format = GST_VIDEO_FORMAT_UNKNOWN;
|
||||
download->image_width = 0;
|
||||
download->image_height = 0;
|
||||
|
||||
|
@ -293,11 +293,11 @@ gst_vaapidownload_stop(GstBaseTransform *trans)
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
static GstVaapiImageFormat
|
||||
static GstVideoFormat
|
||||
get_surface_format(GstVaapiSurface *surface)
|
||||
{
|
||||
GstVaapiImage *image;
|
||||
GstVaapiImageFormat format = GST_VAAPI_IMAGE_NV12;
|
||||
GstVideoFormat format = GST_VIDEO_FORMAT_NV12;
|
||||
|
||||
/* XXX: NV12 is assumed by default */
|
||||
image = gst_vaapi_surface_derive_image(surface);
|
||||
|
@ -313,7 +313,7 @@ gst_vaapidownload_update_src_caps(GstVaapiDownload *download, GstBuffer *buffer)
|
|||
{
|
||||
GstVaapiVideoMeta *meta;
|
||||
GstVaapiSurface *surface;
|
||||
GstVaapiImageFormat format;
|
||||
GstVideoFormat format;
|
||||
GstPad *srcpad;
|
||||
GstCaps *in_caps, *out_caps;
|
||||
|
||||
|
@ -334,7 +334,7 @@ gst_vaapidownload_update_src_caps(GstVaapiDownload *download, GstBuffer *buffer)
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
out_caps = gst_vaapi_image_format_get_caps(format);
|
||||
out_caps = gst_video_format_to_caps(format);
|
||||
if (!out_caps) {
|
||||
GST_WARNING("failed to create caps from format %" GST_FOURCC_FORMAT,
|
||||
GST_FOURCC_ARGS(format));
|
||||
|
@ -485,10 +485,10 @@ static gboolean
|
|||
gst_vaapidownload_ensure_image_pool(GstVaapiDownload *download, GstCaps *caps)
|
||||
{
|
||||
GstStructure * const structure = gst_caps_get_structure(caps, 0);
|
||||
GstVaapiImageFormat format;
|
||||
GstVideoFormat format;
|
||||
gint width, height;
|
||||
|
||||
format = gst_vaapi_image_format_from_caps(caps);
|
||||
format = gst_video_format_from_caps(caps);
|
||||
gst_structure_get_int(structure, "width", &width);
|
||||
gst_structure_get_int(structure, "height", &height);
|
||||
|
||||
|
|
|
@ -141,10 +141,10 @@ ensure_allowed_caps(GstVaapiUploader *uploader)
|
|||
for (i = 0; i < n_structures; i++) {
|
||||
GstStructure * const structure = gst_caps_get_structure(image_caps, i);
|
||||
GstVaapiImage *image;
|
||||
GstVaapiImageFormat format;
|
||||
GstVideoFormat format;
|
||||
|
||||
format = gst_vaapi_image_format_from_structure(structure);
|
||||
if (!format)
|
||||
format = gst_video_format_from_structure(structure);
|
||||
if (format == GST_VIDEO_FORMAT_UNKNOWN)
|
||||
continue;
|
||||
image = gst_vaapi_image_new(priv->display, format, WIDTH, HEIGHT);
|
||||
if (!image)
|
||||
|
@ -309,7 +309,7 @@ gst_vaapi_uploader_ensure_caps(
|
|||
{
|
||||
GstVaapiUploaderPrivate *priv;
|
||||
GstVaapiImage *image;
|
||||
GstVaapiImageFormat vaformat;
|
||||
GstVideoFormat format;
|
||||
GstVideoInfo vi;
|
||||
|
||||
g_return_val_if_fail(GST_VAAPI_IS_UPLOADER(uploader), FALSE);
|
||||
|
@ -323,19 +323,17 @@ gst_vaapi_uploader_ensure_caps(
|
|||
priv = uploader->priv;
|
||||
priv->direct_rendering = 0;
|
||||
|
||||
/* Translate from Gst video format to VA image format */
|
||||
/* Strip out non-YUV formats */
|
||||
if (!gst_video_info_from_caps(&vi, src_caps))
|
||||
return FALSE;
|
||||
if (!GST_VIDEO_INFO_IS_YUV(&vi))
|
||||
return FALSE;
|
||||
vaformat = gst_vaapi_image_format_from_video(GST_VIDEO_INFO_FORMAT(&vi));
|
||||
if (!vaformat)
|
||||
return FALSE;
|
||||
format = GST_VIDEO_INFO_FORMAT(&vi);
|
||||
|
||||
/* Check if we can alias source and output buffers (same data_size) */
|
||||
image = gst_vaapi_video_pool_get_object(priv->images);
|
||||
if (image) {
|
||||
if (gst_vaapi_image_get_format(image) == vaformat &&
|
||||
if (gst_vaapi_image_get_format(image) == format &&
|
||||
gst_vaapi_image_is_linear(image) &&
|
||||
gst_vaapi_image_get_data_size(image) == GST_VIDEO_INFO_SIZE(&vi))
|
||||
priv->direct_rendering = 1;
|
||||
|
|
|
@ -37,13 +37,7 @@ GST_DEBUG_CATEGORY_STATIC(gst_debug_vaapivideomemory);
|
|||
static GstVaapiImage *
|
||||
new_image(GstVaapiDisplay *display, const GstVideoInfo *vip)
|
||||
{
|
||||
GstVaapiImageFormat format;
|
||||
|
||||
format = gst_vaapi_image_format_from_video(GST_VIDEO_INFO_FORMAT(vip));
|
||||
if (!format)
|
||||
return NULL;
|
||||
|
||||
return gst_vaapi_image_new(display, format,
|
||||
return gst_vaapi_image_new(display, GST_VIDEO_INFO_FORMAT(vip),
|
||||
GST_VIDEO_INFO_WIDTH(vip), GST_VIDEO_INFO_HEIGHT(vip));
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue