gst_video_overlay_set_render_rectangle()

horai ivo.hora at seznam.cz
Tue Aug 27 10:03:36 UTC 2019


Dear all,

I am running repository Weston 5.0 on Debian Buster (RPI4 as well as X86).
I have a GTK3 window and it contains 4 regions each possessing an overlay
for video of a waylandsink. In each rectangle area there is a video running.
The thing I want to achieve is to maximize the rendering area one are upon
event box click and render full screen video onto the overlay area and hide
all the others.
Therefore according to documentation I found this function:
gst_video_overlay_set_render_rectangle (GstVideoOverlay * overlay,
                                        gint x,
                                        gint y,
                                        gint width,
                                        gint height)

And set it this way:
button_press_event(GtkWidget *widget, GdkEventButton *event, struct AppData
* d) {
    if (enlarged == 0) {
        g_print("enlarging ...\r\n");
        gst_element_set_state(d->pipeline1, GST_STATE_NULL);
        gst_element_set_state(d->pipeline2, GST_STATE_NULL);
        gst_element_set_state(d->pipeline3, GST_STATE_NULL);

g_print("%d\r\n %d \r\n %d \r\n", d->overlay1,d->overlay2,d->overlay3);

        gst_video_overlay_set_render_rectangle(d->overlay1,
                   d->video_widget_allocation1.x,
d->video_widget_allocation1.y,
                    -1, -1);

        gst_video_overlay_set_render_rectangle(d->overlay2,
                    d->video_widget_allocation2.x,
d->video_widget_allocation2.y,
                    -1, -1);
        gst_video_overlay_set_render_rectangle(d->overlay3,
                    d->video_widget_allocation3.x,
d->video_widget_allocation3.y,
                    -1, -1);

          gst_video_overlay_expose(d->overlay1);
          gst_video_overlay_expose(d->overlay2);
          gst_video_overlay_expose(d->overlay3);

        gtk_widget_set_visible(d->video_window1, FALSE); //video_window is
GtkEventBox
        gtk_widget_set_visible(d->video_window2, FALSE);
        gtk_widget_set_visible(d->video_window3, FALSE);

         gtk_widget_set_size_request(widget, -1, -1);
        enlarged = 1;
    } else {

But upon hitting one if the gst_video_overlay_set_render_rectangle
functions, I get a set of randomly appearing error messages causing the
application to crash:

Gdk-Message: 11:50:57.173: Error 71 (Protocol error) dispatching to Wayland
display
Gdk-Message: 11:51:29.047: Error flushing display: Protocol error
Gdk-Message: 11:51:25.541: Error reading events from display: Protocol
error:

Please, could anyone help me resolve this issue?

Best regards,
Ivo






--
Sent from: http://gstreamer-devel.966125.n4.nabble.com/


More information about the gstreamer-devel mailing list