Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 18 Jul 2013 20:34:03 +0200 (CEST)
From:      Juergen Lock <nox@jelal.kn-bremen.de>
To:        decke@FreeBSD.org
Cc:        freebsd-multimedia@FreeBSD.org, hselasky@FreeBSD.org
Subject:   kqueue(2) vs. cuse4bsd? (was: Re: multimedia/tvheadend has been committed)
Message-ID:  <201307181834.r6IIY35e055755@triton8.kn-bremen.de>
In-Reply-To: <CAE-m3X0coVNak4fZ9hfC82izfgB1u0tX_JSBz89wb1d_qLhKtQ@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
In article <CAE-m3X0coVNak4fZ9hfC82izfgB1u0tX_JSBz89wb1d_qLhKtQ@mail.gmail.com> you write:
>Hi guys.
Hi!
>
>I have been working on tvheadend for some time and got it to the point
>where I think it starts to become useful for others too. Upstream was
>very helpful and merged a lot of patches already and also helped with
>the kqueue support.
>
>So what is tvheadend and why do you want it?
>- If you are using XBMC then you really want tvheadend as your DVB
>backend. This allows you to watch TV and record stuff within XBMC.
>- If you are using MythTV then you really want to use tvheadend because
>it's slim and light and still does everything you ever need. Without all the
>Qt GUI and without a database and without a ton of plugins.
>
>The port itself is in a somewhat useable state but there is still quite some
>work to bring it in a good shape. I still wanted to bring it to the
>tree to allow
>other people to jump in and give it a broader testing with other devices and
>other environments.
>
>Known issues:
>- scanning does not work (at least not for my Dib7000 DVB-T device)
>- no libav support
>- no libdvbcsa support
>- no rc.d script
>- does not compile on FreeBSD 8.x
>
>Patches, feedback and help are always welcome!
>
>WWW: https://tvheadend.org/

 Ok I got it to build on 8.3 and found it couldn't scan because
kevent() in tvhpoll_add() in open_table() in src/dvb/dvb_input_filtered.c
always fails with ENODEV on the demux0 dvb node. :(  Is kqueue(2)
broken with cuse4bsd?  I've Cc'd hps, maybe he knows...

 First the Makefile patch I used:

Index: multimedia/tvheadend/Makefile
===================================================================
--- multimedia/tvheadend/Makefile	(revision 323250)
+++ multimedia/tvheadend/Makefile	(working copy)
@@ -37,11 +37,19 @@
 CONFIGURE_ARGS+=	--disable-dvbscan --disable-zlib
 CFLAGS+=	-Wno-conversion -Wno-int-to-pointer-cast
 
+# gdb
+CFLAGS+=	-g
+
 .include <bsd.port.pre.mk>
 
 .if ${OSVERSION} < 900000
-BROKEN=		Does not compile on FreeBSD < 9.0
+#BROKEN=		Does not compile on FreeBSD < 9.0
+.if ${ARCH} == "amd64" || ${ARCH} == "sparc64" || ${ARCH} == "mips64"
+CFLAGS+=	-D__WORDSIZE=64
+.else
+CFLAGS+=	-D__WORDSIZE=32
 .endif
+.endif
 
 .if ( !empty(CC:M*clang*) || ${OSVERSION} >= 1000024 )
 # CLANG also needs -Wno-microsoft which GCC 4.2 does not know

 And this shows the failure:

--- src/dvb/dvb_input_filtered.c.orig
+++ src/dvb/dvb_input_filtered.c
@@ -129,6 +129,11 @@ open_table(th_dvb_mux_instance_t *tdmi, 
     if(tvhpoll_add(tda->tda_table_pd, &ev, 1) != 0) {
       close(tdt->tdt_fd);
       tdt->tdt_fd = -1;
+#if 1
+      tvhlog(LOG_ERR, "dvb",
+       "\"%s\" open_table: unable to setup polling: %s",
+       tda->tda_demux_path, strerror(errno));
+#endif
     } else {
 
       struct dmx_sct_filter_params fp = {0};

 Thanx, :)
	Juergen



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201307181834.r6IIY35e055755>