{
  "schemaVersion": 1,
  "component": "MomentumTranscodeHelper",
  "purpose": "Delivery encoder for the containers, codecs and subtitle formats AVFoundation cannot write. Runs as a separate helper process; no libav* symbol is linked into cinemaOS itself.",
  "targetArchitecture": "arm64",
  "linkage": "static",
  "licensePosition": {
    "summary": "FFmpeg is built WITHOUT --enable-gpl. No GPL component is present: x264, x265, xvid and every other GPL-only library are excluded. The helper is therefore LGPL-2.1-or-later (with LGPL-3.0 applying to the --enable-version3 components), distributed as a separate executable alongside proprietary cinemaOS code.",
    "gplComponentsPresent": false,
    "configureFlags": [
      "--arch=arm64",
      "--enable-neon",
      "--disable-shared",
      "--enable-static",
      "--enable-version3",
      "--disable-doc",
      "--disable-ffplay",
      "--disable-debug",
      "--enable-ffmpeg",
      "--enable-ffprobe",
      "--enable-videotoolbox",
      "--enable-audiotoolbox",
      "--enable-libopus",
      "--enable-libmp3lame",
      "--enable-libvpx",
      "--enable-libsvtav1",
      "--enable-libdav1d",
      "--enable-libopenjpeg"
    ],
    "obligations": [
      "Ship every license text in Packaging/TranscodeHelper/licenses/ inside the app bundle at Contents/Resources/TranscodeHelper/.",
      "Publish a written offer for the complete corresponding source of the LGPL components, at the pinned versions and hashes recorded below.",
      "Because the helper is statically linked, LGPL-2.1 section 6a is satisfied by publishing the pinned sources and this exact build recipe, which together allow a user to rebuild a modified helper and substitute it."
    ]
  },
  "sources": [
    {
      "name": "ffmpeg",
      "version": "7.1",
      "url": "https://ffmpeg.org/releases/ffmpeg-7.1.tar.gz",
      "license": "LGPL-2.1-or-later",
      "licenseFile": "licenses/LICENSE-FFmpeg-LGPLv2.1.txt",
      "sha256": "42a7dc0d1583885d1b8f6559fa7ce28f97acafea6803de6a8f73e3ba229348bd"
    },
    {
      "name": "opus",
      "version": "1.5.2",
      "url": "https://downloads.xiph.org/releases/opus/opus-1.5.2.tar.gz",
      "license": "BSD-3-Clause",
      "licenseFile": "licenses/LICENSE-opus.txt",
      "sha256": "65c1d2f78b9f2fb20082c38cbe47c951ad5839345876e46941612ee87f9a7ce1"
    },
    {
      "name": "lame",
      "version": "3.100",
      "url": "https://downloads.sourceforge.net/project/lame/lame/3.100/lame-3.100.tar.gz",
      "license": "LGPL-2.0-or-later",
      "licenseFile": "licenses/LICENSE-lame-LGPLv2.txt",
      "sha256": "ddfe36cab873794038ae2c1210557ad34857a4b6bdc515785d1da9e175b1da1e"
    },
    {
      "name": "libvpx",
      "version": "1.14.1",
      "url": "https://github.com/webmproject/libvpx/archive/refs/tags/v1.14.1.tar.gz",
      "license": "BSD-3-Clause",
      "licenseFile": "licenses/LICENSE-libvpx.txt",
      "sha256": "901747254d80a7937c933d03bd7c5d41e8e6c883e0665fadcb172542167c7977"
    },
    {
      "name": "SVT-AV1",
      "version": "2.2.1",
      "url": "https://gitlab.com/AOMediaCodec/SVT-AV1/-/archive/v2.2.1/SVT-AV1-v2.2.1.tar.gz",
      "license": "BSD-3-Clause",
      "licenseFile": "licenses/LICENSE-SVT-AV1.txt",
      "patentsFile": "licenses/PATENTS-SVT-AV1.txt",
      "sha256": "d02b54685542de0236bce4be1b50912aba68aff997c43b350d84a518df0cf4e5"
    },
    {
      "name": "dav1d",
      "version": "1.4.3",
      "url": "https://code.videolan.org/videolan/dav1d/-/archive/1.4.3/dav1d-1.4.3.tar.gz",
      "license": "BSD-2-Clause",
      "licenseFile": "licenses/LICENSE-dav1d.txt",
      "sha256": "88a023e58d955e0886faf49c72940e0e90914a948a8e60c1326ce3e09e7a6099"
    },
    {
      "name": "openjpeg",
      "version": "2.5.2",
      "url": "https://github.com/uclouvain/openjpeg/archive/refs/tags/v2.5.2.tar.gz",
      "license": "BSD-2-Clause",
      "licenseFile": "licenses/LICENSE-openjpeg.txt",
      "sha256": "90e3896fed910c376aaf79cdd98bdfdaf98c6472efd8e1debf0a854938cbda6a"
    }
  ],
  "knownGaps": [
    {
      "format": "Cineon",
      "reason": "FFmpeg ships a Cineon decoder but no encoder.",
      "resolution": "cinemaOS writes Cineon itself. It is a documented 10-bit log format in the DPX/SMPTE 268M family; the native writer is real, not a renamed DPX."
    },
    {
      "format": "AVC-Intra / XAVC",
      "reason": "Spec-conformant AVC-Intra Class 50/100/200 requires an H.264 encoder with intra-class SPS/PPS conformance. The only practical one is x264, which is GPL and therefore excluded.",
      "resolution": "cinemaOS offers all-intra H.264 in MXF and labels it exactly that. It must never be presented as certified AVC-Intra."
    }
  ]
}
