[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: kdeextragear-3/kdetv/plugins
From: Dirk Ziegelmeier <dziegel () gmx ! de>
Date: 2004-12-29 23:47:03
Message-ID: 20041229234703.216E81BA87 () office ! kde ! org
[Download RAW message or body]
CVS commit by dziegel:
VBIDecoder: Support VBI proxy and a fix for libzvbi 0.2.9 crash
M +2 -0 configure.in.in 1.9
M +41 -10 vbi/libzvbidecoder/vbidecoder.cpp 1.21
--- kdeextragear-3/kdetv/plugins/configure.in.in #1.8:1.9
@@ -81,4 +81,6 @@
AM_CONDITIONAL(include_ZVBIDIR, [test -n "$ZVBIDIRS"])
+AC_CHECK_LIB(zvbi, vbi_proxy_client_create, AC_DEFINE(HAVE_VBI_PROXY, 1, [If we have VBI proxy]))
+
dnl ------------------------------------------------------------------------
dnl Check for XRANDR
--- kdeextragear-3/kdetv/plugins/vbi/libzvbidecoder/vbidecoder.cpp #1.20:1.21
@@ -63,4 +63,8 @@
#include "vbimanager.h"
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
// ---------------------------------------------- VBI capture configuration
@@ -135,4 +139,7 @@ private:
volatile bool _terminate;
vbi_capture* _cap;
+#ifdef HAVE_VBI_PROXY
+ vbi_proxy_client* _proxy;
+#endif
vbi_raw_decoder* _par;
vbi_sliced* _sliced;
@@ -148,4 +155,7 @@ VbiDecoderPrivate::VbiDecoderPrivate(QOb
_terminate(false),
_cap(0L),
+#ifdef HAVE_VBI_PROXY
+ _proxy(0L),
+#endif
_sliced(0L),
_eventTarget(eventTarget)
@@ -168,17 +178,38 @@ void VbiDecoderPrivate::stop()
if (_cap) vbi_capture_delete(_cap);
_cap = 0L;
+#ifdef HAVE_VBI_PROXY
+ if(_proxy) vbi_proxy_client_destroy(_proxy);
+ _proxy = 0L;
+#endif
}
bool VbiDecoderPrivate::init(const QString& dev, uint services)
{
+ char* errorstr;
+
if ( running() ) {
stop();
}
- _cap = vbi_capture_v4l2_new(QFile::encodeName(dev), 16, &services, -1, 0, true);
+ _cap = NULL;
+
+#ifdef HAVE_VBI_PROXY
+ _proxy = vbi_proxy_client_create(QFile::encodeName(dev), "kdetv",
+ VBI_PROXY_CLIENT_NO_TIMEOUTS, &errorstr, true);
+ if (NULL != _proxy) {
+ _cap = vbi_capture_proxy_new(_proxy, 16, 0, &services, -1, &errorstr);
+ }
+#endif
+
+ if(NULL == _cap) {
+ _cap = vbi_capture_v4l2_new(QFile::encodeName(dev), 16, &services, -1, &errorstr, true);
if (!_cap) {
- _cap = vbi_capture_v4l_new(QFile::encodeName(dev), 16, &services, -1, 0, true);
+ _cap = vbi_capture_v4l_new(QFile::encodeName(dev), 16, &services, -1, &errorstr, true);
if (!_cap) return false;
}
+ kdDebug() << "VBIDecoder: Using V4L interface." << endl;
+ } else {
+ kdDebug() << "VBIDecoder: Using VBI proxy." << endl;
+ }
_par = vbi_capture_parameters(_cap);
_sliced = new vbi_sliced[_par->count[0] + _par->count[1]];
@@ -443,5 +474,5 @@ extern "C" {
VbiDecoderPlugin* create_libzvbidecoder(Kdetv* ktv, QObject* parent)
{
- return new VbiDecoderPlugin(ktv, "libzvbi-decoder", parent, "lizvbi vbi decoder");
+ return new VbiDecoderPlugin(ktv, "libzvbi-decoder", parent, "libzvbi vbi decoder");
}
}
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic