summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/wayland/gstwaylandsink.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/ext/wayland/gstwaylandsink.c b/ext/wayland/gstwaylandsink.c
index 1da0d7df7..0d974196d 100644
--- a/ext/wayland/gstwaylandsink.c
+++ b/ext/wayland/gstwaylandsink.c
@@ -639,6 +639,8 @@ gst_wayland_sink_show_frame (GstVideoSink * vsink, GstBuffer * buffer)
}
/* update video info from video meta */
+ mem = gst_buffer_peek_memory (buffer, 0);
+
vmeta = gst_buffer_get_video_meta (buffer);
if (vmeta) {
gint i;
@@ -647,13 +649,12 @@ gst_wayland_sink_show_frame (GstVideoSink * vsink, GstBuffer * buffer)
sink->video_info.offset[i] = vmeta->offset[i];
sink->video_info.stride[i] = vmeta->stride[i];
}
+ sink->video_info.size = mem->size;
}
GST_LOG_OBJECT (sink, "buffer %p does not have a wl_buffer from our "
"display, creating it", buffer);
- mem = gst_buffer_peek_memory (buffer, 0);
-
format = GST_VIDEO_INFO_FORMAT (&sink->video_info);
if (gst_wl_display_check_format_for_dmabuf (sink->display, format)) {
guint i, nb_dmabuf = 0;
@@ -687,11 +688,11 @@ gst_wayland_sink_show_frame (GstVideoSink * vsink, GstBuffer * buffer)
if (!gst_buffer_pool_is_active (sink->pool)) {
GstStructure *config;
GstCaps *caps;
- guint size = sink->video_info.size;
config = gst_buffer_pool_get_config (sink->pool);
- gst_buffer_pool_config_get_params (config, &caps, &size, NULL, NULL);
- gst_buffer_pool_config_set_params (config, caps, size, 2, 0);
+ gst_buffer_pool_config_get_params (config, &caps, NULL, NULL, NULL);
+ gst_buffer_pool_config_set_params (config, caps, sink->video_info.size,
+ 2, 0);
/* This is a video pool, it should not fail with basic setings */
if (!gst_buffer_pool_set_config (sink->pool, config) ||