Esempio n. 1
0
        private static string GetFFMpegFilterString(VideoFilterDescriptor filterDesc)
        {
            switch (filterDesc.Type)
            {
            case VideoFilterType.HFlip: return("hflip");

            case VideoFilterType.VFlip: return("vflip");

            case VideoFilterType.Warm: return("curves=r='0/0 .50/.53 1/1':g='0/0 0.50/0.48 1/1':b='0/0 .50/.46 1/1'");

            case VideoFilterType.Cold: return("curves=r='0/0 .50/.46 1/1':g='0/0 0.50/0.51 1/1':b='0/0 .50/.54 1/1'");

            case VideoFilterType.Dark: return("curves=preset=darker");

            case VideoFilterType.Light: return("curves=preset=lighter");

            case VideoFilterType.Vintage: return("curves=preset=vintage");

            case VideoFilterType.Sepia: return("colorchannelmixer=.393:.769:.189:0:.349:.686:.168:0:.272:.534:.131");

            case VideoFilterType.Grayscale: return("eq=saturation=0");

            default:
                return(null);
            }
        }
Esempio n. 2
0
        private IDirectXFilterStage Create(VideoFilterDescriptor desc)
        {
            switch (desc.Type)
            {
            case VideoFilterType.Warm:
                return(DirectXFilterStageLUT.Create(_dx, "warm.png"));

            case VideoFilterType.Cold:
                return(DirectXFilterStageLUT.Create(_dx, "cool.png"));

            case VideoFilterType.Dark:
                return(new DirectXFilterStageColorCorrection(_dx, new ColorCorrectionConfig(Brightness: 0.4)));

            case VideoFilterType.Light:
                return(new DirectXFilterStageColorCorrection(_dx, new ColorCorrectionConfig(Brightness: 0.6)));

            case VideoFilterType.Vintage:
                return(DirectXFilterStageLUT.Create(_dx, "vintage.png", SingleFrameType.Png, NormalizeValue(desc.Value)));

            case VideoFilterType.Sepia:
                return(DirectXFilterStageLUT.Create(_dx, "sepia.png", SingleFrameType.Png, NormalizeValue(desc.Value)));

            case VideoFilterType.Grayscale:
                return(DirectXFilterStageLUT.Create(_dx, "grayscale.png", SingleFrameType.Png, NormalizeValue(desc.Value)));

            case VideoFilterType.Contrast:
                return(new DirectXFilterStageColorCorrection(_dx, new ColorCorrectionConfig(Contrast: NormalizeValue(desc.Value))));

            case VideoFilterType.Brightness:
                return(new DirectXFilterStageColorCorrection(_dx, new ColorCorrectionConfig(Brightness: NormalizeValue(desc.Value))));

            case VideoFilterType.Saturation:
                return(new DirectXFilterStageColorCorrection(_dx, new ColorCorrectionConfig(Saturation: NormalizeValue(desc.Value))));

            case VideoFilterType.Gamma:
                return(new DirectXFilterStageColorCorrection(_dx, new ColorCorrectionConfig(Gamma: NormalizeValue(desc.Value))));

            case VideoFilterType.Hue:
                return(new DirectXFilterStageColorCorrection(_dx, new ColorCorrectionConfig(HueShift: NormalizeValue(desc.Value))));

            case VideoFilterType.Opacity:
                return(new DirectXFilterStageColorCorrection(_dx, new ColorCorrectionConfig(Opacity: NormalizeValue(desc.Value))));

            case VideoFilterType.Sharpness:
                return(new DirectXFilterStageSharpness(_dx, NormalizeValue(desc.Value)));

            case VideoFilterType.UserLut:
                return(DirectXFilterStageLUT.Create(_dx, desc.Data.Buffer, desc.Data.Type, NormalizeValue(desc.Value)));

            case VideoFilterType.Azure:
                return(DirectXFilterStageLUT.Create(_dx, "Azure.png", SingleFrameType.Png, NormalizeValue(desc.Value)));

            case VideoFilterType.B_W:
                return(DirectXFilterStageLUT.Create(_dx, "B_W.png", SingleFrameType.Png, NormalizeValue(desc.Value)));

            case VideoFilterType.Chill:
                return(DirectXFilterStageLUT.Create(_dx, "Chill.png", SingleFrameType.Png, NormalizeValue(desc.Value)));

            case VideoFilterType.Pastel:
                return(DirectXFilterStageLUT.Create(_dx, "Pastel.png", SingleFrameType.Png, NormalizeValue(desc.Value)));

            case VideoFilterType.Romantic:
                return(DirectXFilterStageLUT.Create(_dx, "Romantic.png", SingleFrameType.Png, NormalizeValue(desc.Value)));

            case VideoFilterType.Sapphire:
                return(DirectXFilterStageLUT.Create(_dx, "Sapphire.png", SingleFrameType.Png, NormalizeValue(desc.Value)));

            case VideoFilterType.Wine:
                return(DirectXFilterStageLUT.Create(_dx, "Wine.png", SingleFrameType.Png, NormalizeValue(desc.Value)));

            default:
                return(null);
            }
        }