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>