Skip to content

Consider enabling msmpeg4v3 and wmv3 decoders (legacy MS video in old MKV/AVI rips) #3

Description

@cmcpherson274

The curated decoder list in build.sh (--disable-decoders + explicit enables) covers the
modern set plus mpeg2video/mpeg4/vc1 for the legacy tail. Two adjacent legacy codecs
are absent and still appear in older libraries:

  • msmpeg4v3 (MS-MPEG4 v3 / "DivX 3.11") — common in pre-2005 AVI rips. A client that
    claims MPEG-4-family support and routes such a file to the engine gets
    avcodec_find_decoder = nil → VideoDecoderError.unsupportedCodec(id: 16) at load.
  • wmv3 (WMV9) — the VC-1 sibling; --enable-decoder=vc1 does not register the separate
    wmv3 decoder, so .wmv-era MKV remuxes fail the same way while plain VC-1 works.

Both are native libavcodec decoders under FFmpeg's LGPL-2.1-or-later terms and require no
external library or GPL flag. In FFmpeg n8.1.2, wmv3_decoder_select="vc1_decoder" (already
enabled), while msmpeg4v3_decoder_select="msmpeg4dec" reuses the already-selected
H.263/MPEG-video core but adds the MSMPEG4 decoder objects. I have not measured the
XCFramework size delta, but it should be modest.

Happy to test a build. For context: we hit the msmpeg4v3 case on a real library item while
running a format-matrix sweep against AetherEngine 6.21.0 (87868c1c), which resolves
FFmpegBuild 2.4.2 (35f393fd). The wmv3 gap is build/source evidence rather than a
fixture repro; our library does not currently have a WMV3 sample. Our client now excludes
both codecs from the engine's claimed envelope, so this is a nice-to-have for coverage
parity with libVLC-class players rather than a defect report.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions