                             K Movie Player v0.6.0
                            -----------------------
                            
1. 소개
-------
  
  이 프로그램은 FFplay 를 바탕으로, 다양한 미디어 파일들을 OS/2 와 
eComStation 에서 재생하기 위해 만들어졌습니다.

2. 제작 환경
------------
  
  - 한국어판 OS/2 Warp v4 with FixPak #15
  
  - GCC v4.4.2
  
  - OS/2 ToolKit v4.5
  
  - OS2UNIX 환경 ( GNU Make v3.81r2, cp, rm, ... )

  - lxlite v1.3.3 ( 디버깅 정보 제거 )
  
  - SubVersion 1.6.2 ( 최신 FFMpeg 소스와 합치기 )
  
  - libkva v1.1.0
  
  - libkai v1.0.0
      
3. 실행에 필요한 환경
---------------------

  - 오디오 : UNIAUD, DART

  - 비디오 : SNAP, WarpOverlay!, DIVE
  
  - RunTime : kLIBC v0.6.3

4. 시험 환경
------------

  한국어판 OS/2 Warp v4 with FixPak #15 와 eComStation 1.2MR 에서 
시험했습니다.

5. 설치
-------

  kmp.exe 를 아무 디렉토리에 넣어 두시면 됩니다. SNAP 오버레이를 쓰기 위해서는 
snapwarp.dll 이 필요합니다. kmp.exe 와 같은 곳 또는 LIBPATH 에 지정되어 있는 
곳에 넣어두시기 바랍니다.
  
6. 사용법 및 선택사항
---------------------

6.1 사용법
----------

6.1.1 실행하기
--------------
    kmp [선택사항] [@설정파일] 입력파일

6.1.2 실행 중에
---------------
q                   끝내기
f, Enter            전체화면/창화면 전환
p, SPC              잠시 멈춤/재개 전환
m                   오디오 켬/끔 전환
a                   오디오 채널 순환
v                   비디오 채널 순환
t                   자막 채널 순환
w                   오디오 파형을 보여줌
left/right          10초 앞뒤 이동
Ctrl+left/right     1분 앞뒤 이동
down/up             볼륨 1% 씩 낮추기/높이기
Ctrl+down/up        볼륨 5% 씩 낮추기/높이기
mouse click         화면비만큼 위치 이동 
+/-                 글꼴 크기 크게/작게
Alt-0/1/2/3         각각 화면비를 none/original/force43/force169 으로 바꾸기
8/9                 밝기 5 단계씩 어둡게/밝게 ( wo 만 지원 )
i/o                 대비 5 단계씩 낮추기/높이기 ( wo 만 지원 )
k/l                 채도 5 단계씩 낮추기/높이기 ( wo 만 지원 )
,/.                 색상 5 단계씩 낮추기/높이기 ( wo 만 지원 )
/                   밝기/대비/채도/색상 기본값으로 ( wo 만 지원 )
[/]                 텍스트 파일 자막 싱크 0.5 초씩 빨리/느리게
PageUp/PageDown     이전/다음 파일 재생
;/'                 -/+ 0.1 초 단위로 오디오 싱크 수정(실험중)

6.2 선택사항
------------

6.2.1 주 선택사항
-----------------
-L                  라이센스 보여주기
-h                  도움말 보여주기
-?                  도움말 보여주기
-help               도움말 보여주기
--help              도움말 보여주기
-version            판번호 보여주기
-formats            사용 가능한 포맷 보여주기 
-codecs             사용 가능한 코덱 보여주기 
-bsfs               사용 가능한 비트 스트림 필터 보여주기 
-protocols          사용 가능한 프로토콜 보여주기
-filters            사용 가능한 필터 보여주기 
-pix_fmts           사용 가능한 화소 포맷 보여주기 
-loglevel loglevel  libav* 기록 수준 설정
-video driver       비디오 드라이버 설정 (driver=auto/snap/wo/dive)
-audio driver       오디오 드라이버 설정 (driver=auto/uniaud/dart)
-x width            폭을 지정
-y height           높이를 지정
-s size             프레임 크기 지정 (폭X높이)
-fs                 전체화면으로 보여줌
-vol level          처음 볼륨값을 퍼센트 단위로 지정
-an                 오디오를 끔
-vn                 비디오를 끔
-ss pos             초단위로 주어진 위치까지 이동
-bytes              바이트 단위로 이동
-nodisp             화면을 보이지 않음
-f fmt              특정 포맷을 선택
-subfont xx.name    자막 글꼴과 크기 지정 (xx=크기, name=글꼴 이름)
-osdfont xx.name    OSD 글꼴과 크기 지정 (xx=크기, name=글꼴 이름)
-aspect ratio       화면비율 지정 (ratio=none, original, force43, force169)
-framedrop          필요하면 프레임을 표시하지 않음
-hidemouse          전체화면에서 마우스 포인터를 감춤
-brightness level   밝기 지정, dive 제외(level=0..255)
-contrast level     대비 지정, dive 제외(level=0..255)
-saturation level   채도 지정, dive 제외(level=0..255)
-hue level          색상 지정, dive 제외(level=0..255)
-res48              48KHz 오디오를 44.1KHz 오디오로 변환(실험중)
-subimg             자막/OSD 를 이미지에 직접 출력
-subcolor f,o,s     자막색을 16진수 RGB 형태로 지정(f=글꼴, o=윤곽, s=그림자) *
-osdcolor f,o,s     OSD색을 16진수 RGB 형태로 지정(f=글꼴, o=윤곽, s=그림자) *
-autoadd            비슷한 이름의 파일을 자동으로 추가
-xext e1,e2,...     -autoadd 를 쓸 때, 해당 확장자를 가진 파일은 추가하지 않음

* 기본값은 f=FFFFFF, o=0F0F0F, s=0F0F0F

6.2.2 고급 선택사항
-------------------
-ast stream_number  원하는 오디오 스트림 선택
-vst stream_number  원하는 비디오 스트림 선택
-sst stream_number  원하는 자막 스트림 선택
-pix_fmt format     화소 형식을 지정
-stats              진행 상태를 보여줌
-debug              디버그 정보를 보여줌
-bug                버그 수정
-vismv              모션 벡터를 시각화하기 
-fast               호환성을 고려하지 않은 최적화
-genpts             pts 만들기
-drp                pts 순서를 재조정
-lowres             
-skiploop
-skipframe
-skipidct
-idct algo          idct 알로리즘 설정
-er threshold       오류 탐지 한계를 설정 (0-4)
-ec bit_mask        오류 무시 선택사항
-sync type          오디오-비디오 싱크 타입 설정 (type=audio/video/ext)
-threads count      쓰레드 갯수
-fixt23             이미지 축소 기능이 없는 비디오 카드(S3)의 문제 해결
-noaudioshare       오디오를 독점 모드로 사용
-fixsnap            snap 모드일 때, 동영상이 화면 크기보다 크면 자동으로 축소함
-audiobufsize size  오디오 버퍼의 크기를 바이트 단위로 지정
-seekinterval time  밀리초 단위로 탐색 시간 간격 설정
-default            모든 선택사항에 대한 기본값 사용

6.2.3 KMPOPT 환경변수
---------------------
  자주 쓰는 선택사항들은 KMPOPT 환경 변수에 지정해서 쓸 수 있습니다. 예로,
  
      SET KMPOPT=-vol 50
      KMP 비디오파일
   
  위 경우는 
     
      KMP -vol 50 비디오파일
      
  과 같습니다.

6.2.4. 설정 파일
----------------
  자주 쓰는 선택사항들은 설정 파일에 저장해서 쓸 수 있습니다. 설정 파일은 한 
줄에 하나의 인자만 있어야 합니다. 예로,
  
      ----- KMP.CFG start
      -vol
      50
      ----- KMP.CFG end
      
      KMP @KMP.CFG 비디오파일
  
  위 경우는
  
      KMP -vol 50 비디오파일
      
  과 같습니다.
     
7. 제한 사항 또는 알려진 벌레
-----------------------------

  - 일부 동영상 파일은 끝까지 재생이 안되거나, 자동종료가 안됩니다.

  - dive 모드일 때, OSD 와 자막의 테두리와 그림자가 제대로 표시되지 않습니다. 
    GpiBitBlt() 에 필요한 기능이 없습니다. -subimg 을 사용하십시오.
    
  - dive 모드일 때, OSD 와 자막이 깜빡거립니다. -subimg 을 사용하십시오.

  - 자막 파일의 코드 페이지 변환을 지원하지 않습니다.
  
  - 지정한 이름과 크기를 가진 글꼴이 없을 경우, 시스템 기본 글꼴(WarpSans 
    Combined)이 사용됩니다. 하지만 이 경우에는 글꼴 크기를 조절할 수 없습니다.

  - 음파 모드에서 OSD 가 깜박 거립니다.
  
  - 잠시 멈춤 상태에서 갱신될 때 부하가 매우 큽니다.

  - 가끔, 동영상의 끝부분에서 이동 기능이 작동되지 않습니다.

  - Non-interleaved AVI 파일은 제대로 지원되지 않습니다.
  
  - 오래된 UNIAUD 드라이버를 사용하는 경우, 특히 탐색을 할 때, 오디오 재생에 
    문제가 생길 수 있습니다. UNIAUD 1.9.22 또는 이후 것을 사용하십시오.
  
8. 할 것들...
-------------

  - 슬라이더바 지원
  
9. 판번호 보기
--------------

  - v0.6.0 ( 2010/01/14 )
    .UNIAUD 지원( -audio, libkai v1.0.0 사용 )
    .오디오 싱크 조정 지원
    .탐색 시간 간격 설정 지원( -seekinterval 선택사항 )
    .재생하는 동안 Doodle's Screen Saver 끔( libkva v1.1.0 사용 )
    .DIVE 모드일 때 2x2 디더링 사용
    .자막 시간 정렬 기능 사용
    .연속 재생시 화면 속성 보존 안됨. 고침
    .자막파일이름이 ASCII 가 아니면, 잘못된 자막파일이 재생될 수 있음. 고침
    .빈자막을 마지막 자막으로 인식. 고침
    .닫기 버튼을 눌러도 다음 파일 재생. 고침
  
  - v0.5.1 ( 2008/10/23 )
    .YUVJ420P 동영상의 경우 swscaler 메세지가 지속적으로 출력됨. 고침
     ( PIX_FMT_YUVJ420P 를 PIX_FMT_YUV420P 로 다룸 )
    .15, 16 bpp 모드에서 RGB 로 색공간 변환에 이상이 있음. 고침
     ( BentN 씨 제보 )
    .확장자가 다르면 자동 추가되지 않음. 고침
    
  - v0.5.0 ( 2008/10/18 )
    .FFMpeg SVN-r15572 소스 사용
    .컴파일러를 GCC 4.3.2 로 변경( 스택 변수 정렬 경고 없어짐 )
    .여러 파일 재생하기 지원
    .비슷한 이름의 파일을 자동으로 추가하기 지원
     ( -autoadd, -xext 선택사항 )
    .snap 모드일 때, 동영상 크기가 화면 크기 이상이면 자동으로 이미지 축소 지원
     ( -fixsnap 선택사항 )
    .오디오 버퍼 크기 설정 지원( -audiobufsize 선택사항 )
    .설정 파일 지원
    .자동모드일 때, 하드웨어 가속 기능이 사용 중이면 DIVE 모드로 전환
    .SNAP 오버레이가 지원되지 않으면 처음 한 번만 실행되고 두 번째부터
     비정상적으로 종료. 고침.
    .때때로 비디오 재생시 SIGFPE 발생. 고침. 
     ( img_init() 을 video_thread() 에서 queue_picure() 로 옮김 )
    .-subimg 를 쓸 때 OSD 가 잘릴 경우, 비정상적 종료. 고침.
     ( OSD 아래 방향으로 출력 )
    .화면 비율 바꾸면 모든 화면 속성 초기화됨. 고침.
      
  - v0.4.1 ( 2007/01/24 )
    .FFMpeg SVN-r11604 소스 사용
    .쓰레드 기능 사용
    .-osdfont 선택사항 지원
    .AC3 오디오의 경우 최적화된 IMDCT 변환 지원
    .CPU 종류 및 SwScaler 플래그 표시
    .snap 모드일 때, YV12 동영상 재생 성능 향상
    .비디오 드라이버의 자동 선택 순서를 wo > snap > dive 에서 snap > wo > dive 
     로 바꿈.
    .snap 모드일 때, 속성 선택사항이 작동 안 함. 고침.
    .snap 모드일 때, 창을 최소화했다가 복원하면 속성이 사라짐. 고침.
    .snap 모드일 때, 16M 색상 모드가 아니면 동영상이 안 보임. 고침.
    .동영상이 YUV420P 포맷이 아니면 SwScaler 메세지가 계속 출력됨. 고침.
    .SSE 탐지 안됨. 고침.
    .비디오 재생이 안될 때 화면이 정리되지 않음. 고침.
    
  - v0.4.0 ( 2007/12/29 )
    .FFMpeg SVN-r11313 소스 사용
    .SNAP 오버레이 지원( Mike Forester 씨께 감사 )
    
  - v0.3.1 ( 2007/06/24 )
    .비디오 스트림이 없으면 음파 모드로 전환
    .오디오 독점 모드 지원
    .자막, OSD 색 지정 지원
    .비디오 스트림이 없으면 비정성적 종료. 고침( Franz Bakan 씨 제보 )
    .WO 모드일 때, 이미지 축소 기능이 없는 비디오 카드(S3)의 경우, 영상이 
     제대로 표시되지 않음. 고침( Franz Bakan 씨 제보 )
    .음악 파일을 재생할 때, 잠시 멈춤 상태에서도 화면이 지속적으로 갱신됨. 고침
    .-fs 선택사항 제대로 작동하지 않음. 고침
    .높이가 0 이 되면 비정상적 종료. 고침
    .DIVE 모드일 때, 15/16 비트 컬러 모드에서 색상이 다르게 나타남. 고침
    .15/16 비트 컬러 모드에서 -subimg 쓰면 자막이 깨끗하지 않음. 고침
    .15/16 비트 컬러 모드에서 글자 테두리 표시 안됨. -subcolor, -osdcolor 로 
     테두리와 그림자 색을 적당하게 지정하십시오.
     예를 들면 -subcolor ,0F0F0F,0F0F0F -osdcolor ,0F0F0F,0F0F0F
    .osdInvalidate() 에서 SIGSEGV 발생. 고침
    .tbDelete() 에서 SIGSEGV 발생. 고침
    .때때로 창크기가 동영상 크기와 상관없이 640x480 으로 설정됨. 고침
    
  - v0.3.0 ( 2007/05/27 )
    .FFmpeg 2007/05/24 소스 사용
    .자막/OSD 를 이미지에 직접 출력 지원( DIVE 모드일 때 유용 )
    .AAC 오디오 포맷 지원
    .48KHz 오디오를 44.1KHz 로 변환 지원(실험중)
    .libyuv 대신에 libswcale 사용
    .fastmemcpy() 사용
    .자막/OSD 비트맵 오른쪽이 잘림. 고침.
    .이동시 자막이 지워지지 않는 경우가 있음. 고침.
    
  - v0.2.2 ( 2007/03/14 )
    .부동 소숫점 연산이 때때로 실패함. 고침.
    .'/' 눌렀을 때 해당 OSD 출력 안 됨. 고침.
    .자동 종료 확인 방법 바꿈

  - v0.2.1 ( 2007/03/04 )
    .코덱의 이미지 포맷이 YUV420P 일 때, 성능 향상
    .잠시 멈춤 상태에서 화면 갱신 안됨. 고침.
    .음파 모드에서 OSD 출력 안됨. 고침.
    .wo 모드에서 윈도의 보이는 부분이 달라지면, 화면이 깜박 거림. 고침
    .v0.2.0 에서 '-hidemouse' 선택사항의 기여자가 Dmitry Froloff 씨였음을 
     빠뜨렸음. 고침.
    
  - v0.2.0 ( 2007/02/26 )
    .각종 정보를 TitleBar 에 표시하지 않고, OSD 로 표시
    .framedrop 기능 지원
    .전체화면일 때 마우스 포인터 감추기 기능 지원( by Dmitry Froloff )
    .밝기/대비/채도/색상 조절 기능 지원( wo 에서만 )
    .텍스트 파일 자막 싱크 조절 기능 지원
    .WarpCenter 가 있을 때 전체화면으로 바꾸면, WarpCenter 가 사라지지 않음. 
     고침( by Dmitry Froloff )
    .비트맵 글꼴 선택이 안됨. 고침
    
  - v0.1.0 ( 2007/02/12 )
    .재생이 끝나면 자동 종료
    .텍스트 파일 자막 지원( SAMI 파일만 시험했음 )
    .글꼴 크기 바꾸기 지원
    .화면 비율 바꾸기 지원
    .재생 정보를 타이틀바에 표시
    .이동 기능 개선
    .소스 파일 모듈화
    
  - 시험판 ( 2007/02/02 )
    .FFplay 에서 SDL 을 사용하지 않도록 하고, 명칭을 KMP 로 변경.
    .볼륨 조절 기능 추가
    .오디오 켬/끔 기능 추가
    .몇 가지 글쇠 기능 조정
    .잠시 멈춤 기능 개선(잠시 멈춤 상태로 오랜 시간이 지나면 싱크가 맞지 않음)
      
10. 소스 컴파일 하기
--------------------

  소스 파일들을 원하는 디렉토리에 풀고, C_INCLUDE_PATH, CPLUS_INCLUDE_PATH, 
LIBRARY_PATH 에 OS/2 ToolKit 4.5 관련 설정을 해주십시오.
  
  이제 configure.cmd 를 실행시킵니다.
  
  작업이 끝났으면 다음처럼 make 를 실행시킵니다.
  
      make SHELL=/bin/sh
      
  소스를 최신으로 갱신하기 위해서는 다음처럼 하십시오.
  
      svn update

11. 모듈 설명
-------------

  kmp.exe      : K Movie Player 실행 파일입니다.
  snapwrap.dll : SNAP 오버레이 지원을 위한 파일입니다.

12. 참조한 프로젝트
-------------------

  FFplay      : 기본 플레이어
  WarpVision  : libdart, libsub
  MPlayer     : libfaad, libvo
  
13. 고마운 분들...
------------------

  Dave Yeo : FFMpeg 에 OS/2 관련 패치 적용

14. 알아두기
------------

  KMP 는 Morphing 기법을 쓰기 때문에, 항상 텍스트 창이 열립니다. 그래서 파일 
연결 기능을 쓸 때, 항상 열리는 텍스트 창이 성가십니다. 이럴 때는 이렇게 
하시면 됩니다.

  일단, ToolKit 4.5 에 있는 MARKEXE.EXE 가 필요합니다. 준비가 되었으면 이렇게 
하십시오.

    copy kmp.exe kmppm.exe
    markexe windowapi kmppm.exe

  또는 markexe.exe 대신에 emxbind.exe 를 이용할 수도 있습니다.

    emxbind -e -p kmppm.exe
      
  이제 kmppm.exe 를 파일 연결에 사용하시면 됩니다. 이렇게 하면, 텍스트 창이 
열리지 않고, KMP 가 실행이 됩니다. 물론 도움말이라든지 기타 정보는 화면에 
표시되지 않습니다. 파일 연결 기능에만 쓰십시오. ^^

15. 후원하기
------------

  이 프로그램이 마음에 들어 후원하고 싶으시면, 아래 URL 을 방문해 주십시오.

    http://www.ecomstation.co.kr/komh/donate.html


16. 하고 싶은 말이 있을 때...
-----------------------------

  e-mail : komh@chollian.net
  ICQ    : 124861818
  MSN    : komh@chollian.net
  IRC    : lvzuufx, #os2 at HANIRC(irc.hanirc.org)
               
                                                       만든이 : 고명훈
               
