Freevo

- Index
- DXR3

# Hardware/DXR3

## Introduction

The DXR3/Hollywood Plus is a MPEG2-Decoder-Card with TV out (Composite and S-Video). You can use it to display Freevo on your TV screen. If you have any questions concerning this documentation, contact me Schilling, Daniel.

## Setting up the DXR3-Kernel-Drivers

See DXR3 / Hollywood Plus HOWTO

## Creating ffmpeg

- Homepage: http://ffmpeg.sourceforge.net/

      At the moment, SDL 1.2.6 will only compile with 0.4.6
      wget http://unc.dl.sourceforge.net/sourceforge/ffmpeg/ffmpeg-0.4.6.tar.gz
      tar xzfv ffmpeg-0.4.6.tar.gz
      cd ffmpeg-0.4.6
      ./configure --enable-shared
      make
      make install

## Creating SDL with DXR3-Support

- Homepage: http://www.libsdl.org/

At first, see "Creating the runtime", section SDL under DocumentationPage/InstallDeps. The difference to that is, that before configuring the source you also have to apply the dxr3-patch from the contrib/DXR3 directory and regenerate the Makefiles with autogen.sh. You'll need the CVS version of sdl to get the dxr3-patch working. See the webpage for instructions, or just hit:

-     At the moment, SDL 1.2.6 will only compile with 0.4.6
      cvs -d :pserver:guest@libsdl.org:/home/sdlweb/libsdl.org/cvs login
      cvs -z3 -d :pserver:guest@libsdl.org:/home/sdlweb/libsdl.org/cvs checkout SDL12

Apply the patches:

-     cd path-to-your-SDL-source
      patch -p1 < path-to-your-freevo/contrib/rpm/SDL-1.2.6-nokeyboardpatch
      patch -p1 < path-to-your-freevo/contrib/rpm/SDL-1.2.5-dxr3-ffmpeg.patch

The dxr3-patch is outdated, you'll get HUNK #3 failed, or something like that. Look at configure.in.rej to see what have failed and make the changes manually. To be able to compile your SDL you'll need some files from ffmpeg. This is probably a lame way to go, but hey, it works

-     cp path-to-your-ffmpeg/libavcodec/avcodec.h src/video/dxr3/
      cp path-to-your-ffmpeg/libavcodec/common.h src/video/dxr3/

Atm it's just the Makefile of dxr3 you'll have to insert in you configure.in among the other video/ Makefiles.

-     ./autogen.sh
      ./configure

Go ahead and compile your SDL.

-     make
      make install
      cd ..

## Creating MPlayer with DXR3-Support

- Homepage: http://www.mplayerhq.hu

      wget ftp://ftp1.mplayerhq.hu/MPlayer/releases/MPlayer-0.90rc5.tar.bz2
      tar xjfv MPlayer-0.90rc5.tar.bz2
      cd MPlayer-0.90rc5
      ./configure

  Take a look at the configure-output, especialy the "Video Output" (dxr3 should be enabled):

      Config files successfully generated by ./configure !

        Install prefix: /usr
        Data directory: /usr/share/mplayer
        Config direct.: /usr/etc/mplayer

        Byte order: Little Endian
        Optimizing for: pentium3 mmx mmx2 sse mtrr

        Enabled optional drivers:
          Input: streaming edl tv cdda mpdvdkit2 vcd
          Codecs: divx5linux libavcodec libvorbis
          Audio output: alsa9 arts oss sdl mpegpes(file)
          Video output: xvidix dxr3 sdl vesa jpeg mpegpes(file) fbdev opengl dga xv x11
        Disabled optional drivers:
          Input: tv-v4l tv-bsdbt848 dvdnav dvdread dvdcss
          Codecs: qtx divx4linux xvid libdv real xanim dshow/dmo win32 libmad liblzo gif
          Audio output: sgi sun esd dxr2 nas win32
          Video output: bl zr dxr2 directx gif89a png svga aa ggi xmga mga directfb tdfxfb 3dfx

  If dxr3 doesn't appear in the "Video output" section, then the dxr3-header-files are missing. Have a look in the DXR3-FAQ mentioned above. If you think, that all header files are in their correct location, you possibly can enable DXR3-Support by appending "--enable-dxr3" to the configure-script.

  Now you can compile and install MPlayer:

      make
      make install

## Setting up Freevo with DXR3-Support

1. Get Freevo from CVS and make it run properly with your PC monitor.

2. Edit freevo.conf in the CVS root directory and change the display and geometry parameter (in my case for PAL):

-     display = dxr3
      geometry = 720x576

1. You'll probably want to use your dxr3 card for sound too.

- Edit your freevo_config.py or local_config.py and change the mplayer ao to the dxr3 card.

      MPLAYER_AO_DEV       = 'oss://dev/em8300_ma-0'

  Also you might want to use the dxr3 card to decode the sound, change MPLAYER_ARGS_DEF to -ac hwac3, instead of -ac mad,

  You may need to tweak the MPlayer command-line to get smooth playback, particularly of MPEG-4. The following has worked for several people:

      MPLAYER_ARGS['avi'] = '-cache 5000 -idx -vo dxr3:sync:prebuf -vop lavc=1:25:97'
      MPLAYER_ARGS['mpeg'] = '-cache 5000 -vo dxr3:sync:prebuf'
      MPLAYER_ARGS['default'] = '-cache 5000'

1. Copy the SDL-Library to the runtime/dll directory

-     cp /usr/local/lib/libSDL-1.2.so.0  runtime/dll

1. Copy MPlayer to the runtime/apps directory

-     cp /usr/local/bin/mplayer runtime/apps

1. Run ./freevo and enjoy Freevo on your TV screen!

## Outdated infos (moved from DocumentationPage)

There is support for the dxr3 card by "Creative Labs" (aka. "Hollywood Plus" by "Sigma Designs") in the current release of "freevo".

You need, however, support for the dxr3 in your libSDL, too. First attemps to add dxr3 to libSDL were done by Michael Hunold using the "fame" mpeg-encoder. You can find this attempts at

Please don't use this code any more, it's outdated and not maintained any more -- it's just still there for completeness.

This support has lately been improved by Jens Axboe, he switched to the very populoar "libavcodec" mpeg-encoder, too. Have look at the mailing list archives for the latest version of his patch or send a mail to the mailing list.

If you compiled and installed this new version of libSDL, you should configure "freevo" to use the dxr3 as an output device, for example like this:

"./configure --display=dxr3 --geometry=640x480 --tv=pal", then do a "make".

Now you are ready to start it with "./freevo". Good luck and have fun!

For further questions, ask on the mailing list.

last edited 2005-01-10 11:03:00 by JohnMolohan
current version: http://freevo.sourceforge.net/cgi-bin/doc/Hardware/DXR3