NOTES ON THE OS/2 PORT

  This is an (experimental) OS/2 port of MKVToolNix 2.0.2, a set of utilities
  for working with Matroska multimedia files.

  Matroska is a container format for multimedia files, rather like AVI except
  open source and considerably more sophisticated.  See the README (or the
  links below) for more information.

  OS/2 support for Matroska files is still somewhat limited, unfortunately.
  (One reason I made this port was to try and help remedy that situation!)  As
  far as the available players go, WarpVision can generally play Matroska video
  (MKV) files, albeit without subtitle support.  The same goes for the K Movie
  Player (FFPlay port).  The current OS/2 port of MPlayer can often play them
  as well, although you seem to have more or less luck depending on the codecs
  in use as well as your video hardware and drivers.


USING

  These programs have NOT been tested extensively.  They compiled successfully,
  and I've verified that they will at least run.  Beyond that, I make no
  guarantees.

  The mmg (mkvmerge GUI) program has not been ported, as it apparently requires
  a later version of WxWidgets than is included in Paul's build system.

  Refer to the original README file for an overview of MKVToolNix.  The
  individual program man pages are located in the 'man' subdirectory, and
  plain-text versions are located in the 'doc' subdirectory.


BUILD NOTES

  This was an almost-clean compile from the version 2.0.2 source tree (using
  the GCC build environment assembled by Paul Smedley).  The only change was to
  the downcase() function in src/common/common.cpp; that was to work around an
  apparent bug in the Innotek LIBC 0.6.1 implementation of tolower().  Since
  this bug is listed as fixed for 0.6.2, I don't see much point in providing
  a patch; but for the sake of GPL compliance, I've listed the modified
  function here (starting from line 1008 in common.cpp):

    string
    downcase(const string &s) {
    #ifdef __OS2__
    // temporary workaround for a bug in OS/2 GCC 3.3.5 tolower()...
      char *clwr;

      clwr = (char *)malloc(s.size());
      strcpy(clwr, s.c_str());
      string dst(strlwr(clwr));
      free(clwr);
    #else
      string dst;
      int i;

      dst.reserve(s.size());
      for (i = 0; i < s.size(); i++)
        dst += tolower(s[i]);
    #endif

      return dst;
    }

  (And thanks to Peter Weilbacher for helping me fix this.)


LINKS

  MKVToolNix homepage:         http://www.bunkus.org/videotools/mkvtoolnix/
  Matroska homepage:           http://www.matroska.org
  Paul Smedley's OS/2 ports:   http://smedley.info/os2ports/
  My page for ported programs: http://www.cs-club.org/~alex/programming/ports/


--
Alex Taylor
April 2007

