mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-04-01 13:49:58 +00:00
wayland: gracefully handle unknown formats
This commit is contained in:
parent
fbcbf36fe3
commit
2f920a90bb
1 changed files with 13 additions and 6 deletions
|
@ -472,6 +472,7 @@ gst_wayland_sink_get_caps (GstBaseSink * bsink, GstCaps * filter)
|
|||
GArray *formats;
|
||||
gint i;
|
||||
guint fmt;
|
||||
GstVideoFormat gfmt;
|
||||
|
||||
g_value_init (&shm_list, GST_TYPE_LIST);
|
||||
g_value_init (&dmabuf_list, GST_TYPE_LIST);
|
||||
|
@ -479,10 +480,13 @@ gst_wayland_sink_get_caps (GstBaseSink * bsink, GstCaps * filter)
|
|||
/* Add corresponding shm formats */
|
||||
formats = sink->display->shm_formats;
|
||||
for (i = 0; i < formats->len; i++) {
|
||||
g_value_init (&value, G_TYPE_STRING);
|
||||
fmt = g_array_index (formats, uint32_t, i);
|
||||
g_value_set_static_string (&value, gst_wl_shm_format_to_string (fmt));
|
||||
gst_value_list_append_and_take_value (&shm_list, &value);
|
||||
gfmt = gst_wl_shm_format_to_video_format (fmt);
|
||||
if (gfmt != GST_VIDEO_FORMAT_UNKNOWN) {
|
||||
g_value_init (&value, G_TYPE_STRING);
|
||||
g_value_set_static_string (&value, gst_video_format_to_string (gfmt));
|
||||
gst_value_list_append_and_take_value (&shm_list, &value);
|
||||
}
|
||||
}
|
||||
|
||||
gst_structure_take_value (gst_caps_get_structure (caps, 0), "format",
|
||||
|
@ -491,10 +495,13 @@ gst_wayland_sink_get_caps (GstBaseSink * bsink, GstCaps * filter)
|
|||
/* Add corresponding dmabuf formats */
|
||||
formats = sink->display->dmabuf_formats;
|
||||
for (i = 0; i < formats->len; i++) {
|
||||
g_value_init (&value, G_TYPE_STRING);
|
||||
fmt = g_array_index (formats, uint32_t, i);
|
||||
g_value_set_static_string (&value, gst_wl_dmabuf_format_to_string (fmt));
|
||||
gst_value_list_append_and_take_value (&dmabuf_list, &value);
|
||||
gfmt = gst_wl_dmabuf_format_to_video_format (fmt);
|
||||
if (gfmt != GST_VIDEO_FORMAT_UNKNOWN) {
|
||||
g_value_init (&value, G_TYPE_STRING);
|
||||
g_value_set_static_string (&value, gst_video_format_to_string (gfmt));
|
||||
gst_value_list_append_and_take_value (&dmabuf_list, &value);
|
||||
}
|
||||
}
|
||||
|
||||
gst_structure_take_value (gst_caps_get_structure (caps, 1), "format",
|
||||
|
|
Loading…
Reference in a new issue