DSVideo
=======

This is DSVideo, a video codec designed for the Nintendo DS, available
from http://dsvideo.recoil.org/ .  See the file LICENCE for licencing
terms.



How to watch videos
===================

First you will need to DLDI patch the DSVideo.nds file.  DSVideo doesn't
contain any drivers by default, so you'll have to patch it even if you
have a homebrew device that doesn't usually need patching, like the
supercard.  See http://dldi.drunkencoders.com/ for more information on
DLDI.  If you have an R4, see the note below.

When run, DSVideo presents a filesystem browser to find video files
made with the encoder (described below) which must have a filename ending
with ".dsv".  By default, the player will start in a directory called
"videos" if it exists, or the top level otherwise.  You can play a video
file either by touching it on the screen or by using the up and down keys
to highlight it then pressing the A button to start it playing.

While watching, you can use the touchscreen controls to rewind,
fast forward, pause, seek, return to the video selection screen and to
change the screen brightness.  In addition to the touch screen, fast-
forward and rewind can be used with the left and right keypad keys and
shoulder buttons.  The A button will toggle between pause and play,
X will change the brightness and select will go back to the select screen.

NOTE FOR THE R4:  There is a special version of DSVideo for the R4,
which has been patched with a slightly modifier version of the R4 dldi
driver (source is also included here).  If you have an R4, you'll need
to use the r4tf7.dldi patch and stop the R4 from autopatching it when
it boots.  This can be done with the 'dldinoap' tool (source is in the
thirdparty directory).



How to encode videos
====================

The encoder is a command line utility.  The basic usage is very
simple - the command:

   dsvideo input_video.avi

will convert the file 'input_video.avi' into a file called 'input_video.dsv'
which can then by copied onto your homebrew flashcard.

By default, 16:9 (or other widescreen sizes) will be encoded as centre-
cut-out, meaning the height will fit the DS screen and the sides will
be removed.  The original video size can be kept by passing the "-l"
option to the encoder, for example:

   dsvideo -l input_video.avi

There are some other options to control the encoder which are explained
(briefly) by running the encoder with no arguments.  More details are
available at the dsvideo website, http://dsvideo.recoil.org/



Credits
=======

DSVideo was developed by Dominic Ludlam, with artwork and design by
Denise Wilton, and additional artwork and the website by Nick Ludlam.
Nick also made the spiffy intro video.  Many thanks to Lee Maguire
for testing and feedback.

The sound track for the intro video is by James Tubbritt (Sharp),
downloadable from http://fxhome.com/sounds/

The following additional software is used:

 * devkitPro (http://www.devkitpro.org/).  Used to build the decoder.

 * FFMpeg (http://ffmpeg.mplayerhq.hu/).  Used by the encoder to provide
   input video and audio data.

 * TwoLAME (http://www.twolame.org/).  Used by the encoder for audio
   encoding.

 * Libfatdragon (http://www.dragonminded.com/?loc=ndsdev/LibFATDragon).
   Used by the decoder to access the flash card on the DS.

 * Freetype2 (http://www.freetype.org/).  Used during the build process
   to convert a freetype font to a bitmap font usable on the DS.

 * Libungif (http://sourceforge.net/projects/libungif/).  Used during the
   build process to convert images into a format usable on the DS.

 * Yasm (http://www.tortall.net/projects/yasm/).  Used while building
   the encoder.

