va: Use vaMapBuffer2
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5467>
This commit is contained in:
parent
25c00b5ba2
commit
8aac08506a
@ -1430,7 +1430,7 @@ _va_map_unlocked (GstVaMemory * mem, GstMapFlags flags)
|
|||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!va_map_buffer (display, mem->image.buf, &mem->mapped_data))
|
if (!va_map_buffer (display, mem->image.buf, flags, &mem->mapped_data))
|
||||||
goto fail;
|
goto fail;
|
||||||
|
|
||||||
success:
|
success:
|
||||||
|
@ -242,12 +242,22 @@ va_sync_surface (GstVaDisplay * display, VASurfaceID surface)
|
|||||||
}
|
}
|
||||||
|
|
||||||
gboolean
|
gboolean
|
||||||
va_map_buffer (GstVaDisplay * display, VABufferID buffer, gpointer * data)
|
va_map_buffer (GstVaDisplay * display, VABufferID buffer, GstMapFlags flags,
|
||||||
|
gpointer * data)
|
||||||
{
|
{
|
||||||
VADisplay dpy = gst_va_display_get_va_dpy (display);
|
VADisplay dpy = gst_va_display_get_va_dpy (display);
|
||||||
VAStatus status;
|
VAStatus status;
|
||||||
|
|
||||||
|
#if VA_CHECK_VERSION(1, 21, 0)
|
||||||
|
uint32_t vaflags = 0;
|
||||||
|
if (flags & GST_MAP_READ)
|
||||||
|
vaflags |= VA_MAPBUFFER_FLAG_READ;
|
||||||
|
if (flags & GST_MAP_WRITE)
|
||||||
|
vaflags |= VA_MAPBUFFER_FLAG_WRITE;
|
||||||
|
status = vaMapBuffer2 (dpy, buffer, data, vaflags);
|
||||||
|
#else
|
||||||
status = vaMapBuffer (dpy, buffer, data);
|
status = vaMapBuffer (dpy, buffer, data);
|
||||||
|
#endif
|
||||||
if (status != VA_STATUS_SUCCESS) {
|
if (status != VA_STATUS_SUCCESS) {
|
||||||
GST_WARNING ("vaMapBuffer: %s", vaErrorStr (status));
|
GST_WARNING ("vaMapBuffer: %s", vaErrorStr (status));
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
@ -88,6 +88,7 @@ gboolean va_ensure_image (GstVaDisplay * displa
|
|||||||
GST_VA_API
|
GST_VA_API
|
||||||
gboolean va_map_buffer (GstVaDisplay * display,
|
gboolean va_map_buffer (GstVaDisplay * display,
|
||||||
VABufferID buffer,
|
VABufferID buffer,
|
||||||
|
GstMapFlags flags,
|
||||||
gpointer * data);
|
gpointer * data);
|
||||||
GST_VA_API
|
GST_VA_API
|
||||||
gboolean va_unmap_buffer (GstVaDisplay * display,
|
gboolean va_unmap_buffer (GstVaDisplay * display,
|
||||||
|
@ -288,7 +288,7 @@ gst_va_base_enc_create_output_buffer (GstVaBaseEnc * base,
|
|||||||
|
|
||||||
seg_list = NULL;
|
seg_list = NULL;
|
||||||
if (!va_map_buffer (base->display, picture->coded_buffer,
|
if (!va_map_buffer (base->display, picture->coded_buffer,
|
||||||
(gpointer *) & seg_list))
|
GST_MAP_READ, (gpointer *) & seg_list))
|
||||||
goto error;
|
goto error;
|
||||||
|
|
||||||
if (!seg_list) {
|
if (!seg_list) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user