createEncoder method

  1. @override
Future<PlatformEncoder?> createEncoder(
  1. EncoderConfig config, {
  2. BackendContext? context,
})
override

Implementation

@override
Future<PlatformEncoder?> createEncoder(
  EncoderConfig config, {
  BackendContext? context,
}) async {
  if (!_videoCodecs.contains(config.codec)) return null;
  if (!WebCapability.hasVideoEncoder) return null;

  // Probe the browser for this specific codec+resolution combination.
  final codecStr = config.backendOptions['codecString'] ??
      _defaultCodecString(config.codec);
  if (codecStr == null) return null;

  final supported = await WebCapability.isVideoEncoderSupported(
    codecStr,
    width: config.width,
    height: config.height,
  );
  if (!supported) return null;

  return WebCodecsVideoEncoder.create(config);
}