From e6de2ce4fface935cabbd3cbdf74a37497c5846e Mon Sep 17 00:00:00 2001 From: "Ronald S. Bultje" Date: Mon, 10 Jan 2005 11:16:13 +0000 Subject: [PATCH] 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. --- ChangeLog | 8 ++++++++ sys/v4l2/gstv4l2xoverlay.c | 16 +++++++++++++++- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 50d66cd..3cdf3a8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2005-01-10 Ronald S. Bultje + + * 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. + 2005-01-10 Stephane LOEUILLET * ext/alsa/gstalsa.c: (gst_alsa_class_init), (gst_alsa_get_caps): diff --git a/sys/v4l2/gstv4l2xoverlay.c b/sys/v4l2/gstv4l2xoverlay.c index 7976b60..2e416b3 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); -- 2.7.4