PVR-150 on 6-STABLE: success and mini HOWTO
Danny Pansters
danny at ricin.com
Thu Dec 20 16:17:25 PST 2007
On Friday 21 December 2007 00:36:34 User Mat wrote:
> On Dec 20, usleepless at gmail.com wrote:
> > Hi Danny, Mat,
> >
> > ...
> >
> > as the author of the pvrxxx version of the pvr250 driver, i have been
> > reading along.
>
> Did you see the my patch in the previous message to get pvrxxx to
> compile on -current?
>
> > Danny, thanks for your mini howto, and it is nice to read it was
> > pretty straightforward for you.
> >
> > i noticed a couple of things:
> >
> > 1. some version of mythtv fails to probe the inputs. this needs to be
> > investigated: there is a problem with the v4l(2)-header-files, or the
> > v4l(2) api actually changed ( i seem to recall something about his ).
> > i would like to know the exact version of mythtv which fails to probe
> > the inputs.
>
> mythtv-0.20.2.tar.bz2 built outside of the ports tree with a few
> patches from the port and one or two local hacks.
>
> It's the probing and setting of inputs that failing. The
> following log snippets are from mythtv after I faked out some
> routine that matches probed inputs to the values in database --
> before the hack, it could read the names so it returned 0 avail
> inputs thus not capture.
>
> from mythbackend
>
> 2007-12-20 17:55:54.189 Connected to database 'mythconverg' at host:
> localhost 2007-12-20 17:55:54.210 Could not query inputs.
> eno: Inappropriate ioctl for device (25)
> 2007-12-20 17:55:54.211 Channel(/dev/cxm0): SetInputAndFormat() failed
> 2007-12-20 17:55:54.212 Channel(/dev/cxm0): SetInputAndFormat() failed
> 2007-12-20 17:55:54.212 TVRec(1) Error: Setting start channel '66' failed,
> and backup '1' failed as well.
> 2007-12-20 17:55:54.218 New DB scheduler connection
>
> from ktrace -di mythbackend
>
> 28476 initial thread CALL open(0x2afb0b60,O_RDWR,<unused>0)
> 28476 initial thread NAMI "/dev/cxm0"
> 28476 initial thread RET open 4
> 28476 initial thread CALL ioctl(0x4,0x40685600 ,0xbfbfdefc)
> 28476 initial thread RET ioctl 0
> 28476 initial thread CALL ioctl(0x4,0x40685600 ,0xbfbfdeb8)
> 28476 initial thread RET ioctl 0
> 28476 initial thread CALL gettimeofday(0xbfbfd8e8,0)
> 28476 initial thread RET gettimeofday 0
>
> ...
>
> 28476 initial thread CALL ioctl(0x4,0x40685600 ,0xbfbfdb1c)
> 28476 initial thread RET ioctl 0
> 28476 initial thread CALL ioctl(0x4,0xc04c561a ,0xbfbfdc98)
> 28476 initial thread RET ioctl -1 errno 25 Inappropriate ioctl for
> device 28476 initial thread CALL ioctl(0x4,0x403c7601 ,0xbfbfdce4)
> 28476 initial thread RET ioctl -1 errno 25 Inappropriate ioctl for
> device
>
> > 2. the driver is not designed for multiple reading. however, it must
> > be able to be opened more than once because the tuner is not a
> > separate device. this makes tuning while watching possible.
>
> I wonder if one can open a device for neither reading or writing,
> only IOCTLs? Anyway, I've panic'ed my machine several times
> because of this.
>
> > 3. switching back from svhs is not possible?
>
> I not clear on the question. Switching to the tuner after
> switching to svideo/composite does not work.
> 'pvr250-setchannel -m 1' will also panic my machine.
>
> > 4. supporting tvtime and other linux tv-viewers is on my wishlist too:
> > a v4l(2) compatible reading api needs to be implemented.
> >
> > 5. i experimented with the "3:2 pulldown" flag of the encoder. i think
> > the current driver mistakenly enables 3:2 pulldown. fixing this will
> > improve fast moving scenes ( sports ) and sliding texts.
>
> A question to all: Given an infinite amount of CPU what is the
> best possible deinterlacing strategy/filter for mplayer?
What I posted. Plus it's very low on cpu here (HW acc via nvidia helps of
course):
last pid: 16657; load averages: 0.16, 0.16, 0.15 up 1+05:56:41 01:11:02
97 processes: 2 running, 95 sleeping
CPU states: 13.2% user, 0.4% nice, 1.5% system, 2.0% interrupt, 82.9% idle
Mem: 373M Active, 367M Inact, 188M Wired, 53M Cache, 111M Buf, 9080K Free
Swap: 2048M Total, 4K Used, 2048M Free
PID USERNAME THR PRI NICE SIZE RES STATE TIME WCPU COMMAND
1006 danny 1 96 0 71988K 58392K select 22:53 0.39% Xorg
1089 danny 1 96 0 31772K 21320K select 7:27 0.10% kdeinit
15835 danny 3 98 0 43048K 31020K RUN 25:14 0.00% mplayer
1094 danny 1 96 0 27780K 17328K select 8:52 0.00% kdeinit
13833 danny 1 96 0 120M 108M select 2:06 0.00% kdeinit
1088 danny 3 20 -76 13280K 7980K kserel 2:05 0.00% artsd
15882 danny 1 106 10 39576K 19468K select 1:25 0.00% npviewer.bin
1068 danny 1 96 0 37616K 26624K select 1:24 0.00% kdeinit
15917 danny 3 20 0 61004K 47528K kserel 1:04 0.00% kmail
832 root 1 96 0 2860K 1236K select 0:35 0.00% hald-addon-s
1080 danny 1 96 0 32020K 21760K select 0:27 0.00% kdeinit
1076 danny 1 96 0 27484K 17056K select 0:25 0.00% kdeinit
808 mysql 5 20 0 57308K 24544K kserel 0:23 0.00% mysqld
15836 danny 1 8 0 35660K 25588K nanslp 0:22 0.00% mplayer
BTW, it's been running for several hours now, and no audio stutter yet, it
gobbles a bit if I do something that appears to require a lot of resources
relative to the processes running (such as de-iconifying/minimizing kmail --
gasp) but then happily plays on.
And the image on smaller window sizes (e.g. 320x240) is good too now, no
more "movement stripes" or -- at certain sizes which seem to be
multiples/divides of the usual SDTV sizes -- what seems like a resonance
effect causing very notable "waves" in the picture which may last for seconds
(same as on bktr).
Dan
Dan
More information about the freebsd-multimedia
mailing list