コード例 #1
0
        /// <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);
        }
コード例 #2
0
        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);
        }