ryan.goat at gmail
Jun 21, 2007, 5:28 AM
Post #2 of 11
On 6/21/07, Mark Kendall <mark.kendall [at] gmail> wrote:
Re: PS3 Patches - anyone want to test them?
[In reply to]
> As I'm off for a week from tomorrow, I thought it was about time I
> shared my work on ps3 video playback. The patch is against the
> mythtv-vid branch but this will work fine with a recent version of svn
> head on your backend. All installed on top of Yellow Dog Linux 5
> though I see no reason why it shouldn't work with any other PS3 linux
> Hopefully I've covered off most of the detail in the brain dump below
> but in general it's working pretty well - some of the 720p playback is
> about as good I've seen anywhere and all without the extensive grief
> of buggy drivers, xorg.conf files etc etc.
> Relevant files are:-
> Any and all feedback much appreciated and I'll get back to it when I'm
> back from my travels.
> Sanity warning
> The kernel process that controls the framebuffer is disabled during
> playback. If mythtv crashes during this time (and remember, this patch
> is a work in progress), you will be left with a seemingly unresponsive
> ps3. In reality the framebuffer is not being updated. Rather than
> using control-alt-backspace, download and compile this short program
> and install it in your path (instructions below). Run
> mythtv/mythfrontend from a console and if it crashes it should return
> you to the text prompt (although you won't be able to see it) - just
> type revert to restore your desktop.
> cd ~
> mkdir revert
> cd revert
> wget http://www.btinternet.com/~mark_kendall/revert.cpp
> g++ -o revert revert.cpp
> cp revert /usr/bin/revert
> What's New
> - new configure option --enable-ps3
> - new, configurable exit option to boot into the game os. Switch
> seemlessly between wasting your time gaming and wasting your time
> watching tv:)
> - new video output method and vertical sync that accesses the ps3
> framebuffer directly. This defaults to using ffmpeg for software
> colour conversion and scaling.
> - if libspe2 is detected, deinterlacing, yuv to rgb colour conversion
> and scaling are offloaded to (some of) the PS3s 'SPE's.
> Once installed, Go to Settings->TV Settings->Playback->Playback
> Profiles and setup 1 or more profiles using ps3fb as the renderer.
> Turn off OSD fade and enable Adaptive x2 as the default deinterlacer
> (unless it gives you problems - see below).
> If playback is poor (ie low framerate), you've either not compiled
> with libspe2 support and it's falling back to ffmpeg
> conversion/scaling (check your logs for lack of SPU type messages and
> recompile) or mythtv is using the xvideo display method and falling
> back to software/x-lib scaling (check your logs and adjust your
> display profiles).
> Without the patches, the ps3 is almost unusable as a frontend for even
> standard definition. Using the 'accelerated' video output, I can
> comfortably play 720p and 1080i mpeg2 material. I don't have any 1080p
> mpeg2 source clips so can't test. The only playback that is currently
> erratic for me is 1080i displayed downscaled to 720p using the double
> frame rate deinterlacer - and this looks like it's a limitation with
> the main processor/memory rather than the spe's. Hidef h.264 playback
> does not work.
> I'd recommend using a lightweight window manager, lightweight mythtv
> theme and turning off as many unnecessary services as you can. This
> will save memory and speed up menu navigation, playback startup etc.
> It may just make things that much more stable as well as any
> instability seems to be memory related.
> Alternatively, try qt-embedded (video output works just as well
> without X). I've run it successfully using qt-embedded-3.3.5.
> Using the sixaxis controller
> With YDL 5.0, the sixaxis controller works 'out of the box' when
> connected via usb. I've put together a simple joystick config file
> that you'll need to copy to ~/.mythtv - It's useful if you do try
> qt-embedded as setting up the mouse/keyboard can be a pain.
> Generally it seems to be pretty stable - but re-read the sanity
> warning above:) Otherwise the main, obvious issue is that the program
> guide/watch recordings/find programs screens are not rendered properly
> when called from playback (livetv or recording). There are also
> occasional issues with videomode validation - especially when using
> vesa modes in fullscreen (this appears to be a driver/ioctl bug but
> you shouldn't need to select a vesa mode using the -f option anyway as
> they are already fullscreen). I'd recommend you use something like
> 720p in fullscreen to get you going and experiment from there.
> To Do
> Code clean up - especially a re-write of mythspuhandler...
> Performance management - currently hardcoded to share the load between
> 2 of the 6 available spu's. This should be adjusted on the fly.
> xrandr/display res support - should be simple enough to enable display
> resolution switching but I want to extend the mythtv code to support
> interlaced modes as well.
> deinterlacer - the inbuilt deinterlacer is OK but there should be
> plenty of horsepower available for better quality.
> Requirements (over and above a normal mythtv installation from source)
> - libspe2 and libspe2-devel (which enable access to the spe's). You
> can download these from:-
> - the spu development toolchain. If you have spu-gcc and embedspu,
> you're there...
> cd ~
> svn co http://svn.mythtv.org/svn/branches/mythtv-vid
> cd mythtv-vid
> wget http://www.btinternet.com/~mark_kendall/mythtvps3.diff
> patch -p 1 -i mythtvps3.diff
> chmod +x libs/libmythtv/cell/make_spu.sh
> ./configure --enable-ps3
> qmake mythtv.pro
> sudo make install
> Installation notes
> - be patient, it takes a couple of hours to compile...
> - do not try and speed things up by using make -j 2 or similar -
> you'll just slow it down due to the lack of memory.
> - you might want to disable a number of the backend options (e.g.
> --disable-dvb etc) to shorten compile times.
Looks interesting. I will give it a shot this weekend. But I might not be
able to get it working based on your instructions alone. I've never
compiled MythTV before. Just install it from ubuntu packages. The one time
I tried compiling a SVN version I must have done something wrong because it
very much didn't work.