This is the FFmpeg 9.0.2 source, distributed to satisfy the LGPL.
It is upstream's n9.0.2 tag with the patches in zshot-patches/
applied. Diff this tree against that tag to confirm: apart from this file and
zshot-patches/ itself, the only differences are those patches.

The patches only add functions, so that Chromium (which ZShot embeds through
CEF) can use these same libraries in place of its own copy of FFmpeg. They
change no existing FFmpeg API or behavior.

How it was compiled
-------------------
Prebuilt, per-platform shared libraries compiled from exactly this source are
published at:

  https://ffmpeg.zshot-app.com/ffmpeg-zshot-bin-9.0.2-<os>-<arch>.tar.gz
      os = darwin | linux       arch = arm64 | x86_64

Each of those archives contains a ZSHOT_BUILD_INFO.txt recording the exact
'ffmpeg -buildconf' configure line for that platform. The same configure line
is embedded in every shared library and is printed at runtime by:

  zshot --open-source-licenses

Substituting your own FFmpeg libraries
--------------------------------------
ZShot loads the FFmpeg shared libraries by directory adjacency, so you may
replace them with your own builds with no renaming or relinking required:

  * macOS:  zshot_app.app/Contents/Frameworks/
  * Linux:  alongside the zshot binary (e.g. /usr/lib/zshot/)

Your libraries must also provide what the patches in zshot-patches/ add
(currently av_stream_get_first_dts() in libavformat): Chromium, embedded
through CEF, links these same libraries, and ZShot will not start without
them. Apply the patches to your FFmpeg source before building. They are also
published individually, next to the archives above, as:

  https://ffmpeg.zshot-app.com/ffmpeg-zshot-patch-9.0.2-<patch name>

For media playback in web pages to keep working, also enable the decoders and
demuxers Chromium uses, as the configure line in each binary archive's
ZSHOT_BUILD_INFO.txt (see above) does.

On macOS, after replacing a library inside the app bundle you must
clear the Gatekeeper quarantine and potentially re-sign it:

  xattr -dr com.apple.quarantine zshot_app.app
  codesign --force --deep --sign - zshot_app.app

Verifying the substitution works (LGPL canary)
----------------------------------------------
To confirm for yourself that ZShot really does load replacement libraries --
without trusting our word for it -- we publish an ABI-identical "canary" build
of these same libraries, compiled from this exact source with one cosmetic
change: the FFmpeg version is marked "LGPLCANARY".

  https://ffmpeg.zshot-app.com/ffmpeg-zshot-canary-9.0.2-<os>-<arch>.tar.gz
      os = darwin | linux       arch = arm64 | x86_64

Drop its libraries in using the directory-adjacency rule above, then run:

  zshot --open-source-licenses

The reported FFmpeg configuration line will contain "--extra-version=LGPLCANARY"
-- visible proof that the running app loaded your substituted libraries rather
than any statically bound copy.
