Electron's FFmpeg library: corresponding source

WHAT THIS COVERS
ListingReady 0.5.1 and Real Estate Reel Maker 1.0.0 are built on Electron, and
Electron includes a separate library named ffmpeg.dll. This package is the source
for that file. It does not cover the other FFmpeg programs in Real Estate Reel
Maker (resources/ffmpeg); those have their own source package.

ffmpeg.dll is licensed under LGPL-2.1-or-later (COPYING.LGPLv2.1 and
FFMPEG-LICENSE.md). The app makers did not modify it: it is the file in the
official Electron release, recorded with its SHA-256 in SOURCE_MANIFEST.json.

ListingReady 0.5.1            Electron 44.5.1   Chromium 152.0.7977.130
Real Estate Reel Maker 1.0.0  Electron 44.10.0  Chromium 152.0.7977.169

Both Chromium versions use the same FFmpeg source, Chromium's FFmpeg fork at commit
2b68d2babae73714846961fb0ee47e3b3d2e39a9.

CONTENTS
ffmpeg-2b68d2babae73714846961fb0ee47e3b3d2e39a9.tar.gz
    The FFmpeg source and its build files (BUILD.gn, chromium/config).
    Windows settings: chromium/config/Chrome/win/x64/config.h
electron/<version>/
    Electron's build arguments (build/args/all.gn, build/args/release.gn), its one
    FFmpeg patch (patches/ffmpeg) and its DEPS file. That patch changes a macOS
    linker flag only.
chromium/build.tar.gz, chromium/tools-generate_stubs.tar.gz,
chromium/third_party-nasm-525a09a813be0f75b646ee93fc2a31c27b87d722.tar.gz
    Chromium build scripts used by FFmpeg's BUILD.gn. They are the same in both
    Chromium versions. chromium/<version>/DEPS records the pinned revisions.
chromium/third_party-opus.tar.gz
    The Opus library (BSD licence), which FFmpeg's BUILD.gn links into ffmpeg.dll.
SOURCE_MANIFEST.json
    The origin and SHA-256 of every file here.

Electron's public repository at the version tag, and Chromium's at the version tag,
hold the rest of the build system: https://github.com/electron/electron and
https://chromium.googlesource.com/chromium/src

BUILD
Follow Electron's build instructions at the matching tag, in
docs/development/build-instructions-gn.md, for the prerequisites and a source
checkout. The checkout brings in the Chromium version and the FFmpeg commit above
and applies Electron's patch. Then, from the src folder on Windows x64:

    gn gen out/Release --args="import(\"//electron/build/args/release.gn\") target_cpu=\"x64\""
    autoninja -C out/Release third_party/ffmpeg

The result is out/Release/ffmpeg.dll. To change FFmpeg, edit third_party/ffmpeg before
building. Build tools and compilers are prerequisites and are not included.

Electron's own CI also uses remote-build options that are not public. These steps
are the route to a compatible library, not a claim of a byte-identical rebuild of the
release file. They have not been run for this package.

USE A MODIFIED LIBRARY
1. Close the app and back up ffmpeg.dll in its program folder.
2. Replace ffmpeg.dll with your build, keeping the same file name and exported
   functions (chromium/ffmpeg.sigs inside the FFmpeg source lists them).
3. Start the app again.

The app does not check this file. Your projects and licence data are stored
separately. Microsoft Store installs use a protected, read-only folder, so use the
Setup or portable download from mrusman.com for this.
