                          VLC media player for OS/2
                         ---------------------------
                         
1. Introduce
------------

  This program is a port of VLC media player to OS/2.
  
2. Features...
--------------
  
  .Support Qt interface
  .Support DART/UNIAUD
  .Support SNAP/WarpOverlay!/VMAN/DIVE
                             
3. Requirements...
------------------
  
  .LIBCn v0.1.13
  .Qt v4.7.3GA2(for Qt4 build)
  .Qt v5.15.2(for Qt5 build)

4. How to launch
----------------

  1) Add 'x:\vlc2\lib' to LIBPATH in CONFIG.SYS
     (x is the drive letter pointed by %UNIXROOT% where VLC is installed)
  
  2) Reboot
  
  3) Launch 'vlc.exe' on command line or on WPS

5. Limits or Known Bugs...
-------------------------
  
  .When using SDL vout driver, VLC exits abnormally after playing a movie 
   file.
   
6. TODOs...
-----------
  
  .Support all the plugins
  .Merge into the official source tree
  .Support Qt5 interface fully
  
7. History specific to OS/2...
------------------------------

  - vlc-3.0.23 (2025/12/26) and vlc-3.0.23-qt5 (2025/12/23)
    .Sync with VLC v3.0.23 sources
    .Changed installation directory from /vlc2/@unixroot/usr/local to
     /@unixroot/vlc2

  - vlc-3.0.21-qt5 (2025/01/22)
    .Sync with VLC v3.0.21 sources
    .qt: use Qt5
    .Experimental. There are many GUI-related bugs 

  - vlc-3.0.21 (2024/06/17)
    .Sync with VLC v3.0.21 sources

  - vlc-3.0.20 (2023/11/07)
    .Sync with VLC v3.0.20 sources

  - vlc-3.0.19 (2023/10/19)
    .Sync with VLC v3.0.19 sources
    .Added dav1d plugin(using dav1d v1.1.0)

  - vlc-3.0.18 (2022/12/27)
    .Sync with VLC v3.0.18 sources

  - vlc-3.0.16 (2021/07/26)
    .Sync with VLC v3.0.16 sources

  - vlc-3.0.14 (2021/05/22)
    .Sync with VLC v3.0.14 sources
    .mkv plugin missed(use correct .pc file of libebml and libmatroska). 
     Issue #19. Fixed. Reported by cultorhei
    .mkv built-in subtitle does not show correctly
     (use UCS4 in freetype plugin). Issue #20. Fixed. Reported by cultorhei 
    .Movie under menu text show(changed colorkey). Issue #21. Fixed. 
     Reported by dspiatkowski

  - vlc-3.0.12 (2021/01/19)
    .Sync with VLC v3.0.12 sources

  - vlc-3.0.11 (2020/07/18)
    .Sync with VLC v3.0.11 sources
    .KVA_AUTOMODE can be used to set default video mode(using libkva v1.2.4)
     For example, SET KVA_AUTOMODE=DIVE, SNAP, WO or VMAN

  - vlc-3.0.10 (2020/04/30)
    .Sync with VLC v3.0.10 sources

  - vlc-3.0.8 (2019/08/23)
    .Sync with VLC v3.0.8 sources
    .qt: actions of 'View' menu keeps growing. Issue #16. Fixed.
     Reported by mrwarper.

  - vlc-3.0.7.1 (2019/06/29)
    .Sync with VLC v3.0.7.1 sources

  - vlc-3.0.7 (2019/06/08)
    .Sync with VLC v3.0.7 sources

  - vlc-3.0.6 (2019/01/12)
    .Sync with VLC v3.0.6 sources

  - vlc-3.0.5 (2018/12/31)
    .Sync with VLC v3.0.5 sources

  - vlc-3.0.4 (2018/09/03)
    .Sync with VLC v3.0.4 sources

  - vlc-3.0.3 (2018/06/19)
    .Sync with VLC v3.0.3 sources
    .qt: percent encoded file name(%XX) is shown. Fixed.
    
  - vlc-3.0.2 (2018/05/08)
    .Sync with VLC v3.0.2 sources
    .console: print messages in system locale
    
  - vlc-3.0.1 (2018/03/22)
    .Sync with VLC v3.0.1 sources

  - vlc-3.0.0 (2018/02/10)
    .Sync with VLC v3.0.0 sources
    .Some GUI features may be limited(Qt4 is not supported any more)

  - vlc-2.2.8 (2017/12/17)
    .Sync with VLC v2.2.8 sources
    .Added libass plugin(using libass v0.13.7 and fribidi v0.19.7)
    .Use rpm version of fontconfig instead of mzfntcfgft version
    .faad: when playing audio,
     `faad warning: PNS not allowed in DRM data stream' message is printed.
     As well as, jerky sound is generated. Fixed. Reported by Heikki Kekki
     (Use avcodec plugin instead of faad plugin)
    .Packaging error(snapwrap.dll missed). Fixed. Reported by Heikki Kekki
    
  - vlc-2.2.6 (2017/06/05)
    .Sync with VLC v2.2.6 sources
    
  - vlc-2.2.4 (2016/06/06)
    .Sync with VLC v2.2.4 sources

  - vlc-2.2.3 (2016/05/06)
    .Sync with VLC v2.2.3 sources
    
  - vlc-2.2.2 (2016/02/11)
    .Sync with VLC v2.2.2 sources
    .core : sometimes waiting for a conditional variable fails. Fixed
    .httplive : CPU load peaks to 99.9% when playing youtube live stream. Fixed
                (Conditional variable waiting failure was the cause)

  - vlc-2.2.1 (2015/04/25)
    .Sync with VLC v2.2.1 sources
    
  - vlc-2.2.0-fix1 (2015/03/10)
    .Fail to play DVD(dvdcss2.dll missed). Fixed.
     Issue #9. Reported by DavidMcKenna

  - vlc-2.2.0 (2015/02/28)
    .Sync with VLC v2.2.2 sources
    .Added gnutls plugin
    .Support https
    .skins2 : SIGFPE occurs. Fixed.
    .lua : Search in a wrong directory. Fixed. Reported by Maurice GUERON
    
  - vlc-2.1.5-r2 (2014/07/31)
    .Packaging error(bin directory missed). Fixed. Reported by Harald Kamm
    
  - vlc-2.1.5 (2014/07/30)
    .Sync with VLC v2.1.5 sources
    
  - vlc-2.1.3 (2014/02/15)
    .Sync with VLC v2.1.3 sources
    
  - vlc-2.1.1 (2013/12/07)
    .Sync with VLC v2.1.1 sources
    
  - vlc-2.1.0 (2013/10/09)
    .Sync with VLC v2.1.0 sources
    
  - vlc-2.0.7 (2013/06/16)
    .Sync with VLC v2.0.7 sources
    .Added skins2 plugin
    
  - vlc-2.0.6 (2013/04/14)
    .Sync with VLC v2.0.6 sources
    
  - vlc-2.0.5 (2013/01/01)
    .Sync with VLC v2.0.5 sources
    .core : support 'One instance' feature(Suggested by Jerry Rash)
    .kva : support 'Always on top'

  - vlc-2.0.4 (2012/10/20)
    .Sync with VLC v2.0.4 sources
    .stream_out_rtp : DLL name is longer than 8 bytes. Fixed
    .straem_out_raop : DLL name is longer than 8 bytes. Fixed
    .kva : image is sometimes not displayed on vman mode. Fixed
           (using libkva v1.2.1)
    .qt : focus is changed when timetooltip occurs. Fixed

  - vlc-2.0.2 (2012/07/14)
    .Sync with VLC v2.0.2 sources
    .core : 'Open directories...' does not work. Fixed 
            (reported by Andrew Elzenaar)
    .kai : the crash occur if uniaud.dll is present even if Uniaud driver is 
           not loaded. Fixed(using libkai v1.1.2, Reported by Erick)
    
  - vlc-2.0.1 (2012/03/30)
    .Sync with VLC v2.0.1 sources
    .Added mkv plugin(using libebml, libmatroska)
    .Added os2drive plugin
    .kva : support vman
    .kva : support BGR4(dive/vman)
    .kva : auto-detect snap > wo > vman > dive 
    .qt4 : auto-detect CD/DVD drive
    .Mozilla plugin removed

  - vlc-1.1.13 (2011/12/24)
    .Sync with VLC v1.1.13 sources
    .Make a name of a few plugins short
    .Sometimes fail to identify AMD CPU ID. Fixed

  - vlc-1.1.11 (2011/08/07)
    .Syn with VLC v1.1.11 sources
    
  - vlc-1.1.9 (2011/05/14)
    .Sync with VLC v1.1.9 sources
    .Added mux_ts plugin(using libdvbpsi)
    .Added ts plugin(using libdvbpsi)
    .Added access_realrtsp plugin(Support rtsp://)
    .Added live555 plugin(Support rtsp://)
    .Added a plugin for Mozilla(NOT RECOMMENDED)

  - vlc-1.1.7 (2011/02/06)
    .Sync with VLC v1.1.7 sources
    .kai: system hangs on when audio is played before video is initialized     
          with uniaud mode and snap mode pair 
    .kai: sounds are distorted on uniaud mode 

  - vlc-1.1.5 (2010/12/05)
    .Sync with VLC v1.1.5 sources
    .core : NLS is not supported if VLC is installed on the other place than 
            /usr/local
            
  - vlc-1.1.4 (2010/11/20)
    .Sync with VLC v1.1.4 sources
    .Added cdda plugin
    .Added vcd plugin
    .Added freetype plugin
    .Added lua plugin
    .Added xml plugin
    .kai : Support dart/uniaud mode selection
    .kai : Support shareable/exclusive mode selection
    .kva : Support embedded video mode Áö¿ø
    .kva : Support snap/wo/dive mode selection
    .kva : Support workaround for T23 
    .kva : Support Aspect Ratio, Crop
    .kai : SIGFPE occurs when playing AAC audio. Fixed
    .kva : Playing is not stopped even if closing a window on a stand-alone 
           window mode. Fixed
    .dvdnav : Play does not work. Fixed
    .Codepage should be specified into LANG env. var. Fixed 
     (Use a current codepage)

  - vlc-1.0.5-beta1 (2010/05/30)
    .Added KVA vout module
    .Files whose name is consisting of DBCS chars cannot be played. Fixed
    .'\' does not work in DBCS env. Fixed
    .--plugin-path is required. Fixed
    .Audio is not played. Fixed
    .DVD device is stored in wrong chars when specifying it. Fixed
    .SYS3171 occurs in LIBC063, When playing DVD. Fixed
    .SIGSEGV occurs when playing a music file using KAI aout driver. Fixed
    .VLC hangs on when trying to play a non-existent file if using Qt4 
     interface. Fixed (Use Qt 4.6.2GA)

  - vlc-1.0.5-tp2 (2010/04/11)
    .Support libavcodec, libavformat, libswscale, libpostproc, liba52
    .Added KAI aout module
    .Convert '/' to '\' of 'HOME' env. var.
    .Assertion failed in input thread. Fixed
     (call vlc_thread_join() before vlc_object_release())

  - vlc-1.0.5-tp1 (2010/03/14)
    .Technology Preview 1

8. How to compile
-----------------

8.1 Requirements
----------------

  Refer to the following site.
  
	http://wiki.videolan.org/Contrib_Status

8.2 Buld tools used for OS/2 port...
------------------------------------

  .GCC v15.2.0(for Qt4 build)
  .GCC v9.2.0(rpm)(for Qt5 build)
  .binutils v2.44
  .GNU Make 4.4.1-r2
  .wl(Open Watcom Linker) v2.0beta1
  .GNU coreutils v8.31
  .GNU sed v4.9
  .GNU grep v3.8(rpm)
  .mksh R59c
  .autoconf v2.72
  .automake v1.17
  .pkg-config v0.29.1(rpm)
  .libtool v2.5.4
  .OS/2 ToolKit v4.5
  .gettext v0.21.1
  .flex v2.6.4

8.3 Libraries used for OS/2 port...
-----------------------------------

  .libvorbis v1.3.5
  .ligogg v1.3.2
  .flac v1.3.2
  .x264 0.164.4573
  .a52 v0.7.4
  .libmpeg2 v0.5.1
  .faac v1.29.9.2
  .ffmpeg N-103078-gbc5faacc3f
  .libmad v0.15.1b
  .libdvdcss v1.5.0
  .libdvdnav v7.0.0
  .libdvdread v7.0.1
  .libcddb v1.3.2
  .libcdio 0.81
  .libgpg-error v1.26
  .libgcrypt v1.7.5
  .libxml2 v2.11.5
  .libpng v1.6.28
  .freetype2 v2.10.1
  .fontconfig v2.13.1(rpm)
  .zlib v1.2.11
  .Qt4 v4.7.3GA2(for Qt4 build)
  .Qt5 v5.15.2(for Qt5 build)
  .lua v5.1.4
  .pthread(rpm)
  .libkva v1.2.4
  .libkai v2.2.1
  .libdvbpsi v1.3.0
  .live555 2012.10.16
  .libebml v1.4.1
  .libmastroska v1.6.2
  .gnutls 3.5.8
  .gmp v6.1.2
  .nettle v3.3
  .libass v0.13.7
  .fribidi v0.19.7
  .xz v5.4.6(rpm)

8.4 Compilation
---------------

8.4.1 Applying patches
----------------------

  First of all, you should download the sources from VLC 
homepage(http://www.videolan.org/vlc/download-sources.html), and extract them 
into any directory what you want. Then extract 'src.zip' into the directory. 
And apply 'os2.diff' to the sources as the following.

    patch -p1 < os2.diff
  
8.4.2 setting a linker to WLINK
-------------------------------
   
  Set linker to WLINK.
  
    ex) gccenv gcc-usr-directory WLINK

8.4.3 Modifying 'QtCore.pc/QtGui.pc/QtSvg.pc'(for Qt4 build)
------------------------------------------------------------

  Modify QtCore.pc/QtGui.pc/QtSvg.pc in a source package as the following.
  
    .Modify 'prefix' to the path where Qt4 is installed
    .Copy QtCore.pc/QtGui.pc/QtSvg.pc to the pkgconfig directory(for example, 
     /usr/lib/pkgconfig)

8.4.4 Modifying 'configure.cmd'
-------------------------------

  Modify configure.cmd in a source package as the following.
  
    .Modify 'LIVE555_PREFIX' to the path where live555 is installed
        
8.4.5 Compiling and Installing
------------------------------

  Copy configure.cmd to the top source directory of VLC. Then run 
configure.cmd in the top source directory.
  
  After configuring, run the following.
  
    make SHELL=/bin/sh
    
  After compiling, run the following.
  
    make SHELL=/bin/sh install
    
  Then, VLC is installed in /@unixroot/vlc2.
  
9. Official homepage of VLC media player
----------------------------------------

  The official homepage of VLC media player is

    http://www.videolan.org/vlc/
    
  Refer to the following for the basic use of VLC(Reported by Ed Durrant)
    
    http://www.videolan.org/doc/play-howto/en/ch03.html
    
10. Reporting...
----------------

  If you encounter a problem, send me the following,
  
  - Problem
  - SMP usage
  - Audio driver name (Uniaud, SBLive and so on) and its version
  - Video driver name (SNAP, Panorama and so on) and its version
  - Log file
  
  You can generate log files as the following,
  
      vlc.exe -vvv --file-logging media-filename > vlc-err.txt 2>&1

  Open a ticket at GitHub issue tracker with both vlc-log.txt and vlc-err.txt, 
please.

    https://github.com/komh/vlc-os2/issues
  
11. Donation
------------

  If you are satisfied with this program and want to donate to me, please visit
the following URL.

    http://www.os2.kr/komh/os2factory/

  Or, please click the Ads in the following blog.

    https://lvzuufx.blogspot.com/
      
12. Contacts...
---------------

  Please use a issue tracker of github.
  
    https://github.com/komh/vlc-os2/issues

KO Myung-Hun
