kqueue(2) vs. cuse4bsd? (was: Re: multimedia/tvheadend has been committed)
Juergen Lock
nox at jelal.kn-bremen.de
Thu Jul 18 18:35:24 UTC 2013
In article <CAE-m3X0coVNak4fZ9hfC82izfgB1u0tX_JSBz89wb1d_qLhKtQ at 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
More information about the freebsd-multimedia
mailing list