                           K Movie Player v0.2.2
                          -----------------------
                            
1. Introduce
------------
  
  This program, based on FFplay, is made to play various media files on OS/2 
and eComStation.

2. Development Environment
--------------------------
  
  - OS/2 Warp v4 for Korean with FixPak #15
  
  - GCC v3.3.5 CSD1
  
  - OS/2 ToolKit v4.5
  
  - nasm v0.98.38
  
  - OS2UNIX environment ( GNU Make v3.81r2, cp, rm, ... )

  - lxlite v1.3.3 ( for strip of debugging infos )

3. Requirement
---------------------

  - Audio : DART

  - Video : DIVE or WarpOverlay

  - RunTime : LIBC061
  
4. Test Environment
-------------------

  This program is tested on OS/2 Warp v4 for Korean with FixPak #15 and 
eComStation 1.2MR.

5. Installation
---------------

  Put kmp.exe into any directory.
  
6. Usage and Options
--------------------

6.1 Usage
---------

6.1.1 Usage
--------------
    kmp [options] input_file
  
6.1.2 While playing
-------------------
q                   quit
f, Enter            toggle full screen
p, SPC              toggle pause
m                   toggle audio mute
a                   cycle audio channel
v                   cycle video channel
t                   cycle subtitle channel
w                   show audio waves
left/right          seek backward/forward 10 seconds
Ctrl+left/right     seek backward/forward 1 minute
down/up             volume down/up by 1%
Ctrl+down/up        volume down/up by 5%
mouse click         seek to position in file corresponding to fraction of width
+/-                 grow up/down font size
Alt-0/1/2/3         set aspec ratio none/original/force43/force169 respectively
8/9                 brightness down/up by 5 level(only for wo)
i/o                 contrast down/up by 5 level(only for wo)
k/l                 saturation down/up by 5 level(only for wo)
,/.                 hue down/up by 5 level(only for wo)
/                   reset attributes(b/c/s/h) to default value(only for wo)
[/]                 correct subtitle sync -/+ 0.5 seconds

6.2 Options
------------

6.2.1 Main options
------------------
-h                  show help
-video driver       set video driver (driver=auto/wo/dive)
-x width            force displayed width
-y height           force displayed height
-fs                 force full screen
-vol level          set initial volume level in percentage
-an                 disable audio
-vn                 disable video
-ss pos             seek to a given position in seconds
-bytes              seek by bytes
-nodisp             disable graphical display
-f fmt              force format
-subfont xx.name    set subtitle font name and size (xx=size, name=font name)
-aspect ratio       set aspect ratio (ratio=none, original, force43, force169)
-framedrop          frame drop if necessary
-hidemouse          hide mouse pointer on full screen mode
-brightness level   set brightness level, only for wo (level=0..255)
-contrast level     set contrast level, only for wo (level=0..255)
-saturation level   set saturation level, only for wo (level=0..255)
-hue level          set hue level, only for wo (level=0..255)

6.2.2 Advanced options
----------------------
-stats              show status
-debug              print specific debug info
-bug                workaround bugs
-vismv              visualize motion vectors
-fast               non spec compliant optimizations
-genpts             generate pts
-lowres
-skiploop
-skipframe
-skipidct
-idct algo          set idct algo
-er threshold       set error detection threshold (0-4)
-ec bit_mask        set error concealment options
-rtp_tcp            force RTP/TCP protocol usage
-sync type          set audio-video sync. type (type=audio/video/ext)
-threads count      thread count

6.2.3 KMPOPT Environment Variable
---------------------------------
  You can use 'KMPOPT' env. var. for your favorite options. For examples,
  
      SET KMPOPT=-vol 50
      KMP input_file
   
  This is the same as the following.
     
      KMP -vol 50 input_file
      
7. Limitations/Known bugs
-------------------------

  - Some movie files aren't played up to its play time or auto-closed.
  
  - Don't support SNAP overlay( I don't have it ).
  
  - On dive mode, boundary and shadow of subtitle is not displayed well. 
    GpiBitBlt() is missing a needed function. I recommend to use WarpOverlay!.
    
  - Don't support codepage conversion of subtitle.
  
  - If there is no font with specified name and size, system default font( 
    maybe WarpSans ) is used. But in this case, you cannot adjust font size.

  - On wave mode, OSD flicker.
  
  - On pause, updating of window cause cpu load to high.
  
  - On near the end of movie, sometimes seek fails.
  
8. TODOs...
-----------

  - Support configuration file
  
  - Support SNAP overlay

  - Direct display subtitle/OSD to image bitmap

  - Support sliderbar
      
9. History
----------

  - v0.2.2 ( 2007/03/14 )
    .Sometimes floating-point arithmetic fails. Fixed.
    .When '/' is pressed, an OSD is not displayed. Fixed.
    .Changed check method for auto-close.
    
  - v0.2.1 ( 2007/03/04 )
    .Improved performance when image format of codec was YUV420P.
    .On puase, window is not updated. Fixed.
    .On wave mode, OSD is not displayed. Fixed.
    .On wo mode, when visible region of window is changed, flickering occur.
     Fixed.
    .Missed the contribution of Dmitry Froloff to '-hidemouse' option in 
     v0.2.0. Fixed.
    
  - v0.2.0 ( 2007/02/26 )
    .Display information using OSD instaed of TitleBar
    .Support framedrop feature
    .Support to hide mouse pointer when full-screen mode ( by Dmitry Froloff )
    .Support to control Brightness/Contrast/Saturation/Hue( only for wo )
    .Support to adjust sync of text file subtitle
    .When WarpCenter is running, even though changing to full-screen mode, 
     WarpCetner still appear. Fixed. ( by Dmitry Froloff )
    .Bitmap(Raster) font cannot be selected. Fixed.
    
  - v0.1.0 ( 2007/02/12 )
    .Auto close when finishing play back
    .Support text file subtitle( tested only on SAMI file )
    .Support to change font size on play back
    .Support to change aspect ratio on play back
    .Display information related to play back on title bar
    .Improved seek function
    .Modulized sources
    
  - Test vesrion ( 2007/02/02 )
    .Removed dependency on SDL of FFplay, and changed the name to KMP
    .Added volume control feature
    .Added audio mute on/off feature
    .Changed function of some keys
    .Improved 'Pause'( After long pause, sync will be incorrect ).
    
10. Compilation
---------------
  If you prepare all development environment, you should modify some settings.
  First, you should modify the following three variable in 'config.mak'. They 
have to point top level directory of your source tree. The following is mine.

    SRC_PATH="/lang/work/kmp/kmp-work"
    SRC_PATH_BARE=/lang/work/kmp/kmp-work
    BUILD_ROOT="/lang/work/kmp/kmp-work"

  Second, if you want to compile FFplay, you need SDL library. After 
installing this library, modify the following two variables. The following is 
mine( I renamed SDL12.lib to SDL.lib ).

    SDL_LIBS=-L/usr/lib -lSDL     #where SDL.lib is
    SDL_CFLAGS=-I/usr/include/SDL #where SDL header files are
    
  gcc have conflictions with SDL header files. You can be refered to the 
following site to solve them.

    http://www.virtualbox.org/wiki/OS/2%20build%20instructions      

  If you don't want FFplay, you can remove ffplay related stuff of Makefile.
  
  Finally, you should modify C_INCLUDE_PATH, CPLUS_INCLUDE_PATH, LIBRARY_PATH 
for OS/2 ToolKit v4.5.

  Now, run 'make'.

11. Modules
-----------

  kmp.exe : 'K Movie Player' executable file.

12. Credits
-----------

  FFplay     : Base player
  WarpVision : DART, yuv2rgb, subreader

13. Tips
--------

  KMP use morphing method to use both command and PM window. So when using 
file association, command window is always opened. To avoid this problem, you 
can do the following.

  First of all, you need MARKEXE.EXE of ToolKit 4.5. If you have it, do the 
following.

    copy kmp.exe kmppm.exe
    markexe windowapi kmppm.exe
    
Now, you can use kmppm.exe for file association, and command window is not 
opened any more. Of course, you cannot see any infos and helps. Use this only 
for file association. ^^
    
14. Contacts
------------

  e-mail : komh@chollian.net
  ICQ    : 124861818
  MSN    : komh@chollian.net
  IRC    : lvzuufx, #os2 at HANIRC(irc.hanirc.org)
               
                                                       KO Myung-Hun
               
