public void CopyTo(MediaEncoderDeshakerSegmentSettings target)
 {
     ExtensionMethods.CopyAll <MediaEncoderDeshakerSegmentSettings>(this, target);
 }
        public string ToString(int segment)
        {
            if (segment < 0 || segment >= Segments.Count())
            {
                throw new ArgumentException("Invalid segment", "segment");
            }

            StringBuilder ParamChain = new StringBuilder();

            for (int i = 0; i < 66; i++)
            {
                if (i > 0)
                {
                    ParamChain.Append("|");
                }
                ParamChain.Append("{");
                ParamChain.Append(i);
                ParamChain.Append("}");
            }
            MediaEncoderDeshakerSegmentSettings s = Segments[segment];

            return(string.Format(ParamChain.ToString(),
                                 Version,
                                 Pass,
                                 s.BlockSize,
                                 s.DifferentialSearchRange,
                                 SourcePixelAspectRatio,
                                 SourcePixelAspectSelection,
                                 DestinationPixelAspectValue,
                                 DestinationPixelAspectSelection,
                                 DestinationWidth,
                                 DestinationHeight,
                                 (int)s.Scale,
                                 (int)s.UsePixels,
                                 MotionSmoothPanX,
                                 MotionSmoothPanY,
                                 MotionSmoothRotation,
                                 MotionSmoothZoom,
                                 s.DiscardMotion,
                                 VideoOutput,
                                 (int)EdgeCompensation,
                                 Resampling,
                                 s.SkipBadFrame,
                                 s.InitialSearchRange,
                                 s.DiscardBadMotion,
                                 s.DiscardBadMotion2,
                                 LogFile,
                                 AppendToFile ? 1 : 0,
                                 s.IgnoreOutside ? 1 : 0,
                                 s.IgnoreOutsideLeft,
                                 s.IgnoreOutsideRight,
                                 s.IgnoreOutsideTop,
                                 s.IgnoreOutsideBottom,
                                 s.IgnoreInside ? 1 : 0,
                                 s.IgnoreInsideLeft,
                                 s.IgnoreInsideRight,
                                 s.IgnoreInsideTop,
                                 s.IgnoreInsideBottom,
                                 Interlaced ? 1 : 0,
                                 InterlacedUpperFieldFirst ? 1 : 0,
                                 ExtraZoomFactor,
                                 MaxPanX,
                                 MaxPanY,
                                 MaxRotation,
                                 MaxZoom,
                                 FillBordersWithPreviousFrames ? 1 : 0,
                                 FillBordersWithFutureFrames ? 1 : 0,
                                 FillBordersWithPreviousFramesCount,
                                 FillBordersWithFutureFramesCount,
                                 IgnoreOutsideLetAreaFollowMotion ? 1 : 0,
                                 s.DeepAnalysis,
                                 s.RollingShutter ? 1 : 0,
                                 GenerateInterlacedProgressiveVideo ? 1 : 0,
                                 UseSourceProperties ? 1 : 0,
                                 SoftBorders ? 1 : 0,
                                 ExtrapolateColorsIntoBorder ? 1 : 0,
                                 SoftBorderEdgeTransitionWidth,
                                 s.DiscardAbsoluteMotion,
                                 s.RememberDiscardedAreasToNextFrame ? 1 : 0,
                                 s.RollingShutterAmount,
                                 s.DetectRotation ? 1 : 0,
                                 s.DetectZoom ? 1 : 0,
                                 s.DetectScenesTreshold,
                                 AdaptiveZoomSmoothness,
                                 AdaptiveZoomAmount,
                                 s.DiscardMotionDiff,
                                 s.DetectScenes ? 1 : 0,
                                 UseColorMask ? 1 : 0,
                                 MaskColor));
        }