waylandsink: Prefer DMABuf over system memory
Swap the template and caps query around to that the sink can describe a preference for DMAbuf over system memory. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8404>
This commit is contained in:
parent
e953693aff
commit
7edb6a5634
@ -39699,7 +39699,7 @@
|
||||
"long-name": "Gtk Wayland Video Sink",
|
||||
"pad-templates": {
|
||||
"sink": {
|
||||
"caps": "video/x-raw:\n format: { AYUV, RGBA, ARGB, BGRA, ABGR, P010_10LE, NV12_10LE40, v308, RGBx, xRGB, BGRx, xBGR, RGB, BGR, Y42B, NV16, NV61, YUY2, YVYU, UYVY, I420, YV12, NV12, NV21, Y41B, YUV9, YVU9, BGR16, RGB16 }\n width: [ 1, 2147483647 ]\n height: [ 1, 2147483647 ]\n framerate: [ 0/1, 2147483647/1 ]\n\nvideo/x-raw(memory:DMABuf):\n format: DMA_DRM\n width: [ 1, 2147483647 ]\n height: [ 1, 2147483647 ]\n framerate: [ 0/1, 2147483647/1 ]\n",
|
||||
"caps": "video/x-raw(memory:DMABuf):\n format: DMA_DRM\n width: [ 1, 2147483647 ]\n height: [ 1, 2147483647 ]\n framerate: [ 0/1, 2147483647/1 ]\nvideo/x-raw:\n format: { AYUV, RGBA, ARGB, BGRA, ABGR, P010_10LE, NV12_10LE40, v308, RGBx, xRGB, BGRx, xBGR, RGB, BGR, Y42B, NV16, NV61, YUY2, YVYU, UYVY, I420, YV12, NV12, NV21, Y41B, YUV9, YVU9, BGR16, RGB16 }\n width: [ 1, 2147483647 ]\n height: [ 1, 2147483647 ]\n framerate: [ 0/1, 2147483647/1 ]\n",
|
||||
"direction": "sink",
|
||||
"presence": "always"
|
||||
}
|
||||
@ -253228,7 +253228,7 @@
|
||||
"long-name": "wayland video sink",
|
||||
"pad-templates": {
|
||||
"sink": {
|
||||
"caps": "video/x-raw:\n format: { AYUV, RGBA, ARGB, BGRA, ABGR, P010_10LE, NV12_10LE40, v308, RGBx, xRGB, BGRx, xBGR, RGB, BGR, Y42B, NV16, NV61, YUY2, YVYU, UYVY, I420, YV12, NV12, NV21, Y41B, YUV9, YVU9, BGR16, RGB16 }\n width: [ 1, 2147483647 ]\n height: [ 1, 2147483647 ]\n framerate: [ 0/1, 2147483647/1 ]\n\nvideo/x-raw(memory:DMABuf):\n format: DMA_DRM\n width: [ 1, 2147483647 ]\n height: [ 1, 2147483647 ]\n framerate: [ 0/1, 2147483647/1 ]\n",
|
||||
"caps": "video/x-raw(memory:DMABuf):\n format: DMA_DRM\n width: [ 1, 2147483647 ]\n height: [ 1, 2147483647 ]\n framerate: [ 0/1, 2147483647/1 ]\nvideo/x-raw:\n format: { AYUV, RGBA, ARGB, BGRA, ABGR, P010_10LE, NV12_10LE40, v308, RGBx, xRGB, BGRx, xBGR, RGB, BGR, Y42B, NV16, NV61, YUY2, YVYU, UYVY, I420, YV12, NV12, NV21, Y41B, YUV9, YVU9, BGR16, RGB16 }\n width: [ 1, 2147483647 ]\n height: [ 1, 2147483647 ]\n framerate: [ 0/1, 2147483647/1 ]\n",
|
||||
"direction": "sink",
|
||||
"presence": "always"
|
||||
}
|
||||
|
@ -45,8 +45,8 @@ GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT);
|
||||
static GstStaticPadTemplate sink_template = GST_STATIC_PAD_TEMPLATE ("sink",
|
||||
GST_PAD_SINK,
|
||||
GST_PAD_ALWAYS,
|
||||
GST_STATIC_CAPS (GST_VIDEO_CAPS_MAKE (GST_WL_VIDEO_FORMATS) ";"
|
||||
GST_VIDEO_DMA_DRM_CAPS_MAKE)
|
||||
GST_STATIC_CAPS (GST_VIDEO_DMA_DRM_CAPS_MAKE ";"
|
||||
GST_VIDEO_CAPS_MAKE (GST_WL_VIDEO_FORMATS))
|
||||
);
|
||||
|
||||
static void gst_gtk_wayland_sink_get_property (GObject * object,
|
||||
@ -784,16 +784,16 @@ gst_gtk_wayland_sink_get_caps (GstBaseSink * bsink, GstCaps * filter)
|
||||
|
||||
g_value_init (&format_list, GST_TYPE_LIST);
|
||||
|
||||
/* Add corresponding shm formats */
|
||||
gst_wl_display_fill_shm_format_list (priv->display, &format_list);
|
||||
gst_structure_take_value (gst_caps_get_structure (caps, 0), "format",
|
||||
/* Add corresponding dmabuf formats */
|
||||
gst_wl_display_fill_dmabuf_format_list (priv->display, &format_list);
|
||||
gst_structure_take_value (gst_caps_get_structure (caps, 0), "drm-format",
|
||||
&format_list);
|
||||
|
||||
g_value_init (&format_list, GST_TYPE_LIST);
|
||||
|
||||
/* Add corresponding dmabuf formats */
|
||||
gst_wl_display_fill_dmabuf_format_list (priv->display, &format_list);
|
||||
gst_structure_take_value (gst_caps_get_structure (caps, 1), "drm-format",
|
||||
/* Add corresponding shm formats */
|
||||
gst_wl_display_fill_shm_format_list (priv->display, &format_list);
|
||||
gst_structure_take_value (gst_caps_get_structure (caps, 1), "format",
|
||||
&format_list);
|
||||
|
||||
GST_DEBUG_OBJECT (self, "display caps: %" GST_PTR_FORMAT, caps);
|
||||
|
@ -72,8 +72,8 @@ GST_DEBUG_CATEGORY (gstwayland_debug);
|
||||
static GstStaticPadTemplate sink_template = GST_STATIC_PAD_TEMPLATE ("sink",
|
||||
GST_PAD_SINK,
|
||||
GST_PAD_ALWAYS,
|
||||
GST_STATIC_CAPS (GST_VIDEO_CAPS_MAKE (GST_WL_VIDEO_FORMATS) ";"
|
||||
GST_VIDEO_DMA_DRM_CAPS_MAKE)
|
||||
GST_STATIC_CAPS (GST_VIDEO_DMA_DRM_CAPS_MAKE ";"
|
||||
GST_VIDEO_CAPS_MAKE (GST_WL_VIDEO_FORMATS))
|
||||
);
|
||||
|
||||
static void gst_wayland_sink_get_property (GObject * object,
|
||||
@ -569,16 +569,16 @@ gst_wayland_sink_get_caps (GstBaseSink * bsink, GstCaps * filter)
|
||||
|
||||
g_value_init (&format_list, GST_TYPE_LIST);
|
||||
|
||||
/* Add corresponding shm formats */
|
||||
gst_wl_display_fill_shm_format_list (self->display, &format_list);
|
||||
gst_structure_take_value (gst_caps_get_structure (caps, 0), "format",
|
||||
/* Add corresponding dmabuf formats */
|
||||
gst_wl_display_fill_dmabuf_format_list (self->display, &format_list);
|
||||
gst_structure_take_value (gst_caps_get_structure (caps, 0), "drm-format",
|
||||
&format_list);
|
||||
|
||||
g_value_init (&format_list, GST_TYPE_LIST);
|
||||
|
||||
/* Add corresponding dmabuf formats */
|
||||
gst_wl_display_fill_dmabuf_format_list (self->display, &format_list);
|
||||
gst_structure_take_value (gst_caps_get_structure (caps, 1), "drm-format",
|
||||
/* Add corresponding shm formats */
|
||||
gst_wl_display_fill_shm_format_list (self->display, &format_list);
|
||||
gst_structure_take_value (gst_caps_get_structure (caps, 1), "format",
|
||||
&format_list);
|
||||
|
||||
GST_DEBUG_OBJECT (self, "display caps: %" GST_PTR_FORMAT, caps);
|
||||
|
Loading…
x
Reference in New Issue
Block a user