gavl
Modules | Typedefs | Enumerations | Functions
Video conversion options

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
}
 
enum  gavl_downscale_filter_t {
  GAVL_DOWNSCALE_FILTER_AUTO = 0 ,
  GAVL_DOWNSCALE_FILTER_NONE ,
  GAVL_DOWNSCALE_FILTER_WIDE ,
  GAVL_DOWNSCALE_FILTER_GAUSS
}
 

Functions

GAVL_PUBLIC void gavl_video_options_set_defaults (gavl_video_options_t *opt)
 Set all options to their defaults. More...
 
GAVL_PUBLIC gavl_video_options_tgavl_video_options_create ()
 Create an options container. More...
 
GAVL_PUBLIC void gavl_video_options_copy (gavl_video_options_t *dst, const gavl_video_options_t *src)
 Copy video options. More...
 
GAVL_PUBLIC void gavl_video_options_destroy (gavl_video_options_t *opt)
 Destroy video options. More...
 
GAVL_PUBLIC 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. More...
 
GAVL_PUBLIC void gavl_video_options_get_rectangles (const gavl_video_options_t *opt, gavl_rectangle_f_t *src_rect, gavl_rectangle_i_t *dst_rect)
 Get source and destination rectangles. More...
 
GAVL_PUBLIC void gavl_video_options_set_quality (gavl_video_options_t *opt, int quality)
 Set the quality level for the converter. More...
 
GAVL_PUBLIC int gavl_video_options_get_quality (const gavl_video_options_t *opt)
 Get the quality level for the converter. More...
 
GAVL_PUBLIC void gavl_video_options_set_conversion_flags (gavl_video_options_t *opt, int conversion_flags)
 Set the conversion flags. More...
 
GAVL_PUBLIC int gavl_video_options_get_conversion_flags (const gavl_video_options_t *opt)
 Get the conversion flags. More...
 
GAVL_PUBLIC void gavl_video_options_set_alpha_mode (gavl_video_options_t *opt, gavl_alpha_mode_t alpha_mode)
 Set the alpha mode. More...
 
GAVL_PUBLIC gavl_alpha_mode_t gavl_video_options_get_alpha_mode (const gavl_video_options_t *opt)
 Get the alpha mode. More...
 
GAVL_PUBLIC void gavl_video_options_set_scale_mode (gavl_video_options_t *opt, gavl_scale_mode_t scale_mode)
 Set the scale mode. More...
 
GAVL_PUBLIC gavl_scale_mode_t gavl_video_options_get_scale_mode (const gavl_video_options_t *opt)
 Get the scale mode. More...
 
GAVL_PUBLIC void gavl_video_options_set_scale_order (gavl_video_options_t *opt, int order)
 Set the scale order for GAVL_SCALE_SINC_LANCZOS. More...
 
GAVL_PUBLIC int gavl_video_options_get_scale_order (const gavl_video_options_t *opt)
 Get the scale order for GAVL_SCALE_SINC_LANCZOS. More...
 
GAVL_PUBLIC void gavl_video_options_set_background_color (gavl_video_options_t *opt, const double *color)
 Set the background color for alpha blending. More...
 
GAVL_PUBLIC void gavl_video_options_get_background_color (const gavl_video_options_t *opt, double *color)
 Get the background color for alpha blending. More...
 
GAVL_PUBLIC 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. More...
 
GAVL_PUBLIC gavl_deinterlace_drop_mode_t gavl_video_options_get_deinterlace_drop_mode (const gavl_video_options_t *opt)
 Get the deinterlace drop mode. More...
 
GAVL_PUBLIC void gavl_video_options_set_downscale_filter (gavl_video_options_t *opt, gavl_downscale_filter_t f)
 Set antialiasing filter for downscaling. More...
 
GAVL_PUBLIC gavl_downscale_filter_t gavl_video_options_get_downscale_filter (const gavl_video_options_t *opt)
 Get the antialiasing filter for downscaling. More...
 
GAVL_PUBLIC void gavl_video_options_set_downscale_blur (gavl_video_options_t *opt, float f)
 Set blur factor for downscaling. More...
 
GAVL_PUBLIC float gavl_video_options_get_downscale_blur (const gavl_video_options_t *opt)
 Get blur factor for downscaling. More...
 
GAVL_PUBLIC void gavl_video_options_set_num_threads (gavl_video_options_t *opt, int n)
 Set number of threads. More...
 
GAVL_PUBLIC int gavl_video_options_get_num_threads (const gavl_video_options_t *opt)
 Set number of threads. More...
 
GAVL_PUBLIC void gavl_video_options_set_run_func (gavl_video_options_t *opt, gavl_video_run_func func, void *client_data)
 Set function to be passed to each thread. More...
 
GAVL_PUBLIC gavl_video_run_func gavl_video_options_get_run_func (const gavl_video_options_t *opt, void **client_data)
 Get function to be passed to each thread. More...
 
GAVL_PUBLIC void gavl_video_options_set_stop_func (gavl_video_options_t *opt, gavl_video_stop_func func, void *client_data)
 Set function to be passed to each thread. More...
 
GAVL_PUBLIC gavl_video_stop_func gavl_video_options_get_stop_func (const gavl_video_options_t *opt, void **client_data)
 Get function to be passed to each thread. More...
 

Detailed Description

Typedef Documentation

◆ gavl_video_options_t

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

◆ 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

◆ 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

◆ 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

◆ 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

◆ gavl_downscale_filter_t

Antialiasing filters

Specifies the antialiasing filter to be used when downscaling images.

Since 1.1.0

Enumerator
GAVL_DOWNSCALE_FILTER_AUTO 

Auto selection based on quality.

GAVL_DOWNSCALE_FILTER_NONE 

Fastest method, might produce heavy aliasing artifacts.

GAVL_DOWNSCALE_FILTER_WIDE 

Widen the filter curve according to the scaling ratio.

GAVL_DOWNSCALE_FILTER_GAUSS 

Do a Gaussian preblur.

Function Documentation

◆ gavl_video_options_set_defaults()

GAVL_PUBLIC void gavl_video_options_set_defaults ( gavl_video_options_t opt)

Set all options to their defaults.

Parameters
optVideo options

◆ gavl_video_options_create()

GAVL_PUBLIC 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().

◆ gavl_video_options_copy()

GAVL_PUBLIC void gavl_video_options_copy ( gavl_video_options_t dst,
const gavl_video_options_t src 
)

Copy video options.

Parameters
dstDestination
srcSource

◆ gavl_video_options_destroy()

GAVL_PUBLIC void gavl_video_options_destroy ( gavl_video_options_t opt)

Destroy video options.

Parameters
optVideo options

◆ gavl_video_options_set_rectangles()

GAVL_PUBLIC 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
optVideo options
src_rectRectangular area in the source frame or NULL
dst_rectRectangular 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.

◆ gavl_video_options_get_rectangles()

GAVL_PUBLIC void gavl_video_options_get_rectangles ( const gavl_video_options_t opt,
gavl_rectangle_f_t src_rect,
gavl_rectangle_i_t dst_rect 
)

Get source and destination rectangles.

Parameters
optVideo options
src_rectReturns the rectangular area in the source frame
dst_rectReturns the rectangular area in the destination frame

◆ gavl_video_options_set_quality()

GAVL_PUBLIC void gavl_video_options_set_quality ( gavl_video_options_t opt,
int  quality 
)

Set the quality level for the converter.

Parameters
optVideo options
qualityQuality level (see Quality settings)

◆ gavl_video_options_get_quality()

GAVL_PUBLIC int gavl_video_options_get_quality ( const gavl_video_options_t opt)

Get the quality level for the converter.

Parameters
optVideo options
Returns
Quality level (see Quality settings)

◆ gavl_video_options_set_conversion_flags()

GAVL_PUBLIC void gavl_video_options_set_conversion_flags ( gavl_video_options_t opt,
int  conversion_flags 
)

Set the conversion flags.

Parameters
optVideo options
conversion_flagsConversion flags (see Video conversion flags)

◆ gavl_video_options_get_conversion_flags()

GAVL_PUBLIC int gavl_video_options_get_conversion_flags ( const gavl_video_options_t opt)

Get the conversion flags.

Parameters
optVideo options
Returns
Flags (see Video conversion flags)

◆ gavl_video_options_set_alpha_mode()

GAVL_PUBLIC void gavl_video_options_set_alpha_mode ( gavl_video_options_t opt,
gavl_alpha_mode_t  alpha_mode 
)

Set the alpha mode.

Parameters
optVideo options
alpha_modeAlpha mode

◆ gavl_video_options_get_alpha_mode()

GAVL_PUBLIC gavl_alpha_mode_t gavl_video_options_get_alpha_mode ( const gavl_video_options_t opt)

Get the alpha mode.

Parameters
optVideo options
Returns
Alpha mode

◆ gavl_video_options_set_scale_mode()

GAVL_PUBLIC void gavl_video_options_set_scale_mode ( gavl_video_options_t opt,
gavl_scale_mode_t  scale_mode 
)

Set the scale mode.

Parameters
optVideo options
scale_modeScale mode

◆ gavl_video_options_get_scale_mode()

GAVL_PUBLIC gavl_scale_mode_t gavl_video_options_get_scale_mode ( const gavl_video_options_t opt)

Get the scale mode.

Parameters
optVideo options
Returns
Scale mode

◆ gavl_video_options_set_scale_order()

GAVL_PUBLIC void gavl_video_options_set_scale_order ( gavl_video_options_t opt,
int  order 
)

Set the scale order for GAVL_SCALE_SINC_LANCZOS.

Parameters
optVideo options
orderOrder (must be at least 4)

◆ gavl_video_options_get_scale_order()

GAVL_PUBLIC int gavl_video_options_get_scale_order ( const gavl_video_options_t opt)

Get the scale order for GAVL_SCALE_SINC_LANCZOS.

Parameters
optVideo options
Returns
Order

◆ gavl_video_options_set_background_color()

GAVL_PUBLIC void gavl_video_options_set_background_color ( gavl_video_options_t opt,
const double *  color 
)

Set the background color for alpha blending.

Parameters
optVideo options
colorArray of 3 float values (0.0 .. 1.0) in RGB order

◆ gavl_video_options_get_background_color()

GAVL_PUBLIC void gavl_video_options_get_background_color ( const gavl_video_options_t opt,
double *  color 
)

Get the background color for alpha blending.

Parameters
optVideo options
colorReturns 3 float values (0.0 .. 1.0) in RGB order

◆ gavl_video_options_set_deinterlace_drop_mode()

GAVL_PUBLIC 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
optVideo options
deinterlace_drop_modeDeinterlace drop mode

◆ gavl_video_options_get_deinterlace_drop_mode()

GAVL_PUBLIC gavl_deinterlace_drop_mode_t gavl_video_options_get_deinterlace_drop_mode ( const gavl_video_options_t opt)

Get the deinterlace drop mode.

Parameters
optVideo options
Returns
Deinterlace drop mode

◆ gavl_video_options_set_downscale_filter()

GAVL_PUBLIC void gavl_video_options_set_downscale_filter ( gavl_video_options_t opt,
gavl_downscale_filter_t  f 
)

Set antialiasing filter for downscaling.

Parameters
optVideo options
fFilter type (see gavl_downscale_filter_t)

Since 1.1.0

◆ gavl_video_options_get_downscale_filter()

GAVL_PUBLIC gavl_downscale_filter_t gavl_video_options_get_downscale_filter ( const gavl_video_options_t opt)

Get the antialiasing filter for downscaling.

Parameters
optVideo options
Returns
antialiasing filter for downscaling

Since 1.1.0

◆ gavl_video_options_set_downscale_blur()

GAVL_PUBLIC void gavl_video_options_set_downscale_blur ( gavl_video_options_t opt,
float  f 
)

Set blur factor for downscaling.

Parameters
optVideo options
fFactor

Specifies an additional blur-factor for downscaling. The default value of 1.0 calculates the preblur coefficients according the the downsample factor. Larger values mean more blurring (and slower scaling), smaller values mean less blurring (and probably more aliasing artifacts), 0 is equivalent to calling gavl_video_options_set_downscale_filter with GAVL_DOWNSCALE_FILTER_NONE as argument.

Since 1.1.0

◆ gavl_video_options_get_downscale_blur()

GAVL_PUBLIC float gavl_video_options_get_downscale_blur ( const gavl_video_options_t opt)

Get blur factor for downscaling.

Parameters
optVideo options
Returns
Factor

Since 1.1.0

◆ gavl_video_options_set_num_threads()

GAVL_PUBLIC void gavl_video_options_set_num_threads ( gavl_video_options_t opt,
int  n 
)

Set number of threads.

Parameters
optVideo options
nNumber of threads

Since 1.1.1

◆ gavl_video_options_get_num_threads()

GAVL_PUBLIC int gavl_video_options_get_num_threads ( const gavl_video_options_t opt)

Set number of threads.

Parameters
optVideo options
Returns
Number of threads

Since 1.1.1

◆ gavl_video_options_set_run_func()

GAVL_PUBLIC void gavl_video_options_set_run_func ( gavl_video_options_t opt,
gavl_video_run_func  func,
void *  client_data 
)

Set function to be passed to each thread.

Parameters
optVideo options
funcFunction to be passed to each thread
client_dataClient data to be passed to the run function

Since 1.1.1

◆ gavl_video_options_get_run_func()

GAVL_PUBLIC gavl_video_run_func gavl_video_options_get_run_func ( const gavl_video_options_t opt,
void **  client_data 
)

Get function to be passed to each thread.

Parameters
optVideo options
client_dataReturns client data
Returns
The function

Since 1.1.1

◆ gavl_video_options_set_stop_func()

GAVL_PUBLIC void gavl_video_options_set_stop_func ( gavl_video_options_t opt,
gavl_video_stop_func  func,
void *  client_data 
)

Set function to be passed to each thread.

Parameters
optVideo options
funcFunction to be passed to each thread
client_dataClient data to be passed to the run function

Since 1.1.1

◆ gavl_video_options_get_stop_func()

GAVL_PUBLIC gavl_video_stop_func gavl_video_options_get_stop_func ( const gavl_video_options_t opt,
void **  client_data 
)

Get function to be passed to each thread.

Parameters
optVideo options
client_dataReturns client data
Returns
The function

Since 1.1.1