gavl: Video conversion options

# Video conversion options
[Video]

## Modules
| Video conversion flags
## Typedefs
typedef struct gavl_video_options_s | gavl_video_options_t
## Enumerations
enum | gavl_alpha_mode_t { GAVL_ALPHA_IGNORE = 0, GAVL_ALPHA_BLEND_COLOR }
enum | gavl_deinterlace_mode_t { GAVL_DEINTERLACE_NONE = 0, GAVL_DEINTERLACE_COPY = 1, GAVL_DEINTERLACE_SCALE = 2, GAVL_DEINTERLACE_BLEND = 3 }
enum | gavl_deinterlace_drop_mode_t { GAVL_DEINTERLACE_DROP_TOP, GAVL_DEINTERLACE_DROP_BOTTOM }
| Specifies which field to drop when deinterlacing. More...
enum | gavl_scale_mode_t { GAVL_SCALE_AUTO, GAVL_SCALE_NEAREST, GAVL_SCALE_BILINEAR, GAVL_SCALE_QUADRATIC, GAVL_SCALE_CUBIC_BSPLINE, GAVL_SCALE_CUBIC_MITCHELL, GAVL_SCALE_CUBIC_CATMULL, GAVL_SCALE_SINC_LANCZOS, GAVL_SCALE_NONE }
## Functions
void | gavl_video_options_set_defaults (gavl_video_options_t *opt)
| Set all options to their defaults.
gavl_video_options_t * | gavl_video_options_create ()
| Create an options container.
void | gavl_video_options_copy (gavl_video_options_t *dst, const gavl_video_options_t *src)
| Copy video options.
void | gavl_video_options_destroy (gavl_video_options_t *opt)
| Destroy video options.
void | gavl_video_options_set_rectangles (gavl_video_options_t *opt, const gavl_rectangle_f_t *src_rect, const gavl_rectangle_i_t *dst_rect)
| Set source and destination rectangles.
void | gavl_video_options_get_rectangles (gavl_video_options_t *opt, gavl_rectangle_f_t *src_rect, gavl_rectangle_i_t *dst_rect)
| Get source and destination rectangles.
void | gavl_video_options_set_quality (gavl_video_options_t *opt, int quality)
| Set the quality level for the converter.
int | gavl_video_options_get_quality (gavl_video_options_t *opt)
| Get the quality level for the converter.
void | gavl_video_options_set_conversion_flags (gavl_video_options_t *opt, int conversion_flags)
| Set the conversion flags.
int | gavl_video_options_get_conversion_flags (gavl_video_options_t *opt)
| Get the conversion flags.
void | gavl_video_options_set_alpha_mode (gavl_video_options_t *opt, gavl_alpha_mode_t alpha_mode)
| Set the alpha mode.
gavl_alpha_mode_t | gavl_video_options_get_alpha_mode (gavl_video_options_t *opt)
| Get the alpha mode.
void | gavl_video_options_set_scale_mode (gavl_video_options_t *opt, gavl_scale_mode_t scale_mode)
| Set the scale mode.
gavl_scale_mode_t | gavl_video_options_get_scale_mode (gavl_video_options_t *opt)
| Get the scale mode.
void | gavl_video_options_set_scale_order (gavl_video_options_t *opt, int order)
| Set the scale order for GAVL_SCALE_SINC_LANCZOS.
int | gavl_video_options_get_scale_order (gavl_video_options_t *opt)
| Get the scale order for GAVL_SCALE_SINC_LANCZOS.
void | gavl_video_options_set_background_color (gavl_video_options_t *opt, const float *color)
| Set the background color for alpha blending.
void | gavl_video_options_get_background_color (gavl_video_options_t *opt, float *color)
| Get the background color for alpha blending.
void | gavl_video_options_set_deinterlace_drop_mode (gavl_video_options_t *opt, gavl_deinterlace_drop_mode_t deinterlace_drop_mode)
| Set the deinterlace drop mode.
gavl_deinterlace_drop_mode_t | gavl_video_options_get_deinterlace_drop_mode (gavl_video_options_t *opt)
| Get the deinterlace drop mode.

## Typedef Documentation

typedef struct gavl_video_options_s gavl_video_options_t

Opaque container for video conversion options

You don't want to know what's inside.

## Enumeration Type Documentation

enum gavl_alpha_mode_t

Alpha handling mode

Set the desired behaviour if the source format has a transparency channel but the destination doesn't.

Enumerator:

  GAVL_ALPHA_IGNORE | Ignore alpha channel
  GAVL_ALPHA_BLEND_COLOR | Blend over a specified background color

enum gavl_deinterlace_mode_t

Deinterlace mode

Specifies a deinterlacing mode

Enumerator:

  GAVL_DEINTERLACE_NONE | Don't care about interlacing
  GAVL_DEINTERLACE_COPY | Take one field and copy it to the other
  GAVL_DEINTERLACE_SCALE | Take one field and scale it vertically by 2
  GAVL_DEINTERLACE_BLEND | Linear blend fields together

enum gavl_deinterlace_drop_mode_t

Specifies which field to drop when deinterlacing.

This is used for deinterlacing with GAVL_DEINTERLACE_COPY and GAVL_DEINTERLACE_SCALE.

Enumerator:

  GAVL_DEINTERLACE_DROP_TOP | Drop top field, use bottom field
  GAVL_DEINTERLACE_DROP_BOTTOM | Drop bottom field, use top field

enum gavl_scale_mode_t

Scaling algorithm

Enumerator:

  GAVL_SCALE_AUTO | Take mode from conversion quality
  GAVL_SCALE_NEAREST | Nearest neighbor
  GAVL_SCALE_BILINEAR | Bilinear
  GAVL_SCALE_QUADRATIC | Quadratic
  GAVL_SCALE_CUBIC_BSPLINE | Cubic B-Spline
  GAVL_SCALE_CUBIC_MITCHELL | Cubic Mitchell-Netravali
  GAVL_SCALE_CUBIC_CATMULL | Cubic Catmull-Rom
  GAVL_SCALE_SINC_LANCZOS | Sinc with Lanczos window. Set order with gavl_video_options_set_scale_order
  GAVL_SCALE_NONE | Used internally when the scaler is used as a convolver

## Function Documentation

void gavl_video_options_set_defaults | ( | gavl_video_options_t * | opt | ) |

Set all options to their defaults.

Parameters:

  | opt | Video options

gavl_video_options_t* gavl_video_options_create | ( |  | ) |

Create an options container.

Returns:
  Newly allocated udio options with default values

Use this to store options, which will apply for more than one converter instance. Applying the options will be done by gavl_*_get_options() followed by gavl_video_options_copy().

void gavl_video_options_copy | ( | gavl_video_options_t * | dst,
|  | const gavl_video_options_t * | src |
| ) |  |  |

Copy video options.

Parameters:

  | dst | Destination
  | src | Source

void gavl_video_options_destroy | ( | gavl_video_options_t * | opt | ) |

Destroy video options.

Parameters:

  | opt | Video options

void gavl_video_options_set_rectangles | ( | gavl_video_options_t * | opt,
|  | const gavl_rectangle_f_t * | src_rect,
|  | const gavl_rectangle_i_t * | dst_rect |
| ) |  |  |

Set source and destination rectangles.

Parameters:

  | opt | Video options
  | src_rect | Rectangular area in the source frame or NULL
  | dst_rect | Rectangular area in the destination frame or NULL

Set the source and destination rectangles the converter or scaler will operate on. If you don't call this function, the rectangles will be set to the full image dimensions of the source and destination formats respectively. If one rectangle is NULL, BOTH rectangles will be cleared as if you never called this function. See Rectangles for convenience functions, which calculate the proper rectangles in some typical playback or transcoding situations.

void gavl_video_options_get_rectangles | ( | gavl_video_options_t * | opt,
|  | gavl_rectangle_f_t * | src_rect,
|  | gavl_rectangle_i_t * | dst_rect |
| ) |  |  |

Get source and destination rectangles.

Parameters:

  | opt | Video options
  | src_rect | Returns the rectangular area in the source frame
  | dst_rect | Returns the rectangular area in the destination frame

void gavl_video_options_set_quality | ( | gavl_video_options_t * | opt,
|  | int | quality |
| ) |  |  |

Set the quality level for the converter.

Parameters:

  | opt | Video options
  | quality | Quality level (see Quality settings)

int gavl_video_options_get_quality | ( | gavl_video_options_t * | opt | ) |

Get the quality level for the converter.

Parameters:

  | opt | Video options

Returns:
  Quality level (see Quality settings)

void gavl_video_options_set_conversion_flags | ( | gavl_video_options_t * | opt,
|  | int | conversion_flags |
| ) |  |  |

Set the conversion flags.

Parameters:

  | opt | Video options
  | conversion_flags | Conversion flags (see Video conversion flags)

int gavl_video_options_get_conversion_flags | ( | gavl_video_options_t * | opt | ) |

Get the conversion flags.

Parameters:

  | opt | Video options

Returns:
  Flags (see Video conversion flags)

void gavl_video_options_set_alpha_mode | ( | gavl_video_options_t * | opt,
|  | gavl_alpha_mode_t | alpha_mode |
| ) |  |  |

Set the alpha mode.

Parameters:

  | opt | Video options
  | alpha_mode | Alpha mode

gavl_alpha_mode_t gavl_video_options_get_alpha_mode | ( | gavl_video_options_t * | opt | ) |

Get the alpha mode.

Parameters:

  | opt | Video options

Returns:
  Alpha mode

void gavl_video_options_set_scale_mode | ( | gavl_video_options_t * | opt,
|  | gavl_scale_mode_t | scale_mode |
| ) |  |  |

Set the scale mode.

Parameters:

  | opt | Video options
  | scale_mode | Scale mode

gavl_scale_mode_t gavl_video_options_get_scale_mode | ( | gavl_video_options_t * | opt | ) |

Get the scale mode.

Parameters:

  | opt | Video options

Returns:
  Scale mode

void gavl_video_options_set_scale_order | ( | gavl_video_options_t * | opt,
|  | int | order |
| ) |  |  |

Set the scale order for GAVL_SCALE_SINC_LANCZOS.

Parameters:

  | opt | Video options
  | order | Order (must be at least 4)

int gavl_video_options_get_scale_order | ( | gavl_video_options_t * | opt | ) |

Get the scale order for GAVL_SCALE_SINC_LANCZOS.

Parameters:

  | opt | Video options

Returns:
  Order

void gavl_video_options_set_background_color | ( | gavl_video_options_t * | opt,
|  | const float * | color |
| ) |  |  |

Set the background color for alpha blending.

Parameters:

  | opt | Video options
  | color | Array of 3 float values (0.0 .. 1.0) in RGB order

void gavl_video_options_get_background_color | ( | gavl_video_options_t * | opt,
|  | float * | color |
| ) |  |  |

Get the background color for alpha blending.

Parameters:

  | opt | Video options
  | color | Returns 3 float values (0.0 .. 1.0) in RGB order

void gavl_video_options_set_deinterlace_drop_mode | ( | gavl_video_options_t * | opt,
|  | gavl_deinterlace_drop_mode_t | deinterlace_drop_mode |
| ) |  |  |

Set the deinterlace drop mode.

Parameters:

  | opt | Video options
  | deinterlace_drop_mode | Deinterlace drop mode

gavl_deinterlace_drop_mode_t gavl_video_options_get_deinterlace_drop_mode | ( | gavl_video_options_t * | opt | ) |

Get the deinterlace drop mode.

Parameters:

  | opt | Video options

Returns:
  Deinterlace drop mode