[mythtv-users] Performance Problems with Pinnacle DC10+

Rolando Nieves rjnieves at earthlink.net
Tue Jan 13 10:34:36 EST 2004


To all,

I'm writing this message because I'm seeking information regarding what hardware configurations best complement the Pinnacle DC10+ capture card in a Myth box. I'm currently in the process of building one myself around the said capture card and seem to have hit a snag. On the surface the problem seems to be performance-related, one that simply is asking for more hardware (read: $$$) thrown at it, which is fine. However, I don't want to be hasty, considering I'm a Myth noob.

I've set up Myth 0.13 with a co-located front end and back end. All features work OK except Live TV. I'm seeing a lot of "prebuffering pause"s on the front end, while the back end merrily captures and saves all incoming video (no frames are dropped). I've studied the posts in this forum regarding the problem and have not been able to find a proper solution. I've also studied and profiled the source code in an attempt to corner the problem.

As it has been mentioned before, I'm getting those "pauses" because the front end is starved of video frames coming from the back end. Seems like the front end insists in have some frames "prebuffered", and I continually keep hitting that prebuffer low-water mark. After profiling the "NuppelVideoPlayer" and "NuppelDecoder" code the problem is in the most obvious of places: video frame delivery at NuppelDecoder::GetFrame(). Although the back end is delivering the video frames on time (average time between frame delivery ~ 33 ms), the front end is taking an average of 80-85 ms in receiving each frame (OUCH!) inside the NuppelDecoder::GetFrame() call. After further profiling I found the average NuppelDecoder::GetFrame() time breakdown to be:

Action: Read frame packet header; Time: 0-1 ms
Action: Read frame packet payload; Time: 55-58 ms
Action: Decode frame (LZO/RTJPEG I assume); Time: 25-27 ms

With a time budget of 33 ms there's obviously a lot of stuff to optimize. The frame decoding I figure can be taken care of by a faster processor (again, I don't mind spending the dough as long as I know it will work). What's bothering me is the long frame read times. I could drop some cash on a faster hard drive and modern mobo, but since the front end is receiving its frames through a proxy (something called RemoteEncoder) via the network ("lo" interface but network nonetheless), I don't know if that will address the problem. That is why I'm asking for what the typical working MythBox with a Pinnacle DC10+ looks like. What hardware do you have complementing the card? What are the capture settings you're using?

My setup (old stuff I had laying around):

* 1GHz AMD Athlon (not XP)
* Biostar M7VKB motherboard using VIA KT133 chipset
* 40 Gig. Western Digital ATA66 main hard drive (ext3 formatted; hdparm -t reports ~ 30 MB/s; DMA active)
* 20 Gig. Western Digital ATA66 "/mnt/store" hard drive (ext2 formatted; hdparm -t reports ~ 30 MB/s; DMA active)
* Sound Blaster Live! 5.1
* Pinnacle DC10+
* Fedora Core 1 with 2.4.22-2135 kernel compiled for athlon CPU.
* Zoran driver built into kernel (tried "unified Zoran driver" as well)
* ALSA 1.0.0rc2
* All other required software to support MythTV
* Running under minimal GNOME2 desktop (I cleaned up the session file so only the panel, the WM, and a gnome-term start when logged in; esound is not up and running).

Capture setup for Live TV (going for the brass ring, I know, but I'm looking for quality):

* Card type: MJPEG Hardware
* Resolution: 640x480
* Decimation (H/V): 1/1
* Quality: 80%
* Audio Sample Rate: 44100
* Audio Encoding: MP3
* MP3 Quality: 7

Thank you in advance for your insight and input.

Rolando J. Nieves


More information about the mythtv-users mailing list