Thread: [kaffeine-user] Adventures with kaffeine on a VIA C3 processor: poor recording when not watching
Brought to you by:
hftom,
lasselindqvist
From: Jim D. <ji...@ji...> - 2008-05-25 21:33:47
|
Well, I've been playing around with kaffeine 0.8.6 on my VIA C3 system and have made some interesting observations. Just for background for those not in the know, VIA (more famous for their glue chips) make x86 compatible processors and specialise in the cheap/low powered/embedded area. The C3 is quite old and runs at 800MHz. However, as it's cut down it doesn't have the speed to display MPEG-2 at broadcast size and bitrate. This is solved by having hardware MPEG-2 acceleration built into the video driver hardware on the north bridge. This hardware is accessed using the xxmc driver in xine (libxine to be pedantic). This was all done with stock Ubuntu 8.04 (Hardy Heron). So, it takes me a while to figure out that you have to configure the xvmc to use VIA rather than nVidia motion compensation. To do this you just put libviaXvMC.so.1 in /etc/X11/XvMCConfig. All well and good. Only it's not. Whenever I try and use xxmv in kaffeine it fails but give no text to why. Very odd. I try xine -V xxmc and now it's started working. Even odder. Kaffeine still gives the "failed" error with no explanation. So, I see some reference in some article somewhere (sorry, I've forgotten which) about xvmc and xxmc not working with kaffeine unless you give the --without-xcb option when you build it. Time for downloading of LOTS of stuff to build kaffeine with. Eventually I build it all and xxmc works! Hurrah! But why is this so? What is this mysterious xcb and why does it break xxmc and apparently xvmc and opengl too? Now it's time to record some programs. Total failure! The record files are rubbish. Oddly, I find that if I'm watching stuff when I record it it records fine. Jim is very confused. I have a bit of a think about it and wonder, is the cpufreq that's running (in ondemand mode) affecting things? The powernow version of cpufreq allows Linux to change the frequency that the CPU runs at from 400 to 800MHz in several steps. If I'm watching live TV then it's running at 800MHz. If it's just recording it's running at 400MHz. I wonder if perhaps if the CPU is running at 400MHz it doesn't have the speed to handle the real-time response for the DVB-T card. It change the cpufreq settings to use performance rather than ondemand and record another programme. It records fine! So, it would appear that using the ondemand cpufreq governor either makes the CPU too slow to talk to the DVT-T card properly, makes kaffeine too slow to handle the card or there is some other more complex issue affecting it. Any thoughts from anyone about this? What is xcb? Why does it stop xxmc from working? Should it? Why does the cpufreq scaling affect recording? Thanks for your help, Jim. |
Re: [kaffeine-user] Adventures with kaffeine on a VIA C3 processor: poor recording when not watching
From: Christoph P. <chr...@gm...> - 2008-05-30 17:06:25
|
Hi, Am Montag 26 Mai 2008 00:22:50 schrieb Jim Darby: > Well, I've been playing around with kaffeine 0.8.6 on my VIA C3 system > and have made some interesting observations. > > Just for background for those not in the know, VIA (more famous for > their glue chips) make x86 compatible processors and specialise in the > cheap/low powered/embedded area. The C3 is quite old and runs at 800MHz. > However, as it's cut down it doesn't have the speed to display MPEG-2 at > broadcast size and bitrate. This is solved by having hardware MPEG-2 > acceleration built into the video driver hardware on the north bridge. > This hardware is accessed using the xxmc driver in xine (libxine to be > pedantic). > > This was all done with stock Ubuntu 8.04 (Hardy Heron). > > So, it takes me a while to figure out that you have to configure the > xvmc to use VIA rather than nVidia motion compensation. To do this you > just put libviaXvMC.so.1 in /etc/X11/XvMCConfig. All well and good. > > Only it's not. Whenever I try and use xxmv in kaffeine it fails but give > no text to why. Very odd. > > I try xine -V xxmc and now it's started working. Even odder. Kaffeine > still gives the "failed" error with no explanation. > > So, I see some reference in some article somewhere (sorry, I've > forgotten which) about xvmc and xxmc not working with kaffeine unless > you give the --without-xcb option when you build it. Time for > downloading of LOTS of stuff to build kaffeine with. Eventually I build > it all and xxmc works! Hurrah! But why is this so? > > What is this mysterious xcb and why does it break xxmc and apparently > xvmc and opengl too? The root of this problem is that libX11, the X client library used by both kaffeine and xine to render stuff on the display, originally wasn't thread-safe. Later it was extended to be usable in different threads, but this wasn't done in a very good way. Because of the resulting trouble when using kaffeine in embedded contexts (for example in a web browser) or with special input methods, we looked for an alternative. Finally we started to use xcb, which is a fully thread-safe X client library. The problem is that this approach doesn't work for "vendor-centered" X extensions as xvmc (xxmc) or opengl, as there are no xcb versions of those libraries available (and won't be in near future). There are alternative solutions (involving modifications in xine-lib); maybe I'll be able to spend time on such solutions ... > Now it's time to record some programs. Total failure! The record files > are rubbish. Oddly, I find that if I'm watching stuff when I record it > it records fine. Jim is very confused. > > I have a bit of a think about it and wonder, is the cpufreq that's > running (in ondemand mode) affecting things? The powernow version of > cpufreq allows Linux to change the frequency that the CPU runs at from > 400 to 800MHz in several steps. If I'm watching live TV then it's > running at 800MHz. If it's just recording it's running at 400MHz. I > wonder if perhaps if the CPU is running at 400MHz it doesn't have the > speed to handle the real-time response for the DVB-T card. It change the > cpufreq settings to use performance rather than ondemand and record > another programme. It records fine! > > So, it would appear that using the ondemand cpufreq governor either > makes the CPU too slow to talk to the DVT-T card properly, makes > kaffeine too slow to handle the card or there is some other more complex > issue affecting it. Likely the problem lies in the driver and not in kaffeine (buffer overruns or other timing problems, did you look at dmesg?). You could cross-check this with szap from dvb-utils (use the included scan tool to create a channel list; execute szap -c /path/to/channels.conf -r channel_name; run dd if=/dev/dvb/adapter0/dvr0 of=/tmp/test.ts). > Any thoughts from anyone about this? What is xcb? Why does it stop xxmc > from working? Should it? Why does the cpufreq scaling affect recording? Hope this helps ... > Thanks for your help, > > Jim. Christoph |
Re: [kaffeine-user] Adventures with kaffeine on a VIA C3 processor:
poor recording when not watching
From: Jim D. <ji...@ji...> - 2008-06-03 20:46:57
|
On Fri, 2008-05-30 at 19:06 +0200, Christoph Pfister wrote: > Hi, Hello! > There are alternative solutions (involving modifications in xine-lib); maybe > I'll be able to spend time on such solutions ... Thanks for the very useful explanation. It's good that we've got that in the archives so it can be googled and referred to in the future. > Likely the problem lies in the driver and not in kaffeine (buffer overruns or > other timing problems, did you look at dmesg?). There's nothing in dmesg. It's all very strange. > You could cross-check this with szap from dvb-utils (use the included scan > tool to create a channel list; execute szap -c /path/to/channels.conf -r > channel_name; run dd if=/dev/dvb/adapter0/dvr0 of=/tmp/test.ts). Now that's a good idea. If I can prove it's in the kernel then I can talk to the people on linux-dvb and see if there's anything interesting there. Thanks for the help! Jim. |