GNOME Bugzilla – Bug 505521
[ximagesink]enhance ximagesink to support "display area" property
Last modified: 2008-01-07 13:59:57 UTC
enhance ximagesink to support "display area" property, user invokes get/set "display area" property to change display X,Y, Width, Height and auto scale. Changed files: sys/ximage/ximagesink.c sys/ximage/ximagesink.h Motorola would like to contribute Gstreamer patch to the Gstreamer open source community project. Please find attached the patch applicable for Gstreamer plugin base. For any questions, please feel free to contact (Zhao Liang "e3423c@motorola.com", Shi Ling "w20230@motorola.com").
Created attachment 101567 [details] [review] ximagesink.h patch
Created attachment 101568 [details] [review] ximagesink.c patch
I am not sure I understand what you are trying to achieve with that patch. It seems that you want to control the width/height and position of the video window using g_object_set on the video sink element instead of using X calls directly on the window. You are also trying to control software scaling by resizing the window that way and hoping the reverse caps negotiation is going to scale for you. Am I right ? The intended use of this video sink element is to either use the XWindow that it creates by intercepting the "have-xwindow-id" message on the bus or by providing your own XWindow idea through gst_x_overlay_set_xwindow_id () when receiving the "prepare-xwindow-id" message on the bus. If I am completely mistaken on your goals please let me know, setting as NEEDINFO. [This bug is part of Fluendo support for Motorola.]
Yes, We just want to control the x, y, width, height by setting element property. By your idea, we should do it in application/UI level, is it right for my understanding ?
This is not the intended goal of x[v]imagesink elements. Those elements provide you with 2 choices : 1) Get the window ID that the element has created for you. You can then resize it, move it, catch events, embed it, etc... 2) Create your own window and provide the window ID to the element so that the rendering happens in that window. You can then do whatever you want to the window. Hope this helps, closing bug.