#memory #gpu #gstreamer #display #multimedia
Вопрос:
Я очень новичок в gsteamer и работаю над модификацией плагина gstreamer — видеоконверт позволяет получать выходные данные, выделенные в виде буферов памяти gpu.
В рамках первого шага мы изменили плагин, чтобы обновить шаблон src, включив в него ограничения на память gpu.
Выделение памяти для gpu выполняется с помощью transform_frame, но перед этим вызывается ошибка потока, и согласование завершается неудачно
Прокомментированная часть
// #define CSP_VIDEO_CAPS GST_VIDEO_CAPS_MAKE (GST_VIDEO_FORMATS_ALL) ";"
GST_VIDEO_CAPS_MAKE_WITH_FEATURES ("ANY", GST_VIDEO_FORMATS_ALL)
Измененная деталь
#define CSP_VIDEO_CAPS_SRC GST_VIDEO_CAPS_MAKE (GST_VIDEO_FORMATS_ALL) ";"
GST_VIDEO_CAPS_MAKE_WITH_FEATURES ("memory:GBM", GST_VIDEO_FORMATS_ALL)
//#define CSP_VIDEO_CAPS_SRC GST_VIDEO_CAPS_MAKE_WITH_FEATURES ("memory:GBM", GST_VIDEO_FORMATS_ALL)
static GstStaticPadTemplate gst_video_convert_src_template =
GST_STATIC_PAD_TEMPLATE ("src",
GST_PAD_SRC,
GST_PAD_ALWAYS,
GST_STATIC_CAPS (CSP_VIDEO_CAPS_SRC)
);
При попытке запустить конвейер воспроизведения возникают ошибки, связанные с согласованием и ошибкой потока, как показано ниже
ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Internal data stream error.
Additional debug info:
../../../../gstreamer-1.14.4/libs/gst/base/gstbasesrc.c(3055): gst_base_src_loop (): /GstPipeline:pipeline0/GstV4l2Src:v4l2src0:
streaming stopped, reason not-negotiated (-4)
в чем здесь может быть проблема?