/// <summary> /// Returns true if and only if the settings mean to capture transparency, the input source supports it, and the /// codec preset also allows it. /// </summary> /// <returns></returns> internal bool WillIncludeAlpha() { // GameViewInput does not support transparency var codecFormat = (ProResOut.ProResCodecFormat)encoderPresetSelected; bool codecFormatSupportsTransparency = ProResPresetExtensions.CodecFormatSupportsTransparency(codecFormat); return(CaptureAlpha && !(ImageInputSettings is GameViewInputSettings) && codecFormatSupportsTransparency); }
internal override void SelfAdjustSettings() { var selectedInput = m_ImageInputSelector.Selected; if (selectedInput == null) { return; } var iis = selectedInput as StandardImageInputSettings; if (iis != null) { iis.maxSupportedSize = OutputFormat == VideoRecorderOutputFormat.MP4 ? ImageHeight.x2160p_4K : ImageHeight.x4320p_8K; if (iis.outputImageHeight != ImageHeight.Window && iis.outputImageHeight != ImageHeight.Custom) { if (iis.outputImageHeight > iis.maxSupportedSize) { iis.outputImageHeight = iis.maxSupportedSize; } } } var cbis = selectedInput as ImageInputSettings; if (cbis != null) { var encoder = encodersRegistered[encoderSelected]; if (encoder is ProResEncoderRegister p) { var codecFormat = (ProResOut.ProResCodecFormat)encoderPresetSelected; bool codecFormatSupportsTransparency = ProResPresetExtensions.CodecFormatSupportsTransparency(codecFormat); cbis.RecordTransparency = CaptureAlpha && codecFormatSupportsTransparency; } else { switch (OutputFormat) { case VideoRecorderOutputFormat.WebM: cbis.RecordTransparency = CaptureAlpha; break; case VideoRecorderOutputFormat.MP4: default: cbis.RecordTransparency = false; break; } } } m_ImageInputSelector.ForceEvenResolution(OutputFormat == VideoRecorderOutputFormat.MP4); }