# Video Effects Complete Reference

# Overview

The DirectShow Processing Filters Pack provides 35+ real-time video effects that can be applied individually or chained together. This reference documents all available effects, their parameters, and usage.

# Effect Categories

  • Text and Graphics - Text logos, graphic overlays
  • Color Filters - Red, green, blue, greyscale filters
  • Image Adjustment - Brightness, contrast, saturation
  • Spatial Effects - Flip, mirror, rotate
  • Artistic Effects - Marble, solarize, posterize, mosaic
  • Noise and Quality - Denoising algorithms (CAST, adaptive, mosquito)
  • Deinterlacing - Blend, triangle, CAVT methods
  • Creative Effects - Blur, shake, spray, invert

# Text and Graphics Effects

Renders text overlay on video with extensive customization options.

Effect Type: CVFEffectType.ef_text_logo

Parameters (CVFTextLogoMain structure):

Parameter Type Description Default
x int X position (pixels) 0
y int Y position (pixels) 0
text BSTR Text to display ""
font_name BSTR Font family name "Arial"
font_size int Font size (points) 12
font_color COLORREF Text color (RGB) 0xFFFFFF (white)
font_italic BOOL Italic style FALSE
font_bold BOOL Bold style FALSE
font_underline BOOL Underline style FALSE
font_strikeout BOOL Strikethrough style FALSE
transparent_bg BOOL Transparent background TRUE
bg_color COLORREF Background color 0x000000 (black)
transp DWORD Transparency level (0-255) 255 (opaque)
align CVFTextAlign Text alignment al_left
antialiasing CVFTextAntialiasingMode Anti-aliasing mode am_AntiAlias
gradient BOOL Enable gradient FALSE
gradientMode CVFTextGradientMode Gradient direction gm_horizontal
gradientColor1 COLORREF Gradient start color 0xFFFFFF
gradientColor2 COLORREF Gradient end color 0x000000
borderMode CVFTextBorderMode Border/outline style bm_none
innerBorderColor COLORREF Inner border color 0x000000
outerBorderColor COLORREF Outer border color 0xFFFFFF
innerBorderSize int Inner border width 1
outerBorderSize int Outer border width 1
DateMode BOOL Display current date/time FALSE
DateMask BSTR Date format string ""

Text Alignment Options:

  • al_left - Left-aligned
  • al_center - Center-aligned
  • al_right - Right-aligned

Border Modes:

  • bm_none - No border
  • bm_inner - Inner outline
  • bm_outer - Outer outline
  • bm_inner_and_outer - Both sides
  • bm_embossed - 3D embossed effect
  • bm_outline - Standard outline
  • bm_filled_outline - Solid outline
  • bm_halo - Glow effect

Example (C++):

CVFEffect effect;
effect.Type = ef_text_logo;
effect.Enabled = TRUE;
effect.TextLogo.x = 10;
effect.TextLogo.y = 10;
effect.TextLogo.text = SysAllocString(L"Live Stream");
effect.TextLogo.font_name = SysAllocString(L"Arial");
effect.TextLogo.font_size = 32;
effect.TextLogo.font_color = RGB(255, 255, 255);
effect.TextLogo.font_bold = TRUE;
effect.TextLogo.borderMode = bm_outline;
effect.TextLogo.outerBorderColor = RGB(0, 0, 0);
effect.TextLogo.outerBorderSize = 2;

pEffects->add_effect(effect);

Overlays an image (logo, watermark) on video.

Effect Type: CVFEffectType.ef_graphic_logo

Parameters (CVFGraphicLogoMain structure):

Parameter Type Description
x UINT32 X position (pixels)
y UINT32 Y position (pixels)
Filename BSTR Path to image file (BMP, PNG, JPG)
hBmp int Handle to bitmap (alternative to filename)
StretchMode CVFStretchMode How to scale image
TranspLevel int Transparency level (0-255)
UseColorKey BOOL Enable color key transparency
ColorKey COLORREF Color to make transparent

Stretch Modes:

  • sm_none - Original size
  • sm_stretch - Stretch to fit
  • sm_letterbox - Fit with aspect ratio
  • sm_crop - Crop to fit

Example (C#):

var effect = new CVFEffect
{
    Type = (int)CVFEffectType.ef_graphic_logo,
    Enabled = true,
    GraphicLogo = new CVFGraphicLogoMain
    {
        Filename = @"C:\Images\logo.png",
        x = 20,
        y = 20,
        StretchMode = (int)CVFStretchMode.sm_none,
        TranspLevel = 200,
        UseColorKey = false
    }
};

effectsInterface.add_effect(effect);

# Color Filter Effects

# ef_blue

Applies blue color filter (enhances blue, reduces other colors).

Effect Type: CVFEffectType.ef_blue

Parameters:

  • pAmountI - Filter intensity (0-100, default: 50)

Use Cases:

  • Artistic blue tint
  • Cold atmosphere
  • Water/ocean scenes

# ef_green

Applies green color filter.

Effect Type: CVFEffectType.ef_green

Parameters:

  • pAmountI - Filter intensity (0-100)

Use Cases:

  • Night vision effect
  • Forest/nature scenes
  • Matrix-style effect

# ef_red

Applies red color filter.

Effect Type: CVFEffectType.ef_red

Parameters:

  • pAmountI - Filter intensity (0-100)

Use Cases:

  • Warm atmosphere
  • Sunset effect
  • Alert/danger scenes

# ef_filter_blue / ef_filter_blue_2

Advanced blue filtering with different algorithms.

Effect Type: CVFEffectType.ef_filter_blue or ef_filter_blue_2

Difference: ef_filter_blue_2 uses alternative color math for different visual results.


# ef_filter_green / ef_filter_green2

Advanced green filtering (two variants).

Effect Types: CVFEffectType.ef_filter_green, ef_filter_green2


# ef_filter_red / ef_filter_red2

Advanced red filtering (two variants).

Effect Types: CVFEffectType.ef_filter_red, ef_filter_red2


# ef_greyscale

Converts video to black and white.

Effect Type: CVFEffectType.ef_greyscale

Parameters: None (full greyscale conversion)

Use Cases:

  • Classic film look
  • Artistic effect
  • Reduce color noise

Example (C++):

CVFEffect effect;
effect.Type = ef_greyscale;
effect.Enabled = TRUE;
pEffects->add_effect(effect);

# ef_invert

Inverts all colors (negative image).

Effect Type: CVFEffectType.ef_invert

Parameters: None

Use Cases:

  • Artistic effect
  • X-ray appearance
  • Special visual effects

# Image Adjustment Effects

# ef_contrast

Adjusts image contrast.

Effect Type: CVFEffectType.ef_contrast

Parameters:

  • pAmountI - Contrast adjustment (-100 to +100)
    • Negative: Decrease contrast
    • Positive: Increase contrast
    • Default: 0 (no change)

Example (C#):

var effect = new CVFEffect
{
    Type = (int)CVFEffectType.ef_contrast,
    Enabled = true,
    pAmountI = 25  // Increase contrast by 25%
};

# ef_lightness

Adjusts overall brightness.

Effect Type: CVFEffectType.ef_lightness

Parameters:

  • pAmountI - Brightness adjustment (-100 to +100)
    • Negative: Darken
    • Positive: Brighten
    • Default: 0

# ef_darkness

Darkens the image (opposite of lightness).

Effect Type: CVFEffectType.ef_darkness

Parameters:

  • pAmountI - Darkness amount (0-100)

# ef_saturation

Adjusts color saturation.

Effect Type: CVFEffectType.ef_saturation

Parameters:

  • pAmountI - Saturation adjustment (-100 to +100)
    • -100: Greyscale
    • 0: Original colors
    • +100: Hyper-saturated

Use Cases:

  • Vivid colors for promotional content
  • Desaturate for muted look
  • Color grading

# Spatial Effects

# ef_flip_down

Flips video vertically (upside down).

Effect Type: CVFEffectType.ef_flip_down

Parameters: None

Use Cases:

  • Correct upside-down camera
  • Mirror effect with rotation
  • Special effects

# ef_flip_right

Flips video horizontally (mirror).

Effect Type: CVFEffectType.ef_flip_right

Parameters: None

Use Cases:

  • Webcam mirror mode
  • Correct mirrored camera
  • Symmetry effects

# ef_mirror_down

Creates vertical mirror effect (top reflects to bottom).

Effect Type: CVFEffectType.ef_mirror_down


# ef_mirror_right

Creates horizontal mirror effect (left reflects to right).

Effect Type: CVFEffectType.ef_mirror_right


# Artistic Effects

# ef_blur

Applies Gaussian blur to the image.

Effect Type: CVFEffectType.ef_blur

Parameters:

  • pAmountI - Blur amount (0-100)
  • pSizeI - Blur kernel size (1-20)

Use Cases:

  • Background blur (depth of field simulation)
  • Soften image
  • Privacy (blur faces, license plates)

Example (C++):

CVFEffect effect;
effect.Type = ef_blur;
effect.Enabled = TRUE;
effect.pAmountI = 50;  // 50% blur strength
effect.pSizeI = 10;    // 10-pixel blur radius
pEffects->add_effect(effect);

# ef_marble

Creates marble/swirl texture effect.

Effect Type: CVFEffectType.ef_marble

Parameters:

  • pAmountD - Effect intensity (0.0-1.0)
  • pTurbulenceI - Turbulence amount (0-100)
  • pScaleD - Scale factor (0.1-10.0)

Use Cases:

  • Artistic background
  • Transition effects
  • Psychedelic visuals

# ef_posterize

Reduces number of colors (poster art effect).

Effect Type: CVFEffectType.ef_posterize

Parameters:

  • pAmountI - Color levels (2-256)
    • Lower values: Fewer colors, more dramatic
    • Higher values: More colors, subtle effect

Use Cases:

  • Pop art style
  • Comic book effect
  • Reduce color depth

# ef_mosaic

Creates pixelated/mosaic effect.

Effect Type: CVFEffectType.ef_mosaic

Parameters:

  • pSizeI - Mosaic block size (2-100 pixels)

Use Cases:

  • Privacy (blur faces/identities)
  • Retro pixel art style
  • Censorship

Example (C#):

var effect = new CVFEffect
{
    Type = (int)CVFEffectType.ef_mosaic,
    Enabled = true,
    pSizeI = 15  // 15x15 pixel blocks
};

# ef_solarize

Creates solarization effect (partial color inversion).

Effect Type: CVFEffectType.ef_solorize (note spelling)

Parameters:

  • pAmountI - Solarization threshold (0-255)

Use Cases:

  • Artistic photography effect
  • Retro look
  • Creative transitions

# ef_spray

Creates paint spray/splatter effect.

Effect Type: CVFEffectType.ef_spray

Parameters:

  • pAmountI - Spray intensity (0-100)

# ef_shake_down

Simulates camera shake effect vertically.

Effect Type: CVFEffectType.ef_shake_down

Parameters:

  • pAmountI - Shake intensity (0-100)

Use Cases:

  • Earthquake effect
  • Impact vibration
  • Handheld camera simulation

# Noise Processing Effects

# ef_denoise_cast

CAST (Combined Adaptive Spatial-Temporal) denoising algorithm.

Effect Type: CVFEffectType.ef_denoise_cast

Parameters (CVFDenoiseCAST structure):

Parameter Range Default Description
TemporalDifferenceThreshold 0-255 16 Motion detection threshold
NumberOfMotionPixelsThreshold 0-16 0 Min pixels for motion
StrongEdgeThreshold 0-255 8 Edge preservation
BlockWidth 1-16 4 Processing block width
BlockHeight 1-16 4 Processing block height
EdgePixelWeight 0-255 128 Edge blending weight
NonEdgePixelWeight 0-255 16 Smooth area weight
GaussianThresholdY int 12 Luma noise threshold
GaussianThresholdUV int 6 Chroma noise threshold
HistoryWeight 0-255 192 Temporal filtering strength

Use Cases:

  • Low-light video cleanup
  • Webcam noise reduction
  • Compression artifact removal

Example (C++):

CVFEffect effect;
effect.Type = ef_denoise_cast;
effect.Enabled = TRUE;

// Moderate noise reduction
effect.DenoiseCAST.TemporalDifferenceThreshold = 20;
effect.DenoiseCAST.StrongEdgeThreshold = 10;
effect.DenoiseCAST.GaussianThresholdY = 15;
effect.DenoiseCAST.GaussianThresholdUV = 8;

pEffects->add_effect(effect);

# ef_denoise_adaptive

Adaptive noise reduction that adjusts to image content.

Effect Type: CVFEffectType.ef_denoise_adaptive

Parameters:

  • pDenoiseAdaptiveThreshold - Noise threshold (0-100)
  • pDenoiseAdaptiveBlurMode - Blur method (0-2)

Use Cases:

  • General noise reduction
  • Video cleanup
  • Quality enhancement

# ef_denoise_mosquito

Reduces mosquito noise (compression artifacts around edges).

Effect Type: CVFEffectType.ef_denoise_mosquito

Parameters:

  • pAmountI - Reduction strength (0-100)

Use Cases:

  • Clean up heavily compressed video
  • Remove MPEG/H.264 artifacts
  • Post-processing for streaming

# ef_color_noise

Adds color noise (grain) to image.

Effect Type: CVFEffectType.ef_color_noise

Parameters:

  • pAmountI - Noise amount (0-100)

Use Cases:

  • Film grain effect
  • Retro/vintage look
  • Artistic texture

# ef_mono_noise

Adds monochrome (black & white) noise.

Effect Type: CVFEffectType.ef_mono_noise

Parameters:

  • pAmountI - Noise amount (0-100)

# Deinterlacing Effects

# ef_deint_blend

Blends interlaced fields together.

Effect Type: CVFEffectType.ef_deint_blend

Parameters (CVFDeintBlend structure):

Parameter Range Default Description
blendThresh1 0-255 5 First blend threshold
blendThresh2 0-255 9 Second blend threshold
blendConstants1 0.0-1.0 0.3 First blend weight
blendConstants2 0.0-1.0 0.7 Second blend weight

Use Cases:

  • Deinterlace analog video
  • Remove comb artifacts
  • Convert interlaced to progressive

# ef_deint_triangle

Triangle interpolation deinterlacing.

Effect Type: CVFEffectType.ef_deint_triangle

Parameters:

  • pDeintTriangleWeight - Interpolation weight (0-100)

Quality: Better edge preservation than blend


# ef_deint_cavt

CAVT (Content Adaptive Vertical Temporal) deinterlacing.

Effect Type: CVFEffectType.ef_deint_cavt

Parameters:

  • pDeintCAVTThreshold - Motion threshold (0-100)

Quality: Best quality, most CPU intensive

Use Cases:

  • High-quality deinterlacing
  • Broadcast video conversion
  • Archival processing

# Effect Chaining

Multiple effects can be applied simultaneously. Effects are processed in the order they were added.

Example: Professional Stream Enhancement:

// 1. Denoise
CVFEffect denoise;
denoise.Type = ef_denoise_adaptive;
denoise.Enabled = TRUE;
denoise.pDenoiseAdaptiveThreshold = 15;
pEffects->add_effect(denoise);

// 2. Color correction
CVFEffect saturation;
saturation.Type = ef_saturation;
saturation.Enabled = TRUE;
saturation.pAmountI = 15;  // Slight saturation boost
pEffects->add_effect(saturation);

// 3. Add branding
CVFEffect logo;
logo.Type = ef_graphic_logo;
logo.Enabled = TRUE;
logo.GraphicLogo.Filename = SysAllocString(L"logo.png");
logo.GraphicLogo.x = 20;
logo.GraphicLogo.y = 20;
pEffects->add_effect(logo);

// 4. Add timestamp
CVFEffect timestamp;
timestamp.Type = ef_text_logo;
timestamp.Enabled = TRUE;
timestamp.TextLogo.DateMode = TRUE;
timestamp.TextLogo.DateMask = SysAllocString(L"%Y-%m-%d %H:%M:%S");
timestamp.TextLogo.x = 20;
timestamp.TextLogo.y = 1050;  // Bottom left
pEffects->add_effect(timestamp);

# Performance Considerations

# CPU Usage by Effect

Low Impact (< 5% CPU):

  • Color filters
  • Greyscale
  • Invert
  • Flip/Mirror

Medium Impact (5-15% CPU):

  • Text/graphic overlays
  • Contrast/brightness
  • Posterize
  • Simple deinterlacing

High Impact (15-40% CPU):

  • Blur (large radius)
  • Denoise (CAST, adaptive)
  • Mosaic (small blocks)
  • Marble/artistic effects

# Optimization Tips

  1. Limit simultaneous effects - Each effect adds processing time
  2. Use appropriate parameters - Larger blur radius = more CPU
  3. Disable unused effects - Set Enabled = FALSE instead of removing
  4. Process at lower resolution - Downscale, apply effects, upscale
  5. Use GPU rendering when possible - Check for GPU-accelerated effects

# Common Effect Combinations

# Webcam Enhancement

1. ef_denoise_adaptive (threshold: 15)
2. ef_contrast (amount: +10)
3. ef_saturation (amount: +15)
4. ef_flip_right (mirror mode)

# Vintage Film Look

1. ef_greyscale
2. ef_contrast (amount: +20)
3. ef_mono_noise (amount: 15)

# Broadcast Quality

1. ef_deint_cavt
2. ef_denoise_mosquito (amount: 20)
3. ef_saturation (amount: +5)

# Privacy Mode

1. ef_mosaic (size: 20) on specific region
2. ef_blur (amount: 80) as alternative

# See Also