Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 5 Mar 2011 09:00:03 -0500
From:      Jonathan Thiessen <jjthiessen@uwaterloo.ca>
To:        freebsd-multimedia@freebsd.org
Subject:   Unlagged/Raw Capture with PVR-150
Message-ID:  <20110305140003.GA5200@luthien.tangential.ca>

next in thread | raw e-mail | index | archive | help
Good day,

I am running FreeBSD 8.2-RELEASE (GENERIC) on amd64.  I often use my
PVR-150 for latency sensitive operations (namely playing Wii).  Using
the multimedia/pvrxxx port, one is presented with a single device node,
/dev/cxm0, which by default presents an MPEG1/2 stream (with audio and
video synched).  However, this stream is sufficiently lagged so as to
make gaming impossible (maybe 1 second, or so).

After a little poking around, I found that one could easily disable the
MPEG encoder by changing 'sc->mpeg = 1;' to 'sc->mpeg = 0;' in cxm_open
(cxm.c:2498).  This gave me an unlagged raw YUV/NV12 video stream on
/dev/cxm0 (playable using `mplayer -rawvideo
format=nv12:h=480:w=720:fps=29.97 -nocache -demuxer 26 -framedrop
/dev/cxm0`).  However, doing so makes me lose audio.

My plan is to pick up a composite to stereo 3.5mm adaptor next week, and
just run it through my soundcard (unless a more elegant software
solution exists/could easily be made to exist).

I must admit that I've never done any kernel module hacking before.  Is
it easy to/has anyone tried to expose multiple device nodes in
pvrxxx/cmx (MPEG1/2, raw PCM, raw YUV/NV12), as it is done in ivtv
(e.g., /dev/video0, /dev/video24, and /dev/video32 respectively)?

Thank you for your time.

Have a good one ;)
Jonathan Thiessen
=================
mailto:jjthiessen@uwaterloo.ca
tel:+1.519.513.4618
=================



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