mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-24 02:31:03 +00:00
vaapivideomemory: log in perf category when copy
Log in performance category when the derive image handling fails, falling back to memory copy.
This commit is contained in:
parent
7e90ae4c2e
commit
1bc5f00dfe
1 changed files with 24 additions and 3 deletions
|
@ -28,6 +28,7 @@
|
||||||
#include "gstvaapivideomemory.h"
|
#include "gstvaapivideomemory.h"
|
||||||
#include "gstvaapipluginutil.h"
|
#include "gstvaapipluginutil.h"
|
||||||
|
|
||||||
|
GST_DEBUG_CATEGORY_STATIC (CAT_PERFORMANCE);
|
||||||
GST_DEBUG_CATEGORY_STATIC (gst_debug_vaapivideomemory);
|
GST_DEBUG_CATEGORY_STATIC (gst_debug_vaapivideomemory);
|
||||||
#define GST_CAT_DEFAULT gst_debug_vaapivideomemory
|
#define GST_CAT_DEFAULT gst_debug_vaapivideomemory
|
||||||
|
|
||||||
|
@ -45,6 +46,27 @@ GST_DEBUG_CATEGORY_STATIC (gst_debug_vaapivideomemory);
|
||||||
|
|
||||||
static void gst_vaapi_video_memory_reset_image (GstVaapiVideoMemory * mem);
|
static void gst_vaapi_video_memory_reset_image (GstVaapiVideoMemory * mem);
|
||||||
|
|
||||||
|
static void
|
||||||
|
_init_performance_debug (void)
|
||||||
|
{
|
||||||
|
#ifndef GST_DISABLE_GST_DEBUG
|
||||||
|
static volatile gsize _init = 0;
|
||||||
|
|
||||||
|
if (g_once_init_enter (&_init)) {
|
||||||
|
GST_DEBUG_CATEGORY_GET (CAT_PERFORMANCE, "GST_PERFORMANCE");
|
||||||
|
g_once_init_leave (&_init, 1);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void
|
||||||
|
reset_image_usage (gboolean * flag)
|
||||||
|
{
|
||||||
|
_init_performance_debug ();
|
||||||
|
GST_CAT_INFO (CAT_PERFORMANCE, "derive image failed, fallbacking to copy");
|
||||||
|
*flag = FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
static guchar *
|
static guchar *
|
||||||
get_image_data (GstVaapiImage * image)
|
get_image_data (GstVaapiImage * image)
|
||||||
{
|
{
|
||||||
|
@ -74,12 +96,11 @@ ensure_image (GstVaapiVideoMemory * mem)
|
||||||
if (!mem->image && mem->use_direct_rendering) {
|
if (!mem->image && mem->use_direct_rendering) {
|
||||||
mem->image = gst_vaapi_surface_derive_image (mem->surface);
|
mem->image = gst_vaapi_surface_derive_image (mem->surface);
|
||||||
if (!mem->image) {
|
if (!mem->image) {
|
||||||
GST_WARNING ("failed to derive image, fallbacking to copy");
|
reset_image_usage (&mem->use_direct_rendering);
|
||||||
mem->use_direct_rendering = FALSE;
|
|
||||||
} else if (gst_vaapi_surface_get_format (mem->surface) !=
|
} else if (gst_vaapi_surface_get_format (mem->surface) !=
|
||||||
GST_VIDEO_INFO_FORMAT (mem->image_info)) {
|
GST_VIDEO_INFO_FORMAT (mem->image_info)) {
|
||||||
gst_vaapi_object_replace (&mem->image, NULL);
|
gst_vaapi_object_replace (&mem->image, NULL);
|
||||||
mem->use_direct_rendering = FALSE;
|
reset_image_usage (&mem->use_direct_rendering);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue