[pvrusb2] mythtv and wintv-hvr-1950 - analog/digital scanning
Mike Isely
isely at isely.net
Tue Jan 6 01:18:43 CST 2009
Vincent:
Additional comments and ideas are laid out below...
On Mon, 5 Jan 2009, fivenote wrote:
> Thanks.
>
> I tried running /usr/bin/mythtv-setup.real -v all. Got lots of output
> but no obvios problems.
>
> I went back to basics and tried to get data from the device. I
> shutdown mythbackend and did...
>
> >cat /dev/video0
> cat: /dev/video0: Input/output error
I'm assuming that /dev/video0 is your device - do an "ls -l /dev/video*"
and make sure you get back what you expect, e.g. if there are multiple
entries make sure you are talking to the right one. And there *can* be
multiple entries even for a single device if you unplugged the device
from the USB spigot while someone was operating it. In that case, the
old /dev/video0 can't go away until the entity hanging onto the open
device handle has exited (perhaps some piece of mythtv is still not
letting go). Then when you plug it back in, the "new" instance will
become /dev/video1 because /dev/video0 is still allocated to something
else (i.e. the previous dying driver instance due to the previous unplug
event).
But assuming that /dev/video0 is correct...
EIO ("Input/output error") will happen if the stream can't be started.
This is NOT what happens if you can't receive any video. In that case
the stream will start but you won't receive any data (it will just
stall) or you'll receive noise for video (depending on the situation).
The fact that you got an EIO strongly suggests that streaming failed
because something else already has the device open. And that something
else doesn't have to be someone with /dev/video0 open - it might be a
process operating the DVB side of the device. The HVR-1950 hardware is
shared between V4L and DVB so if one side is trying to stream (even if
only to acquire a signal lock in the case of DVB) then the other side is
kept out of the way. You said you shut down the mythtv back end, but it
sure sounds like that didn't entirely work. I'll bet you've got
something hanging onto the DVB side.
Try cat'ing /sys/class/pvrusb2/*/ctl_input/enum_val and see what input
choices are in the list. If you're only seeing "dtv" that means the
input selection has been narrowed because the DVB interface is active -
somebody is accessing it. That would explain the behavior you are
seeing. To understand what I mean about "narrowing", go here:
http://www.isely.net/pvrusb2/usage.html#Interactions
and then scroll down to the section titled "V4L vs DVB interactions".
>
> and...
>
> > mplayer /dev/video0
> MPlayer 1.0rc2-4.3.2 (C) 2000-2007 MPlayer Team
> CPU: Intel(R) Core(TM)2 Duo CPU T5450 @ 1.66GHz (Family: 6,
> Model: 15, Stepping: 13)
> CPUflags: MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1
> Compiled with runtime CPU detection.
>
> Playing /dev/video0.
> Win32 LoadLibrary failed to load: avisynth.dll,
> /usr/lib/win32/avisynth.dll, /usr/local/lib/win32/avisynth.dll
>
>
> Exiting... (End of file)
> -------
>
> Both of these used to work before I updated to the latest v4l drivers.
> I don't know what else to try.
>
However we really need here to separate questions of what is going on in
MythTV versus what is going on in the driver. You are raising issues
and we can't tell who is causing what. I think given the confusion you
are experiencing that you should unambiguously kick the applications out
of the way and focus your attention purely on the driver. Only then,
after we know the driver is healthy, should you bring MythTV back into
the puzzle. So do this:
1. Disable the mythtv backend from even starting (i.e. rename the binary
so that a system boot script can't start it without your knowledge).
2. Unplug the HVR-1950 from the USB port.
3. Reboot your system.
4. Plug in the HVR-1950.
The idea for the above is not so much to reset the hardware but to start
up in a way that gives high confidence that nobody is trying to access
the device "behind your back". Everything should come up clean and
nobody should be trying to use the device, DVB or V4L.
Now run through some of the usual tests with the V4L side. Try mplayer
while using the syfs interface to control the input selection and tuning
frequency (again, see the above page for information about those
interfaces). If after that you are still having analog tuning problems,
peel back another layer: plug a composite video source into the device
(VCR, DVD player, camcorder, etc) and try to stream from that input.
An operation like that does not require a working RF tuner. If that
works, then we know at least everything except the RF tuner is ok. Do
all that first and you can verify that you have working analog hardware.
Then try a simple DVB application for the DVB side. Verify that works.
If you get past those steps then you've confirmed that the hardware is
healthy and the pvrusb2 driver and all the various related V4L & DVB
software bits are all working correctly. Then turn your attention back
to MythTV and debug that...
-Mike
--
Mike Isely
isely @ pobox (dot) com
PGP: 03 54 43 4D 75 E5 CC 92 71 16 01 E2 B5 F5 C1 E8
More information about the pvrusb2
mailing list