[vdr] Streamdev HTTP attach not grabbing a free DVB card?

Jukka Vaisanen Jukka.Vaisanen at exomi.com
Mon Feb 20 22:03:27 CET 2006

I recently moved on to the wonderful world of multiple DVB-T cards in my
VDR and also set up streamdev-server for use with VLC for
HTTP/PES-streams to a remote PC. However I ran into a problem with how
streamdev and my primary output coexist.

-          vdr-1.3.43
-          DVB drivers from 2.6.15-gentoo-r1 kernel
-          dxr3-0.2.5 plugin
-          Latest streamdev-cvs (Jan 20)

-          2x Airstar2 budget DVB-T (FlexCopIIb)
-          DXR3 (Hollywood+)
-          P3/800 + 1.5GB RAM

And how / what happens:

- I restart VDR "fresh" with only dxr3 and streamdev plugin loaded
- I switch my primary output (dxr3) to the preferred channel, works fine
- I connect via the streamdev HTTP server to a channel which is on
another mux and my dxr3 output switches to the first channel in that
mux. Apparently the streamdev is somehow grabbing the same budget card
and forcing the mux switch.
- If I disconnect the streamdev client and reattach it to yet another
mux the dxr3 changes channels again. It "follows" my streamdev actions.
- After a few channel switches the dxr3 video freezes into a still frame
but I can still attach to streamdev via HTTP to any channel/mux without
any problems.
- If I now switch a channel on the dxr3 output to anything on the same
mux as the streamdev, it works fine but the picture freezes again every
time I switch to another mux from the streamdev.
- If I switch the dxr3 channel to another mux while the streamdev HTTP
is serving something, the entire problem goes away. After this I can
independently use dxr3 and the streamdev without any conflicts until the
next VDR restart.

My not-so-educated guess is that the streamdev receiver device is using
GetDevice to find a tuner and it manages to magically grab the primary
device every time whether it's in use or not. If the dxr3 is using the
primary device, it gets thrown over to the other mux by virtue of using
that tuner. If I change the channel on the dxr3 while the streamdev is
connected, the dxr3 gets assigned to the other DVB card and from then on
they both coexist peacefully.

This is a minor nuisance in the sense that I can live with my live tv
being knocked onto another channel now and then but what I'm worried
about is recordings.. If I have a recording on the primary device and
the HTTP streamdev client connects, the recording might get cut off or
switch to the wrong channel.

I did a bit of source-code surfing to try and understand the mechanism
by which streamdev gets a tuner device but I couldn't really identify
any clearly faulty logic. I'd suppose that others would have run into
this issue already but mailing list search and Google turned up nothing
really relevant. Since this is easily reproducible here and I'm running
pretty much latest everything here, I could try and patch this up if
someone points me in the right direction.

- Jukka Vaisanen

More information about the vdr mailing list