PSPlayer 2.0

0. Notice

As I'm not good at writing in english, I write minimum information for video player of PSPlayer. Full details are in PSPlayer.txt in korean. Translation would be appreciated.

1. PSPlayer video player.

1.1 Features

* Based on FFMPEG nearly latest source(svn rev. 14728).
* avi/mov(mp4) containers supported. No container specific limitation.
* Video codec : Mpeg4 video(xvid etc), Mpeg4/AVC(h264) supported. (HW accel only)
* Audio codec : AC3, MP3, AAC supported. (MP3/AAC are HW accelerated.)
* Subtitles are supported. (smi, etc. through mplayer subreader.c and custom rendering of subtitles.)
* Supports B-frames in H264.
* audio 8-48kHz sampling rate supported. (linear resamling to 44kHz used in PSPlayerMT)
* Real-time volume boosting(1-20x). Apart from system volume. (Can be used for Replay Gain. Of course by hand not automatically.)
* Super high quality custom YUV rendering using PSP video acclerator. Precise color conversion. Deblocking in chroma channels. (from PSPlayerMT)
* Fast avi loading by optimizing index loading.
* Max video resolution. 480x272. (PSP HW codec library does not support higher resolution. maybe)
* No restriction in framerate.
* Buffering mechanism used in PSPlayerMT. (but extreamly reduced buffer size.)
* FF/Rew supported.
* Using internal bookmark mechanism, resuming supported.
* Async reading of video files. Less memstick access.
* usbhostfs, nethostfs supported. (first should be enabled using irshell. etc.)

1.2 Video player control

¡ç¡æ : FF/REW (to next keyframe)
¡è¡é : FF/REW (to 30sec keyframe)
L1/R1 : FF/REW (to 5min keyframe)
¡â : change zoom mode
¥¹ : Stop playing
¡à : Show player debug info
START : Pause/Play toggle
Analog Up/Down : Boost volume 1x-20x (in SW)

1.3 Additional notes on video player

* Most of software codecs are removed to reduce pbp filesize. (except AC3)
* Sometimes H264 decoder fails.
* After decoding of Mpeg4 video(xvid), H264 decoder crashes occasionally. (in sceMpeg library)
* Recommended encoding software. (regardless of codec)
 - to avi files. Badak. always my favoriate. (http://www.kipple.pe.kr)
 - to mp4 files. XviD4PSP 5.x. Good for mp4 files. (http://www.winnydows.com, avi not working)
 - no special conversion setting is required for H264. (just select file, setup codec and convert.)
 - HW xvid decoder does not support b-vop(b frame), gmc, qpel. When encoding with xvid, disable unsupported options. (With mencoder, add -xvidencopts max_bframes=0:nogmc:noqpel)
* Have an option for RGB rendering of Mpeg4 video.
* First audio track only. No multi-track audio.
* developed and tested on 3.90 M33-5(1.5 addon, fatmsmod patch) and tested on 3.71 M33-4(?, 1.5 addon) and OFW 1.5 on DAX's time machine. (not a slim psp)
* Full compatible list of container and codec combination. (tested.)
 - AVI - opendivx/xvid/h264 - ac3/mp3
 - MP4 - xvid/h264/opendivx(?) - mp3/aac
 - any combination of video/audio codec is supported. (ex. avi h264/ac3 ok)
* avi files takes additional 10MHz CPU clock.
* ac3 is not recommended. for compatibility only. It takes additional 50MHz CPU clock.

2. PSPlayer other features

* started from simple mp3 player using libmad.
* text viewer. Up to 2M lines. Fast loading. Simple bookmark.
* mp3/aac/m4a/ogg player. with playlist support.(m3u)
* bmp/jpg/png/gif support. but primitive.
* Additional features and how to use is in PSPlayer.txt and readme.old. (but in korean, sorry)

3. Code page and font (text files and subtitles)

* PSPlayer is a totally multi-byte application.
* Can handle 2-byte characters.
* No code-page conversion.
* Included font is a rip of a korean font. (in CP949)
* Should match encoding of text files and font.
* Font converter can be released if I can find it somewhere in my harddisk.

4. Source codes and license

In each binary distribution source code will be included.

Source codes follows GNU GENERAL PUBLIC LICENSE. See license.txt in the distribution.

5. Compilation

You need to setup pspsdk and addtional libraries. See Makefile for full list of needed libraries.

I includes svn diff for ffmpeg source and configure script(ffmpegconfigure.sh). The svn diff decribes what I modified from ffmpeg source svn rev. 14728.

I hope this codes are helpful to all PSP developers. But my source code is very very dirty because it started from a simple test application. PSPlayerMT was a source code cleanup version of this but it failed and discontinued.(It was just a battery hungry ogre, I think) And most of PSPlayerMT source code is just copied to main.cpp (after 2 year of sleep in a zipfile), making it a hell to readers.

subreader.h/c : copied from mplayer source and modified slightly to compile with it.

6. Special Thanks to

- Sakya : used support.prx to do... clock adjustment, display off, get volume level. His LightMP3 motivated me to upgrade PSPlayer using HW codecs after 2+ year of sleep.
- cooleyes : prototype for MP3/AAC/Mpeg4/H264 decoding using VME. PPA source code greatly helped coding of PSPlayer(esp. video player).
- TyRaNiD : PSPLink greatly helped monitoring, debugging of PSPlayer.
- and all other PSP developers
