delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2023/01/02/15:35:19

X-Authentication-Warning: delorie.com: mail set sender to djgpp-bounces using -f
Message-Id: <202301022028.302KSMm8021413@delorie.com>
Date: Mon, 2 Jan 2023 20:51:56 +0100
From: "Juan Manuel Guerrero (juan DOT guerrero AT gmx DOT de) [via djgpp-announce AT delorie DOT com]" <djgpp-announce AT delorie DOT com>
To: djgpp-announce AT delorie DOT com
Subject: ANNOUNCE: DJGPP port of FFmpeg 5.1.2 uploaded.
UI-OutboundReport: notjunk:1;M01:P0:NT/1UF5xkZs=;f0CZFwc0rekmx7Nt6SdgkaZA4qv
AvHT/BLpnC/PhTTomQz+c5p7ZNLAmVqvFbmTs6K9JUa2ouNus/pfqDRhOyrg6IydIJxYbrb+M
u/APjyESlK9TLcksH52VkBlDKWJtG7xI4xlHLjOJ2U8NytmTEo+RRiLP695Io+sV18qMpD7gV
R+TzDNkr3YE4Ytb5g4seRbbbUgSUgJ8VS6cT+RvtYHjPZBm/lzhdhkqCQBsCMXiHHprbDa0AJ
tYk9UNOTMCLJmBmymudcVl+efwGtzL0bGR80cNK+5+q4MWOGJyNC3MC1BQ0yRqHTQN9QsvJsL
qMxVLwjvknrY13D6C6ItX2BwGdPdGi270D42v/9klN8j8DBEYG8bRX3JbSy67jp88ZjYfvWTv
sMCtrSKr+cEFMnL9pZ0IKWtAVeAW91M5tHZ1Yaz1GVg919qV4DldJQLdIfDmr1lcarD+ZkHVU
vs94e5K86fk9WR9tEjx1s8OIOaHVWy/7xcakRBAKsufMV5sV7sEngwRAoEG3dG+zd53v4hBt3
JauWXANoGW1Qis9VYdCEwVJCTG6A32SzVypj1dsCYFlWB2VkMr2YlKlq50J6iI4kPJ0qFR114
0wjErhfDp1DIG5rhKrNjy/qoyH2jIZgaNtweVSYWfU8EJhc47O4gdDq9p7LL70oB5l01TF+Ry
yBG7yadEQwFEDeloEpWnfWDJObYVvHqrFHils6qDq85DAmFSTvg5nn5/is5P7DwO6ViYYcjOo
lTETnRRhFCfesoBLLoNSrJnMqgEGzkCJD/E5wVZFBJyib+MW4o2xkdTlx/+wCSDK/oMJhH74g
kpHZ9D4TNBi0jdolVt3EkRNp+04RjmuU4CrzD9prNDy+uM9uErRzj/EYw00kcQHvEJAXQXwJ1
AwkAkgc1U4BJdFinNIFykeixMUZ2UzE9Fbv08aQO21expNKFsj6ITAlkYqa1XbHLy6/Cdq8J/
DC9K59MzrhR80XCOZBBhCLuoqAo=
Reply-To: djgpp AT delorie DOT com

This is a port of FFmpeg 5.1.2 to MSDOS/DJGPP.


FFmpeg is the leading multimedia framework, able to decode, encode,
transcode, mux, demux, stream, filter and play pretty much anything
that humans and machines have created. It supports the most obscure
ancient formats up to the cutting edge. No matter if they were
designed by some standards committee, the community or a corporation.

FFmpeg Libraries for developers
  libavutil is a library containing functions for simplifying programming,
  including random number generators, data structures, mathematics routines,
  core multimedia utilities, and much more.
  libavcodec is a library containing decoders and encoders for audio/video
  codecs.
  libavformat is a library containing demuxers and muxers for multimedia
  container formats.
  libavdevice is a library containing input and output devices for grabbing
  from and rendering to many common multimedia input/output software frameworks,
  including Video4Linux, Video4Linux2, VfW, and ALSA.
  libavfilter is a library containing media filters.
  libswscale is a library performing highly optimized image scaling and color
  space/pixel format conversion operations.
  libswresample is a library performing highly optimized audio resampling,
  rematrixing and sample format conversion operations.



  DJGPP specific changes.
  =======================

  - The port has been configured and compiled with all assembler optimizations
    disabled.  This also includes the disableling of the run-time cpu detection
    code.  The goal is to have a library that only requires a i386 cpu.  If
    someone wants a specialized version of this library, he will have to build
    his own version.

  - The configure script has been modified to get the library configured and
    compiled with DJGPP.  A new target called "djgpp-dos" has been created to
    control the DJGPP build.  This is important because else the GNU default
    target is used and this defaults some parameters for a 64 bit system
    instead as for 32 a bit system.  The diffs file documents the DJGPP specific
    changes and is stored in the "djgpp" directory.

  - There are no user visible changes.

  - The port has been configured and compiled using the small djmake.sh script
    stored in the "djgpp" directory.  An inspection of the scripts shows the
    configuration parameters that have been used.

  - Except for one or two test programs that cannot be build all other test
    programs can be compiled and their checks pass flawlessly.

  - The library requires an entropy source to seed the hash function.  This can
    be a driver that will be addressed either as /dev/urandom or /dev/random.
    On plain DOS one such driver, NOISE.SYS, can be obtained from:
      http://web.archive.org/web/20051124224824/http://www.rahul.net/dkaufman/
    as:
      http://web.archive.org/web/20051124224824/http://www.rahul.net/dkaufman/noise063a2.zip
    Please read the instructions carefully.  This driver works on DOS
    and may be on some versions of Windows but it does not work for all
    versions of Windows.  For XP it does not work and I have found no
    replacement.  Alternatively if no driver is available, then some
    pseudo random data will be created by the library itself.

  - To configure and compile this port at least the following version of
    Bash, Make, pkg-config and perl are required:
      http://ftp.delorie.com/pub/djgpp/current/v2gnu/bsh4253b.zip
      http://ftp.delorie.com/pub/djgpp/current/v2gnu/mak43br2.zip
      http://ftp.delorie.com/pub/djgpp/current/v2gnu/perl588b.zip
      http://ftp.delorie.com/pub/djgpp/current/v2tk/pkc023b.zip
    No previous versions will work nor are supported.  Any future version
    should work.

  - To build and use this port the latest DJGPP ports of the following
    libraries are required:
      http://ftp.delorie.com/pub/djgpp/current/v2apps/bz2-108a.zip
      http://ftp.delorie.com/pub/djgpp/current/v2apps/lzlb112a.zip
      http://ftp.delorie.com/pub/djgpp/current/v2apps/xz-525a.zip
      http://ftp.delorie.com/pub/djgpp/current/v2tk/zlb1212b.zip

      http://ftp.delorie.com/pub/djgpp/current/v2tk/xml2914b.zip

      http://ftp.delorie.com/pub/djgpp/current/v2tk/ltha111b.zip
      http://ftp.delorie.com/pub/djgpp/current/v2tk/lme3100b.zip
      http://ftp.delorie.com/pub/djgpp/current/v2tk/logg135b.zip
      http://ftp.delorie.com/pub/djgpp/current/v2tk/lops131b.zip
      http://ftp.delorie.com/pub/djgpp/current/v2tk/lvbs137b.zip
      http://ftp.delorie.com/pub/djgpp/current/v2tk/x264-1b.zip
    and must be installed.  All those libraries may introduce even more
    dependencies from other libraries that will have to be resolved by
    installing them.

  - Network support may be possible using the latest DJGPP port of the Watt-32
    library (aka wat3211b.zip) but will require some more porting effort that
    I have not done.

  - The port has been configured and compiled on WinXP SP3 and Win98SE.
    It has not been possible to compile it on MSDOS 6.22 with DOSLFN v0.41f.
    Due to the use of long file names it will not be possible to configure
    and compile without LFN support.  To compile the port, gcc1210, gpp1210
    and bnu2351b are required.  It was not possible to compile it using
    gcc1030 and gpp1030.

  - Compiling and running the test suite on Win98SE installed on a virtual
    machine takes approximately 60 min.

  - The html formatted documentation has been created on a Linux system
    because the port of makeinfo is to old and does not provide the required
    features.

  - Due to the size of the binaries and libraries, the port has been splited
    into a binary archive and a library archive.
    The binary archive contains the programs ffmpeg, a command line toolbox
    to manipulate, convert and stream multimedia content and ffprobe,a simple
    analysis tool to inspect multimedia content.  ffplay, a minimalistic
    multimedia player is not provided because it requires a port of the sdl2
    library that is not available.  May be it is possible to replace the sdl2
    library by the last working DJGPP port of the Allegro library but I will
    certainly not intend to port ffplay to Allegro.

  - The library archive is not SFN clean.  There is a major number of header
    files that do not match the 8.3 file name rule of DOS.  This will not be
    fixed.  Inventing new DOS conforming SFN that will never find their way
    upstream is a waiste of time.  If some one wants to use this library on
    plain DOS, he will have to install and use a LFN driver.

  - This port shall be a "prove of work", in the sense that it is still
    possible to use DJGPP on Win98 or WinXP to "natively" configure and
    compile a software package of the complexity like this one.  It is
    clear that the porter will need enough skills and insight in DJGPP,
    MSDOS/FreeDOS and Posix.  In general, modern software packages like
    this one can no longer be compiled on plain DOS no matter if a LFN
    driver is installed or not.  The inherent limitation of plain DOS is
    not only the SFN but also that the maximal path name length is limited
    to 64 characters.  This length gets some times exceeded by Posix tools
    used to configure and compile the sources, when these tools create
    temporary directories and files during the build process.  Apart from
    this inconvenience the time to configure and compile the sources is
    dramaticaly longer on a plain DOS system than on a Windows system.
    It is also clear that it may become necessary to port a lot of auxiliary
    libraries and tools to be able to build a product like this one.  E.g.:
    the configure script requires pkg-config to check for the existence of
    the different auxiliary libraries.  Either the configuration script must
    be adjusted for DJGPP or pkg-config must be ported.  Or the alternative
    of cross-compiling can be chosen.
    Last but not least, I am not an user of FFmpeg neither on Linux nor on
    DOS/Windows.  I am also not lobbying for using it on plain DOS.  In my
    opinion, it makes no sense at all doing multi-media stuff on plain DOS
    nowadays.  I even do not know if this port performs well at all.  This
    means that if this port does not work as you expect, you are alone.
    You can report issues and I may try to fix them or may not.  But in
    general I am not interested in this topic anymore and the only purpose
    of this exercise was to demonstrate that software like this can still
    be build using DJGPP as native building environment.  For the people
    interested in the output of the build process, the following output
    files have been stored in the "djgpp" directory of the source archive:
      _c_log.txt:  console output of the configuration step.
      _m_log.txt:  console output of the compilation step.
      _mc_log.txt: console output of the check step.


  As usual, all djgpp specific files (diffs, README files, etc.) are stored
  in the "djgpp" directory.  The sources will be configured to be build in
  the "0build" directory under the top src directory using the djmake.sh
  script.

  Please read the docs to become familiar with this product.


  Here is an extract of the CHANGES file showing the user visible changes
  from the last port (FFmpeg 0.0.0) to this one:

-------------------------------------------------------------------------------

This is the first port.  Read the documentation.


-------------------------------------------------------------------------------




  The port consists of the usual three packages that have been produced using
  djdev20X (CVS repository code) and can be downloaded from ftp.delorie.com
  and mirrors as (time stamp 2022-12-31):


    FFmpeg 5.1.2 headers, library and man format documentation:
    http://ftp.delorie.com/pub/djgpp/current/v2tk/ffmg512a.zip

    FFmpeg 5.1.2 binaries and man format documentation:
    http://ftp.delorie.com/pub/djgpp/current/v2tk/ffmg512b.zip

    FFmpeg 5.1.2 source:
    http://ftp.delorie.com/pub/djgpp/current/v2tk/ffmg512s.zip



  Send FFmpeg specific bug reports to
  <https://ffmpeg.org/bugreports.html>
  Send suggestions and bug reports concerning the DJGPP port
  to comp.os.msdos.djgpp or <djgpp AT delorie DOT com>.


Enjoy.

    Guerrero, Juan Manuel <juan DOT guerrero AT gmx DOT de>

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019