summaryrefslogtreecommitdiffstats
path: root/sys/v4l2/gstv4l2xoverlay.c
diff options
context:
space:
mode:
authorRonald S. Bultje <rbultje@ronald.bitfreak.net>2005-01-10 11:16:13 +0000
committerRonald S. Bultje <rbultje@ronald.bitfreak.net>2005-01-10 11:16:13 +0000
commit1b2a3e69847bc7e695153f914338625491e72445 (patch)
tree7e2791326406523cd58c8afcbc28493a6d433333 /sys/v4l2/gstv4l2xoverlay.c
parent94bd7dde98e7e76377aef28adbe6be17cee4ae05 (diff)
sys/: Add debug categories, fix overlay disabling.
Original commit message from CVS: * sys/v4l/gstv4lxoverlay.c: (gst_v4l_xoverlay_interface_init), (gst_v4l_xoverlay_set_xwindow_id): * sys/v4l2/gstv4l2xoverlay.c: (gst_v4l2_xoverlay_interface_init), (gst_v4l2_xoverlay_set_xwindow_id): Add debug categories, fix overlay disabling.
Diffstat (limited to 'sys/v4l2/gstv4l2xoverlay.c')
-rw-r--r--sys/v4l2/gstv4l2xoverlay.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/sys/v4l2/gstv4l2xoverlay.c b/sys/v4l2/gstv4l2xoverlay.c
index 7976b60d..2e416b3e 100644
--- a/sys/v4l2/gstv4l2xoverlay.c
+++ b/sys/v4l2/gstv4l2xoverlay.c
@@ -36,6 +36,9 @@
#include "gstv4l2element.h"
#include "v4l2_calls.h"
+GST_DEBUG_CATEGORY_STATIC (v4l2xv_debug);
+#define GST_CAT_DEFAULT v4l2xv_debug
+
struct _GstV4l2Xv
{
Display *dpy;
@@ -51,6 +54,9 @@ gst_v4l2_xoverlay_interface_init (GstXOverlayClass * klass)
{
/* default virtual functions */
klass->set_xwindow_id = gst_v4l2_xoverlay_set_xwindow_id;
+
+ GST_DEBUG_CATEGORY_INIT (v4l2xv_debug, "v4l2xv", 0,
+ "V4L2 XOverlay interface debugging");
}
void
@@ -168,13 +174,19 @@ gst_v4l2_xoverlay_set_xwindow_id (GstXOverlay * overlay, XID xwindow_id)
XWindowAttributes attr;
gboolean change = (v4l2element->xwindow_id != xwindow_id);
+ GST_LOG_OBJECT (v4l2element, "Setting XID to %lx", (gulong) xwindow_id);
+
if (v4l2xv)
g_mutex_lock (v4l2xv->mutex);
if (change) {
- if (v4l2element->xwindow_id) {
+ if (v4l2element->xwindow_id && v4l2xv) {
+ GST_DEBUG_OBJECT (v4l2element,
+ "Deactivating old port %lx", v4l2element->xwindow_id);
+
XvSelectPortNotify (v4l2xv->dpy, v4l2xv->port, 0);
XvSelectVideoNotify (v4l2xv->dpy, v4l2element->xwindow_id, 0);
+ XvStopVideo (v4l2xv->dpy, v4l2xv->port, v4l2element->xwindow_id);
}
v4l2element->xwindow_id = xwindow_id;
@@ -187,6 +199,8 @@ gst_v4l2_xoverlay_set_xwindow_id (GstXOverlay * overlay, XID xwindow_id)
}
if (change) {
+ GST_DEBUG_OBJECT (v4l2element, "Activating new port %lx", xwindow_id);
+
/* draw */
XvSelectPortNotify (v4l2xv->dpy, v4l2xv->port, 1);
XvSelectVideoNotify (v4l2xv->dpy, v4l2element->xwindow_id, 1);