Vixen
02b45cc4
csharp
public static class VideoCodecRegistry

Which codecs this process has.

No guide page documents this yet — the page shows what the code says about itself.

Remarks

A registry rather than a switch, because the engine ships one codec. UncompressedVideoCodec is to video what PcmStreamDecoder is to audio: the implementation that needs no codec at all, and the reason a game with a single uncompressed logo sting carries no decoder. A game that needs VP9 registers one — its own, a package, a native binding — and everything above this seam is unchanged.

Static, and therefore process-wide. The alternative is threading a registry through every call that opens a video, for a decision no application makes twice. It is guarded by a lock because registration happens during start-up on whatever thread got there first, and lookups happen on decode threads.

Methods (4)

  • public static void Register(IVideoCodecFactory factory)

    Adds a codec, ahead of everything already registered.

  • public static bool CanDecode(in VideoTrackInfo track)

    Whether anything registered claims a track, without making a codec for it.

  • public static bool TryCreate(in VideoTrackInfo track, out IVideoCodec? codec)

    Finds a codec for a track.

  • public static IReadOnlyList<string> RegisteredNames()

    The names of every registered codec, for a log line that explains a failure.

Used by (3)

  • VideoPlaybackVixen.Video
  • WebMVideoStreamDecoderVixen.Video
  • WebMVideoStreamDecoderTestsVixen.Video.Tests