gavl.h File Reference
`#include <inttypes.h>`
`#include <gavl/gavldefs.h>`
`#include <gavl/gavltime.h>`
`#include <gavl/timecode.h>`
`#include <gavl/threadpool.h>`
`#include <gavl/hw.h>`

Go to the source code of this file.

## Data Structures

struct | gavl_audio_format_t
| Audio Format. More...
union | gavl_audio_samples_t
| Container for interleaved audio samples. More...
union | gavl_audio_channels_t
| Container for noninterleaved audio samples. More...
struct | gavl_audio_frame_t
| Generic container for audio samples. More...
struct | gavl_rectangle_i_t
| Integer rectangle. More...
struct | gavl_rectangle_f_t
| Floating point rectangle. More...
struct | gavl_video_format_s
| Video format. More...
struct | gavl_video_frame_s
struct | gavl_frame_table_t
| frame table structure More...

## Macros

#define | GAVL_QUALITY_FASTEST 1
| Fastest processing.
#define | GAVL_QUALITY_BEST 5
| Highest quality.
#define | GAVL_QUALITY_DEFAULT 2
| Default quality.
#define | GAVL_ACCEL_MMX (1<<0)
| MMX.
#define | GAVL_ACCEL_MMXEXT (1<<1)
| Extended MMX (a.k.a MMX2).
#define | GAVL_ACCEL_SSE (1<<2)
| Intel SSE.
#define | GAVL_ACCEL_SSE2 (1<<3)
| Intel SSE2.
#define | GAVL_ACCEL_SSE3 (1<<4)
| Intel SSE3.
#define | GAVL_ACCEL_3DNOW (1<<5)
| AMD 3Dnow (unsupported).
#define | GAVL_ACCEL_3DNOWEXT (1<<6)
| AMD 3Dnow ext (unsupported).
#define | GAVL_ACCEL_SSSE3 (1<<7)
| Intel SSSE3.
#define | GAVL_ACCEL_AVX (1<<8)
| Intel AVX.
#define | GAVL_ACCEL_AVX2 (1<<9)
| Intel AVX.
#define | GAVL_ACCEL_NEON (1<<10)
| ARM Neon.
#define | GAVL_MAX_CHANNELS 128
| Maximum number of audio channels.
#define | GAVL_AUDIO_FRONT_TO_REAR_COPY (1<<0)
#define | GAVL_AUDIO_FRONT_TO_REAR_MUTE (1<<1)
#define | GAVL_AUDIO_FRONT_TO_REAR_DIFF (1<<2)
#define | GAVL_AUDIO_FRONT_TO_REAR_MASK
#define | GAVL_AUDIO_STEREO_TO_MONO_LEFT (1<<3)
#define | GAVL_AUDIO_STEREO_TO_MONO_RIGHT (1<<4)
#define | GAVL_AUDIO_STEREO_TO_MONO_MIX (1<<5)
#define | GAVL_AUDIO_STEREO_TO_MONO_MASK
#define | GAVL_AUDIO_NORMALIZE_MIX_MATRIX (1<<6)
#define | GAVL_MAX_PLANES 4
#define | GAVL_PIXFMT_PLANAR (1<<8)
#define | GAVL_PIXFMT_RGB (1<<9)
#define | GAVL_PIXFMT_YUV (1<<10)
#define | GAVL_PIXFMT_YUVJ (1<<11)
#define | GAVL_PIXFMT_ALPHA (1<<12)
#define | GAVL_PIXFMT_GRAY (1<<13)
#define | GAVL_PIXELFORMAT_1D_8 GAVL_GRAY_8
| Pixelformat for storing 1-dimensional integer data with 8 bits each.
#define | GAVL_PIXELFORMAT_2D_8 GAVL_GRAYA_16
| Pixelformat for storing 2-dimensional integer data with 8 bits each.
#define | GAVL_PIXELFORMAT_3D_8 GAVL_RGB_24
| Pixelformat for storing 3-dimensional integer data with 8 bits each.
#define | GAVL_PIXELFORMAT_4D_8 GAVL_RGBA_32
| Pixelformat for storing 4-dimensional integer data with 8 bits each.
#define | GAVL_PIXELFORMAT_1D_16 GAVL_GRAY_16
| Pixelformat for storing 1-dimensional integer data with 16 bits each.
#define | GAVL_PIXELFORMAT_2D_16 GAVL_GRAYA_32
| Pixelformat for storing 2-dimensional integer data with 16 bits each.
#define | GAVL_PIXELFORMAT_3D_16 GAVL_RGB_48
| Pixelformat for storing 3-dimensional integer data with 16 bits each.
#define | GAVL_PIXELFORMAT_4D_16 GAVL_RGBA_64
| Pixelformat for storing 4-dimensional integer data with 16 bits each.
#define | GAVL_PIXELFORMAT_1D_FLOAT GAVL_GRAY_FLOAT
| Pixelformat for storing 1-dimensional FLOAT data.
#define | GAVL_PIXELFORMAT_2D_FLOAT GAVL_GRAYA_FLOAT
| Pixelformat for storing 2-dimensional FLOAT data.
#define | GAVL_PIXELFORMAT_3D_FLOAT GAVL_RGB_FLOAT
| Pixelformat for storing 3-dimensional FLOAT data.
#define | GAVL_PIXELFORMAT_4D_FLOAT GAVL_RGBA_FLOAT
| Pixelformat for storing 4-dimensional FLOAT data.
#define | gavl_pixelformat_is_gray(fmt)
| Check if a pixelformat is grayscale.
#define | gavl_pixelformat_is_rgb(fmt)
| Check if a pixelformat is RGB based.
#define | gavl_pixelformat_is_yuv(fmt)
| Check if a pixelformat is YUV based.
#define | gavl_pixelformat_is_jpeg_scaled(fmt)
| Check if a pixelformat is jpeg (full range) scaled.
#define | gavl_pixelformat_has_alpha(fmt)
| Check if a pixelformat has a transparency channel.
#define | gavl_pixelformat_is_planar(fmt)
| Check if a pixelformat is planar.
#define | GAVL_IMAGE_ORIENT_FLIP_H (1<<2)
#define | GAVL_FORCE_DEINTERLACE (1<<0)
| Force deinterlacing.
#define | GAVL_CONVOLVE_CHROMA (1<<1)
| Pass chroma planes to the convolver.
#define | GAVL_CONVOLVE_NORMALIZE (1<<2)
| Normalize convolution matrices passed to the scaler.
#define | GAVL_RESAMPLE_CHROMA (1<<3)
| Force chroma placement correction.
#define | GAVL_FORCE_SW (1<<4)
| Force software processing.
#define | GAVL_BAYER_GREEN_FIRST (1<<0)
#define | GAVL_BAYER_BLUE_LINE (1<<1)
#define | GAVL_BAYER_GBRG (GAVL_BAYER_GREEN_FIRST|GAVL_BAYER_BLUE_LINE)
#define | GAVL_BAYER_GRBG (GAVL_BAYER_GREEN_FIRST)
#define | GAVL_BAYER_BGGR (GAVL_BAYER_BLUE_LINE)
#define | GAVL_BAYER_RGGB 0

## Typedefs

typedef struct gavl_video_source_s | gavl_video_source_t
| Forward declaration of the video source.
typedef struct gavl_audio_source_s | gavl_audio_source_t
| Forward declaration of the audio source.
typedef struct gavl_packet_source_s | gavl_packet_source_t
| Forward declaration of the packet source.
typedef struct gavl_audio_sink_s | gavl_audio_sink_t
| Audio sink.
typedef struct gavl_video_sink_s | gavl_video_sink_t
| Video sink.
typedef struct gavl_packet_sink_s | gavl_packet_sink_t
| Packet sink.
typedef struct gavl_packet_s | gavl_packet_t
typedef struct gavl_video_format_s | gavl_video_format_t
| Video format.
typedef struct gavl_video_frame_s | gavl_video_frame_t
typedef struct gavl_audio_options_s | gavl_audio_options_t
| Opaque container for audio conversion options.
typedef struct gavl_audio_converter_s | gavl_audio_converter_t
| Opaque audio converter structure.
typedef struct gavl_volume_control_s | gavl_volume_control_t
| Opaque structure for a volume control.
typedef enum gavl_pixelformat_e | gavl_pixelformat_t
| Pixelformat.
typedef struct gavl_video_options_s | gavl_video_options_t
typedef struct gavl_video_converter_s | gavl_video_converter_t
| Opaque video converter structure.
typedef struct gavl_video_scaler_s | gavl_video_scaler_t
| Opaque scaler structure.
typedef struct gavl_video_deinterlacer_s | gavl_video_deinterlacer_t
| Opaque deinterlacer structure.
typedef gavl_video_frame_t | gavl_overlay_t
| Overlay structure.
typedef struct gavl_overlay_blend_context_s | gavl_overlay_blend_context_t
| Opaque blend context.
typedef struct gavl_image_transform_s | gavl_image_transform_t
| Opaque image transformation engine.
typedef void(* | gavl_image_transform_func) (void *priv, double xdst, double ydst, double *xsrc, double *ysrc)
| Function describing the method.
typedef struct gavl_video_frame_pool_s | gavl_video_frame_pool_t
| Video frame pool.

## Enumerations

enum | gavl_sample_format_t { GAVL_SAMPLE_NONE = 0 , GAVL_SAMPLE_U8 = 1 , GAVL_SAMPLE_S8 = 2 , GAVL_SAMPLE_U16 = 3 , GAVL_SAMPLE_S16 = 4 , GAVL_SAMPLE_S32 = 5 , GAVL_SAMPLE_FLOAT = 6 , GAVL_SAMPLE_DOUBLE = 7 }
| Format of one audio sample. More...
enum | gavl_interleave_mode_t { GAVL_INTERLEAVE_NONE = 0 , GAVL_INTERLEAVE_2 = 1 , GAVL_INTERLEAVE_ALL = 2 }
enum | gavl_channel_id_t { GAVL_CHID_NONE = 0 , GAVL_CHID_FRONT_CENTER , GAVL_CHID_FRONT_LEFT , GAVL_CHID_FRONT_RIGHT , GAVL_CHID_FRONT_CENTER_LEFT , GAVL_CHID_FRONT_CENTER_RIGHT , GAVL_CHID_REAR_LEFT , GAVL_CHID_REAR_RIGHT , GAVL_CHID_REAR_CENTER , GAVL_CHID_SIDE_LEFT , GAVL_CHID_SIDE_RIGHT , GAVL_CHID_LFE , GAVL_CHID_AUX }
| Audio channel setup. More...
enum | gavl_audio_dither_mode_t { GAVL_AUDIO_DITHER_NONE = 0 , GAVL_AUDIO_DITHER_AUTO = 1 , GAVL_AUDIO_DITHER_RECT = 2 , GAVL_AUDIO_DITHER_TRI = 3 , GAVL_AUDIO_DITHER_SHAPED = 4 }
| Dither mode. More...
enum | gavl_resample_mode_t { GAVL_RESAMPLE_AUTO = 0 , GAVL_RESAMPLE_ZOH = 1 , GAVL_RESAMPLE_LINEAR = 2 , GAVL_RESAMPLE_SINC_FAST = 3 , GAVL_RESAMPLE_SINC_MEDIUM = 4 , GAVL_RESAMPLE_SINC_BEST = 5 }
| Resample mode. More...

enum

gavl_pixelformat_e {
GAVL_PIXELFORMAT_NONE = 0 ,
GAVL_GRAY_8 = 1 | GAVL_PIXFMT_GRAY ,
GAVL_GRAY_16 = 2 | GAVL_PIXFMT_GRAY ,
GAVL_GRAY_FLOAT = 3 | GAVL_PIXFMT_GRAY ,
GAVL_GRAYA_16 = 1 | GAVL_PIXFMT_GRAY | GAVL_PIXFMT_ALPHA ,
GAVL_GRAYA_32 = 2 | GAVL_PIXFMT_GRAY | GAVL_PIXFMT_ALPHA ,
GAVL_GRAYA_FLOAT = 3 | GAVL_PIXFMT_GRAY | GAVL_PIXFMT_ALPHA ,
GAVL_RGB_15 = 1 | GAVL_PIXFMT_RGB ,
GAVL_BGR_15 = 2 | GAVL_PIXFMT_RGB ,
GAVL_RGB_16 = 3 | GAVL_PIXFMT_RGB ,
GAVL_BGR_16 = 4 | GAVL_PIXFMT_RGB ,
GAVL_RGB_24 = 5 | GAVL_PIXFMT_RGB ,
GAVL_BGR_24 = 6 | GAVL_PIXFMT_RGB ,
GAVL_RGB_32 = 7 | GAVL_PIXFMT_RGB ,
GAVL_BGR_32 = 8 | GAVL_PIXFMT_RGB ,
GAVL_RGBA_32 = 9 | GAVL_PIXFMT_RGB | GAVL_PIXFMT_ALPHA ,
GAVL_RGB_48 = 10 | GAVL_PIXFMT_RGB ,
GAVL_RGBA_64 = 11 | GAVL_PIXFMT_RGB | GAVL_PIXFMT_ALPHA ,
GAVL_RGB_FLOAT = 12 | GAVL_PIXFMT_RGB ,
GAVL_RGBA_FLOAT = 13 | GAVL_PIXFMT_RGB | GAVL_PIXFMT_ALPHA ,
GAVL_YUY2 = 1 | GAVL_PIXFMT_YUV ,
GAVL_UYVY = 2 | GAVL_PIXFMT_YUV ,
GAVL_YUVA_32 = 3 | GAVL_PIXFMT_YUV | GAVL_PIXFMT_ALPHA ,
GAVL_YUVA_64 = 4 | GAVL_PIXFMT_YUV | GAVL_PIXFMT_ALPHA ,
GAVL_YUV_FLOAT = 5 | GAVL_PIXFMT_YUV ,
GAVL_YUVA_FLOAT = 6 | GAVL_PIXFMT_YUV | GAVL_PIXFMT_ALPHA ,
GAVL_YUV_420_P = 1 | GAVL_PIXFMT_PLANAR | GAVL_PIXFMT_YUV ,
GAVL_YUV_422_P = 2 | GAVL_PIXFMT_PLANAR | GAVL_PIXFMT_YUV ,
GAVL_YUV_444_P = 3 | GAVL_PIXFMT_PLANAR | GAVL_PIXFMT_YUV ,
GAVL_YUV_411_P = 4 | GAVL_PIXFMT_PLANAR | GAVL_PIXFMT_YUV ,
GAVL_YUV_410_P = 5 | GAVL_PIXFMT_PLANAR | GAVL_PIXFMT_YUV ,
GAVL_YUVJ_420_P = 6 | GAVL_PIXFMT_PLANAR | GAVL_PIXFMT_YUV | GAVL_PIXFMT_YUVJ ,
GAVL_YUVJ_422_P = 7 | GAVL_PIXFMT_PLANAR | GAVL_PIXFMT_YUV | GAVL_PIXFMT_YUVJ ,
GAVL_YUVJ_444_P = 8 | GAVL_PIXFMT_PLANAR | GAVL_PIXFMT_YUV | GAVL_PIXFMT_YUVJ ,
GAVL_YUV_444_P_16 = 9 | GAVL_PIXFMT_PLANAR | GAVL_PIXFMT_YUV ,
GAVL_YUV_422_P_16 = 10 | GAVL_PIXFMT_PLANAR | GAVL_PIXFMT_YUV
}

| Pixelformat definition. More...
enum | gavl_color_channel_t { GAVL_CCH_NONE = 0 , GAVL_CCH_RED , GAVL_CCH_GREEN , GAVL_CCH_BLUE , GAVL_CCH_Y , GAVL_CCH_CB , GAVL_CCH_CR , GAVL_CCH_ALPHA }
| Color channel definitions. More...
enum | gavl_chroma_placement_t { GAVL_CHROMA_PLACEMENT_DEFAULT = 0 , GAVL_CHROMA_PLACEMENT_MPEG2 , GAVL_CHROMA_PLACEMENT_DVPAL }
| Chroma placement. More...
enum | gavl_framerate_mode_t { GAVL_FRAMERATE_UNKNOWN = -1 , GAVL_FRAMERATE_CONSTANT = 0 , GAVL_FRAMERATE_VARIABLE = 1 , GAVL_FRAMERATE_STILL = 2 }
| Framerate mode. More...
enum | gavl_interlace_mode_t { GAVL_INTERLACE_UNKNOWN = -1 , GAVL_INTERLACE_NONE = 0 , GAVL_INTERLACE_TOP_FIRST = 1 , GAVL_INTERLACE_BOTTOM_FIRST = 2 , GAVL_INTERLACE_MIXED = (0x10 | 1) , GAVL_INTERLACE_MIXED_TOP = (0x10 | 2) , GAVL_INTERLACE_MIXED_BOTTOM = (0x10 | 3) }
| Interlace mode. More...

enum

gavl_image_orientation_t {
GAVL_IMAGE_ORIENT_NORMAL = 0 ,
GAVL_IMAGE_ORIENT_ROT90_CW = 1 ,
GAVL_IMAGE_ORIENT_ROT180_CW = 2 ,
GAVL_IMAGE_ORIENT_ROT270_CW = 3 ,
GAVL_IMAGE_ORIENT_FH = (GAVL_IMAGE_ORIENT_FLIP_H | GAVL_IMAGE_ORIENT_NORMAL) ,
GAVL_IMAGE_ORIENT_FH_ROT90_CW = (GAVL_IMAGE_ORIENT_FLIP_H | GAVL_IMAGE_ORIENT_ROT90_CW) ,
GAVL_IMAGE_ORIENT_FH_ROT180_CW = (GAVL_IMAGE_ORIENT_FLIP_H | GAVL_IMAGE_ORIENT_ROT180_CW) ,
GAVL_IMAGE_ORIENT_FH_ROT270_CW = (GAVL_IMAGE_ORIENT_FLIP_H | GAVL_IMAGE_ORIENT_ROT270_CW)
}

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 int | gavl_accel_supported (void)
| Get the supported acceleration flags.
GAVL_PUBLIC const char * | gavl_sample_format_to_string (gavl_sample_format_t format)
| Convert a gavl_sample_format_t to a human readable string.
GAVL_PUBLIC const char * | gavl_sample_format_to_short_string (gavl_sample_format_t format)
| Convert a gavl_sample_format_t to a human readable string.
GAVL_PUBLIC gavl_sample_format_t | gavl_string_to_sample_format (const char *str)
| Convert a string to a sample format.
GAVL_PUBLIC gavl_sample_format_t | gavl_short_string_to_sample_format (const char *format)
| Convert a short string to a gavl_sample_format_t.
GAVL_PUBLIC int | gavl_num_sample_formats (void)
| Get total number of supported sample formats.
GAVL_PUBLIC gavl_sample_format_t | gavl_get_sample_format (int index)
| Get the sample format from index.
GAVL_PUBLIC const char * | gavl_channel_id_to_string (gavl_channel_id_t id)
| Convert a gavl_channel_id_t to a human readable string.
GAVL_PUBLIC const char * | gavl_channel_id_to_short_string (gavl_channel_id_t id)
| Convert a gavl_channel_id_t to a short string.
GAVL_PUBLIC gavl_channel_id_t | gavl_short_string_to_channel_id (const char *id)
| Convert short string to a gavl_channel_id_t.
GAVL_PUBLIC const char * | gavl_interleave_mode_to_string (gavl_interleave_mode_t mode)
| Convert a gavl_interleave_mode_t to a human readable string.
GAVL_PUBLIC const char * | gavl_interleave_mode_to_short_string (gavl_interleave_mode_t mode)
| Convert a gavl_interleave_mode_t to a short string.
GAVL_PUBLIC gavl_interleave_mode_t | gavl_short_string_to_interleave_mode (const char *mode)
| Convert a short string to a gavl_interleave_mode_t.
GAVL_PUBLIC void | gavl_audio_format_dump (const gavl_audio_format_t *format)
| Dump an audio format to stderr.
GAVL_PUBLIC int | gavl_audio_format_buffer_size (const gavl_audio_format_t *format)
GAVL_PUBLIC void | gavl_audio_format_dumpi (const gavl_audio_format_t *format, int indent)
| Dump an audio format to stderr.
GAVL_PUBLIC int | gavl_channel_index (const gavl_audio_format_t *format, gavl_channel_id_t id)
| Get the index of a particular channel for a given format.
GAVL_PUBLIC int | gavl_front_channels (const gavl_audio_format_t *format)
| Get number of front channels for a given format.
GAVL_PUBLIC int | gavl_rear_channels (const gavl_audio_format_t *format)
| Get number of rear channels for a given format.
GAVL_PUBLIC int | gavl_side_channels (const gavl_audio_format_t *format)
| Get number of side channels for a given format.
GAVL_PUBLIC int | gavl_aux_channels (const gavl_audio_format_t *format)
| Get number of aux channels for a given format.
GAVL_PUBLIC int | gavl_lfe_channels (const gavl_audio_format_t *format)
| Get number of LFE channels for a given format.
GAVL_PUBLIC void | gavl_audio_format_copy (gavl_audio_format_t *dst, const gavl_audio_format_t *src)
| Copy one audio format to another.
GAVL_PUBLIC int | gavl_audio_formats_equal (const gavl_audio_format_t *format_1, const gavl_audio_format_t *format_2)
| Compare 2 audio formats.
GAVL_PUBLIC void | gavl_set_channel_setup (gavl_audio_format_t *format)
| Set the default channel setup and indices.
GAVL_PUBLIC int | gavl_bytes_per_sample (gavl_sample_format_t format)
| Get the number of bytes per sample for a given sample format.
GAVL_PUBLIC int | gavl_nearest_samplerate (int in_rate, const int *supported)
| Get the nearest samplerate out of a list of supported rates.
GAVL_PUBLIC gavl_audio_frame_t * | gavl_audio_frame_create (const gavl_audio_format_t *format)
| Create audio frame.
GAVL_PUBLIC void | gavl_audio_frame_null (gavl_audio_frame_t *frame)
| Zero all pointers in the audio frame.
GAVL_PUBLIC void | gavl_audio_frame_destroy (gavl_audio_frame_t *frame)
| Destroy an audio frame.
GAVL_PUBLIC void | gavl_audio_frame_mute (gavl_audio_frame_t *frame, const gavl_audio_format_t *format)
| Mute an audio frame.
GAVL_PUBLIC void | gavl_audio_frame_mute_samples (gavl_audio_frame_t *frame, const gavl_audio_format_t *format, int num_samples)
| Mute a number of samples at the start of an audio frame.
GAVL_PUBLIC void | gavl_audio_frame_mute_channel (gavl_audio_frame_t *frame, const gavl_audio_format_t *format, int channel)
| Mute a single channel of an audio frame.
GAVL_PUBLIC int | gavl_audio_frame_copy (const gavl_audio_format_t *format, gavl_audio_frame_t *dst, const gavl_audio_frame_t *src, int dst_pos, int src_pos, int dst_size, int src_size)
| Copy audio data from one frame to another.
GAVL_PUBLIC void | gavl_audio_frame_copy_ptrs (const gavl_audio_format_t *format, gavl_audio_frame_t *dst, const gavl_audio_frame_t *src)
| Copy audio data from one frame to another.
GAVL_PUBLIC void | gavl_audio_frame_get_subframe (const gavl_audio_format_t *format, gavl_audio_frame_t *src, gavl_audio_frame_t *dst, int start, int len)
| Set an audio frame to a subframe of another frame.
GAVL_PUBLIC int | gavl_audio_frames_equal (const gavl_audio_format_t *format, const gavl_audio_frame_t *f1, const gavl_audio_frame_t *f2)
| Check if 2 audio frames are bit-identical.
GAVL_PUBLIC int | gavl_audio_frame_continuous (const gavl_audio_format_t *format, const gavl_audio_frame_t *f)
| Check if an audio frames is continuous in memory.
GAVL_PUBLIC void | gavl_audio_frame_set_channels (gavl_audio_frame_t *f, const gavl_audio_format_t *format, uint8_t *data)
| Set the channel pointers of an audio frame.
GAVL_PUBLIC void | gavl_audio_frame_from_data (gavl_audio_frame_t *f, const gavl_audio_format_t *format, uint8_t *data, int len)
| Set the channel pointers of an audio frame.
GAVL_PUBLIC void | gavl_audio_frame_to_packet_metadata (const gavl_audio_frame_t *frame, gavl_packet_t *pkt)
GAVL_PUBLIC void | gavl_packet_to_audio_frame_metadata (const gavl_packet_t *p, gavl_audio_frame_t *frame)
GAVL_PUBLIC void | gavl_audio_frame_set_from_packet (gavl_audio_frame_t *frame, const gavl_audio_format_t *format, gavl_packet_t *p)
GAVL_PUBLIC int | gavl_audio_frame_skip (const gavl_audio_format_t *format, gavl_audio_frame_t *f, int num_samples)
| Skip samples in am audio frame.
GAVL_PUBLIC int | gavl_audio_frame_plot (const gavl_audio_format_t *format, const gavl_audio_frame_t *frame, const char *name_base)
| Plot an audio frame to an ASCII file.
GAVL_PUBLIC void | gavl_audio_options_set_quality (gavl_audio_options_t *opt, int quality)
| Set the quality level for the converter.
GAVL_PUBLIC int | gavl_audio_options_get_quality (const gavl_audio_options_t *opt)
| Get the quality level for a converter.
GAVL_PUBLIC void | gavl_audio_options_set_dither_mode (gavl_audio_options_t *opt, gavl_audio_dither_mode_t mode)
| Set the dither mode for the converter.
GAVL_PUBLIC gavl_audio_dither_mode_t | gavl_audio_options_get_dither_mode (const gavl_audio_options_t *opt)
| Get the dither mode for the converter.
GAVL_PUBLIC void | gavl_audio_options_set_resample_mode (gavl_audio_options_t *opt, gavl_resample_mode_t mode)
| Set the resample mode for the converter.
GAVL_PUBLIC gavl_resample_mode_t | gavl_audio_options_get_resample_mode (const gavl_audio_options_t *opt)
| Get the resample mode for the converter.
GAVL_PUBLIC void | gavl_audio_options_set_conversion_flags (gavl_audio_options_t *opt, int flags)
| Set the conversion flags.
GAVL_PUBLIC int | gavl_audio_options_get_conversion_flags (const gavl_audio_options_t *opt)
| Get the conversion flags.
GAVL_PUBLIC void | gavl_audio_options_set_defaults (gavl_audio_options_t *opt)
| Set all options to their defaults.
GAVL_PUBLIC void | gavl_audio_options_set_mix_matrix (gavl_audio_options_t *opt, const double **matrix)
| Set a user defined mix matrix.
GAVL_PUBLIC const double ** | gavl_audio_options_get_mix_matrix (const gavl_audio_options_t *opt)
| Get the mix matrix.
GAVL_PUBLIC gavl_audio_options_t * | gavl_audio_options_create (void)
| Create an options container.
GAVL_PUBLIC void | gavl_audio_options_copy (gavl_audio_options_t *dst, const gavl_audio_options_t *src)
| Copy audio options.
GAVL_PUBLIC void | gavl_audio_options_destroy (gavl_audio_options_t *opt)
| Destroy audio options.
GAVL_PUBLIC gavl_audio_converter_t * | gavl_audio_converter_create (void)
| Creates an audio converter.
GAVL_PUBLIC void | gavl_audio_converter_destroy (gavl_audio_converter_t *cnv)
| Destroys an audio converter and frees all associated memory.
GAVL_PUBLIC gavl_audio_options_t * | gavl_audio_converter_get_options (gavl_audio_converter_t *cnv)
| gets options of an audio converter
GAVL_PUBLIC int | gavl_audio_converter_init (gavl_audio_converter_t *cnv, const gavl_audio_format_t *input_format, const gavl_audio_format_t *output_format)
| Initialize an audio converter.
GAVL_PUBLIC int | gavl_audio_converter_init_resample (gavl_audio_converter_t *cnv, const gavl_audio_format_t *format)
| Initialize an audio converter just for resampling.
GAVL_PUBLIC int | gavl_audio_converter_reinit (gavl_audio_converter_t *cnv)
| Reinitialize an audio converter.
GAVL_PUBLIC void | gavl_audio_convert (gavl_audio_converter_t *cnv, const gavl_audio_frame_t *input_frame, gavl_audio_frame_t *output_frame)
| Convert audio.
GAVL_PUBLIC int | gavl_audio_converter_set_resample_ratio (gavl_audio_converter_t *cnv, double ratio)
| Set samplerate conversion ratio.
GAVL_PUBLIC void | gavl_audio_converter_resample (gavl_audio_converter_t *cnv, gavl_audio_frame_t *input_frame, gavl_audio_frame_t *output_frame, double ratio)
| Convert audio.
GAVL_PUBLIC gavl_volume_control_t * | gavl_volume_control_create (void)
| Create volume control.
GAVL_PUBLIC void | gavl_volume_control_destroy (gavl_volume_control_t *ctrl)
| Destroys a volume control and frees all associated memory.
GAVL_PUBLIC void | gavl_volume_control_set_format (gavl_volume_control_t *ctrl, const gavl_audio_format_t *format)
| Set format for a volume control.
GAVL_PUBLIC void | gavl_volume_control_set_volume (gavl_volume_control_t *ctrl, float volume)
| Set volume for a volume control.
GAVL_PUBLIC void | gavl_volume_control_apply (gavl_volume_control_t *ctrl, gavl_audio_frame_t *frame)
| Apply a volume control for an audio frame.
GAVL_PUBLIC int | gavl_volume_to_int (float volume, float one, int steps)
| Convert an audio volume (in dB) to an integer.
GAVL_PUBLIC float | gavl_volume_to_float (int volume, float one, int steps)
| Convert an integer audio volume to a float (in dB).
GAVL_PUBLIC void | gavl_rectangle_i_init (gavl_rectangle_i_t *r)
GAVL_PUBLIC void | gavl_rectangle_f_init (gavl_rectangle_f_t *r)
GAVL_PUBLIC void | gavl_rectangle_i_crop_to_format (gavl_rectangle_i_t *r, const gavl_video_format_t *format)
| Crop an integer rectangle so it fits into the image size of a video format.
GAVL_PUBLIC void | gavl_rectangle_f_crop_to_format (gavl_rectangle_f_t *r, const gavl_video_format_t *format)
| Crop a floating point rectangle so it fits into the image size of a video format.
GAVL_PUBLIC void | gavl_rectangle_crop_to_format_noscale (gavl_rectangle_i_t *src_rect, gavl_rectangle_i_t *dst_rect, const gavl_video_format_t *src_format, const gavl_video_format_t *dst_format)
| Set 2 rectangles as source and destination when no scaling is available.
GAVL_PUBLIC void | gavl_rectangle_crop_to_format_scale (gavl_rectangle_f_t *src_rect, gavl_rectangle_i_t *dst_rect, const gavl_video_format_t *src_format, const gavl_video_format_t *dst_format)
| Crop 2 rectangles to their formats when scaling is available.
GAVL_PUBLIC void | gavl_rectangle_crop_to_format_scale_f (gavl_rectangle_f_t *src_rect, gavl_rectangle_f_t *dst_rect, const gavl_video_format_t *src_format, const gavl_video_format_t *dst_format)
GAVL_PUBLIC void | gavl_rectangle_i_set_all (gavl_rectangle_i_t *r, const gavl_video_format_t *format)
| Let an integer rectangle span the whole image size of a video format.
GAVL_PUBLIC void | gavl_rectangle_f_set_all (gavl_rectangle_f_t *r, const gavl_video_format_t *format)
| Let a float rectangle span the whole image size of a video format.
GAVL_PUBLIC void | gavl_rectangle_i_crop_left (gavl_rectangle_i_t *r, int num_pixels)
| Crop an integer rectangle by some pixels from the left border.
GAVL_PUBLIC void | gavl_rectangle_i_crop_right (gavl_rectangle_i_t *r, int num_pixels)
| Crop an integer rectangle by some pixels from the right border.
GAVL_PUBLIC void | gavl_rectangle_i_crop_top (gavl_rectangle_i_t *r, int num_pixels)
| Crop an integer rectangle by some pixels from the top border.
GAVL_PUBLIC void | gavl_rectangle_i_crop_bottom (gavl_rectangle_i_t *r, int num_pixels)
| Crop an integer rectangle by some pixels from the bottom border.
GAVL_PUBLIC void | gavl_rectangle_f_crop_left (gavl_rectangle_f_t *r, double num_pixels)
| Crop a float rectangle by some pixels from the left border.
GAVL_PUBLIC void | gavl_rectangle_f_crop_right (gavl_rectangle_f_t *r, double num_pixels)
| Crop a float rectangle by some pixels from the right border.
GAVL_PUBLIC void | gavl_rectangle_f_crop_top (gavl_rectangle_f_t *r, double num_pixels)
| Crop a float rectangle by some pixels from the top border.
GAVL_PUBLIC void | gavl_rectangle_f_crop_bottom (gavl_rectangle_f_t *r, double num_pixels)
| Crop a float rectangle by some pixels from the bottom border.
GAVL_PUBLIC void | gavl_rectangle_i_align (gavl_rectangle_i_t *r, int h_align, int v_align)
| Align a rectangle.
GAVL_PUBLIC void | gavl_rectangle_i_align_to_format (gavl_rectangle_i_t *r, const gavl_video_format_t *format)
| Align a rectangle to a format.
GAVL_PUBLIC void | gavl_rectangle_i_copy (gavl_rectangle_i_t *dst, const gavl_rectangle_i_t *src)
| Copy an integer rectangle.
GAVL_PUBLIC void | gavl_rectangle_f_copy (gavl_rectangle_f_t *dst, const gavl_rectangle_f_t *src)
| Copy a float rectangle.
GAVL_PUBLIC void | gavl_rectangle_i_to_f (gavl_rectangle_f_t *dst, const gavl_rectangle_i_t *src)
| Convert an integer rectangle to a floating point rectangle.
GAVL_PUBLIC void | gavl_rectangle_f_to_i (gavl_rectangle_i_t *dst, const gavl_rectangle_f_t *src)
| Convert a floating point rectangle to an integer rectangle.
GAVL_PUBLIC int | gavl_rectangle_i_is_empty (const gavl_rectangle_i_t *r)
| Check if an integer rectangle is empty.
GAVL_PUBLIC int | gavl_rectangle_f_is_empty (const gavl_rectangle_f_t *r)
| Check if a float rectangle is empty.
GAVL_PUBLIC void | gavl_rectangle_fit_aspect (gavl_rectangle_i_t *dst_rect, const gavl_video_format_t *src_format, const gavl_rectangle_f_t *src_rect, const gavl_video_format_t *dst_format, float zoom, float squeeze)
| Calculate a destination rectangle for scaling.
GAVL_PUBLIC void | gavl_rectangle_fit_aspect_f (gavl_rectangle_f_t *r, const gavl_video_format_t *src_format, const gavl_rectangle_f_t *src_rect, const gavl_video_format_t *dst_format, float zoom, float squeeze, int do_orient)
GAVL_PUBLIC void | gavl_rectangle_i_dump (const gavl_rectangle_i_t *r)
| Dump a rectangle to stderr.
GAVL_PUBLIC void | gavl_rectangle_f_dump (const gavl_rectangle_f_t *r)
| Dump a floating point rectangle to stderr.
GAVL_PUBLIC int | gavl_pixelformat_num_channels (gavl_pixelformat_t pixelformat)
| Get the number of channels.
GAVL_PUBLIC gavl_color_channel_t | gavl_pixelformat_get_channel (gavl_pixelformat_t pixelformat, int index)
| Get the color channel.
GAVL_PUBLIC int | gavl_pixelformat_num_planes (gavl_pixelformat_t pixelformat)
| Get the number of planes.
GAVL_PUBLIC void | gavl_pixelformat_chroma_sub (gavl_pixelformat_t pixelformat, int *sub_h, int *sub_v)
| Get the horizontal and vertical subsampling factors.
GAVL_PUBLIC int | gavl_pixelformat_bytes_per_component (gavl_pixelformat_t pixelformat)
| Get bytes per component for planar formats.
GAVL_PUBLIC int | gavl_pixelformat_bytes_per_pixel (gavl_pixelformat_t pixelformat)
| Get bytes per pixel for packed formats.
GAVL_PUBLIC int | gavl_pixelformat_bits_per_pixel (gavl_pixelformat_t pixelformat)
| Get the effective number of bits for one pixel.
GAVL_PUBLIC int | gavl_pixelformat_conversion_penalty (gavl_pixelformat_t src, gavl_pixelformat_t dst)
| Get the conversion penalty for pixelformat conversions.
GAVL_PUBLIC gavl_pixelformat_t | gavl_pixelformat_get_best (gavl_pixelformat_t src, const gavl_pixelformat_t *dst_supported, int *penalty)
| Get the best destination format for a given source format.
GAVL_PUBLIC const char * | gavl_pixelformat_to_string (gavl_pixelformat_t pixelformat)
| Translate a pixelformat into a human readable string.
GAVL_PUBLIC const char * | gavl_pixelformat_to_short_string (gavl_pixelformat_t pixelformat)
| Translate a pixelformat into a short string.
GAVL_PUBLIC gavl_pixelformat_t | gavl_string_to_pixelformat (const char *name)
| Translate a pixelformat name into a pixelformat.
GAVL_PUBLIC gavl_pixelformat_t | gavl_short_string_to_pixelformat (const char *name)
| Translate a short pixelformat name into a pixelformat.
GAVL_PUBLIC const uint32_t * | gavl_pixelformat_get_masks (gavl_pixelformat_t pixelformat)
| Get the masks for the components.
GAVL_PUBLIC int | gavl_num_pixelformats (void)
| Get total number of supported pixelformats.
GAVL_PUBLIC gavl_pixelformat_t | gavl_get_pixelformat (int index)
| Get the pixelformat from index.
GAVL_PUBLIC const char * | gavl_chroma_placement_to_string (gavl_chroma_placement_t mode)
| Translate a chroma placement into a human readable string.
GAVL_PUBLIC const char * | gavl_chroma_placement_to_short_string (gavl_chroma_placement_t mode)
| Translate a chroma placement into a short string.
GAVL_PUBLIC gavl_chroma_placement_t | gavl_short_string_to_chroma_placement (const char *mode)
| Translate a short string into a chroma placement.
GAVL_PUBLIC const char * | gavl_framerate_mode_to_string (gavl_framerate_mode_t mode)
| Translate a framerate mode into a human readable string.
GAVL_PUBLIC const char * | gavl_framerate_mode_to_short_string (gavl_framerate_mode_t mode)
| Translate a framerate mode into a short string.
GAVL_PUBLIC gavl_framerate_mode_t | gavl_short_string_to_framerate_mode (const char *mode)
| Translate a short string into a framerate mode.
GAVL_PUBLIC const char * | gavl_interlace_mode_to_string (gavl_interlace_mode_t mode)
| Translate an interlace mode into a human readable string.
GAVL_PUBLIC const char * | gavl_interlace_mode_to_short_string (gavl_interlace_mode_t mode)
| Translate an interlace mode into a short string.
GAVL_PUBLIC gavl_interlace_mode_t | gavl_short_string_to_interlace_mode (const char *mode)
| Translate a short string to an interlace mode.
GAVL_PUBLIC int | gavl_interlace_mode_is_mixed (gavl_interlace_mode_t mode)
| Check if an interlace mode is mixed.
GAVL_PUBLIC void | gavl_video_format_copy (gavl_video_format_t *dst, const gavl_video_format_t *src)
| Copy one video format to another.
GAVL_PUBLIC int | gavl_video_formats_equal (const gavl_video_format_t *format_1, const gavl_video_format_t *format_2)
| Compare 2 video formats.
GAVL_PUBLIC void | gavl_video_format_get_chroma_offset (const gavl_video_format_t *format, int field, int plane, float *off_x, float *off_y)
| Get the chroma offsets relative to the luma samples.
GAVL_PUBLIC void | gavl_video_format_fit_to_source (gavl_video_format_t *dst, const gavl_video_format_t *src)
| Set the image size of a destination format from a source format.
GAVL_PUBLIC int | gavl_video_format_get_image_size (const gavl_video_format_t *format)
| Get the unpadded image size.
GAVL_PUBLIC void | gavl_video_format_get_frame_layout (const gavl_video_format_t *format, int *offsets, int *strides, int *buffersizes, int multiplane)
GAVL_PUBLIC void | gavl_video_format_set_frame_size (gavl_video_format_t *format, int pad_h, int pad_v)
| Set the frame size from the image size.
GAVL_PUBLIC int | gavl_get_color_channel_format (const gavl_video_format_t *frame_format, gavl_video_format_t *channel_format, gavl_color_channel_t ch)
| Get the video format for extracting/merging one channel.
GAVL_PUBLIC void | gavl_get_field_format (const gavl_video_format_t *frame_format, gavl_video_format_t *field_format, int field)
| Get the video format of one field.
GAVL_PUBLIC void | gavl_video_format_dump (const gavl_video_format_t *format)
| Dump a video format to stderr.
GAVL_PUBLIC void | gavl_video_format_dumpi (const gavl_video_format_t *format, int indent)
| Dump a video format to stderr.
GAVL_PUBLIC void | gavl_video_format_normalize_orientation (gavl_video_format_t *in_format, gavl_video_format_t *out_format)
GAVL_PUBLIC const char * | gavl_image_orientation_to_string (gavl_image_orientation_t orient)
GAVL_PUBLIC int | gavl_image_orientation_is_transposed (gavl_image_orientation_t orient)
GAVL_PUBLIC gavl_video_frame_t * | gavl_video_frame_create (const gavl_video_format_t *format)
| Create video frame.
GAVL_PUBLIC gavl_video_frame_t * | gavl_video_frame_create_nopad (const gavl_video_format_t *format)
| Create video frame without padding.
GAVL_PUBLIC void | gavl_video_frame_destroy (gavl_video_frame_t *frame)
| Destroy a video frame.
GAVL_PUBLIC void | gavl_video_frame_null (gavl_video_frame_t *frame)
| Zero all pointers in the video frame.
GAVL_PUBLIC void | gavl_video_frame_clear (gavl_video_frame_t *frame, const gavl_video_format_t *format)
| Fill the frame with black color.
GAVL_PUBLIC void | gavl_video_frame_fill (gavl_video_frame_t *frame, const gavl_video_format_t *format, const float *color)
| Fill the frame with a user specified color.
GAVL_PUBLIC void | gavl_video_frame_absdiff (gavl_video_frame_t *dst, const gavl_video_frame_t *src1, const gavl_video_frame_t *src2, const gavl_video_format_t *format)
| Fill the frame with the absolute difference of 2 source frames.
GAVL_PUBLIC void | gavl_video_frame_psnr (double *psnr, const gavl_video_frame_t *src1, const gavl_video_frame_t *src2, const gavl_video_format_t *format)
| Calculate the PSNR of 2 source frames.
GAVL_PUBLIC int | gavl_video_frame_ssim (const gavl_video_frame_t *src1, const gavl_video_frame_t *src2, gavl_video_frame_t *dst, const gavl_video_format_t *format)
| Calculate the SSIM of 2 source frames.
GAVL_PUBLIC void | gavl_video_frame_copy (const gavl_video_format_t *format, gavl_video_frame_t *dst, const gavl_video_frame_t *src)
| Copy one video frame to another.
GAVL_PUBLIC void | gavl_video_frame_copy_plane (const gavl_video_format_t *format, gavl_video_frame_t *dst, const gavl_video_frame_t *src, int plane)
| Copy a single plane from one video frame to another.
GAVL_PUBLIC void | gavl_video_frame_copy_flip_x (const gavl_video_format_t *format, gavl_video_frame_t *dst, const gavl_video_frame_t *src)
| Copy one video frame to another with horizontal flipping.
GAVL_PUBLIC void | gavl_video_frame_copy_flip_y (const gavl_video_format_t *format, gavl_video_frame_t *dst, const gavl_video_frame_t *src)
| Copy one video frame to another with vertical flipping.
GAVL_PUBLIC void | gavl_video_frame_copy_flip_xy (const gavl_video_format_t *format, gavl_video_frame_t *dst, const gavl_video_frame_t *src)
| Copy one video frame to another with horizontal and vertical flipping.
GAVL_PUBLIC void | gavl_video_frame_copy_metadata (gavl_video_frame_t *dst, const gavl_video_frame_t *src)
| Copy metadata of one video frame to another.
GAVL_PUBLIC void | gavl_video_frame_get_subframe (gavl_pixelformat_t pixelformat, const gavl_video_frame_t *src, gavl_video_frame_t *dst, const gavl_rectangle_i_t *src_rect)
| Get a subframe of another frame.
GAVL_PUBLIC void | gavl_video_frame_get_field (gavl_pixelformat_t pixelformat, const gavl_video_frame_t *src, gavl_video_frame_t *dst, int field)
| Get a field from a frame.
GAVL_PUBLIC void | gavl_video_frame_dump (gavl_video_frame_t *frame, const gavl_video_format_t *format, const char *namebase)
| Dump a video frame to files.
GAVL_PUBLIC void | gavl_video_frame_dump_metadata (const gavl_video_format_t *format, const gavl_video_frame_t *frame)
| Dump a metadata of a video frame.
GAVL_PUBLIC void | gavl_video_frame_set_strides (gavl_video_frame_t *frame, const gavl_video_format_t *format)
| Set the strides according to the format.
GAVL_PUBLIC void | gavl_video_frame_set_planes (gavl_video_frame_t *frame, const gavl_video_format_t *format, uint8_t *buffer)
| Set the frames according to the format.
GAVL_PUBLIC int | gavl_video_frame_continuous (const gavl_video_format_t *format, const gavl_video_frame_t *frame)
| Check if a video frame uses a continuous memory block.
GAVL_PUBLIC int | gavl_video_frame_extract_channel (const gavl_video_format_t *format, gavl_color_channel_t ch, const gavl_video_frame_t *src, gavl_video_frame_t *dst)
| Extract one channel of a video frame into a grayscale image.
GAVL_PUBLIC int | gavl_video_frame_insert_channel (const gavl_video_format_t *format, gavl_color_channel_t ch, const gavl_video_frame_t *src, gavl_video_frame_t *dst)
| Insert one channel from a grayscale image into a video frame.
GAVL_PUBLIC int | gavl_video_frames_equal (const gavl_video_format_t *format, const gavl_video_frame_t *f1, const gavl_video_frame_t *f2)
| Check if 2 video frames are bit-identical.
GAVL_PUBLIC void | gavl_video_frame_normalize_orientation (const gavl_video_format_t *in_format, const gavl_video_format_t *out_format, const gavl_video_frame_t *in_frame, gavl_video_frame_t *out_frame)
GAVL_PUBLIC void | gavl_video_frame_to_packet_metadata (const gavl_video_frame_t *frame, gavl_packet_t *pkt)
GAVL_PUBLIC void | gavl_packet_to_video_frame_metadata (const gavl_packet_t *p, gavl_video_frame_t *frame)
GAVL_PUBLIC void | gavl_video_frame_set_from_packet (gavl_video_frame_t *frame, const gavl_video_format_t *format, gavl_packet_t *p)
GAVL_PUBLIC void | gavl_video_options_set_defaults (gavl_video_options_t *opt)
| Set all options to their defaults.
GAVL_PUBLIC gavl_video_options_t * | gavl_video_options_create (void)
| Create an options container.
GAVL_PUBLIC void | gavl_video_options_copy (gavl_video_options_t *dst, const gavl_video_options_t *src)
| Copy video options.
GAVL_PUBLIC void | gavl_video_options_destroy (gavl_video_options_t *opt)
| Destroy video options.
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.
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.
GAVL_PUBLIC void | gavl_video_options_set_quality (gavl_video_options_t *opt, int quality)
| Set the quality level for the converter.
GAVL_PUBLIC int | gavl_video_options_get_quality (const gavl_video_options_t *opt)
| Get the quality level for the converter.
GAVL_PUBLIC void | gavl_video_options_set_conversion_flags (gavl_video_options_t *opt, int conversion_flags)
| Set the conversion flags.
GAVL_PUBLIC int | gavl_video_options_get_conversion_flags (const gavl_video_options_t *opt)
| Get the conversion flags.
GAVL_PUBLIC void | gavl_video_options_set_alpha_mode (gavl_video_options_t *opt, gavl_alpha_mode_t alpha_mode)
| Set the alpha mode.
GAVL_PUBLIC gavl_alpha_mode_t | gavl_video_options_get_alpha_mode (const gavl_video_options_t *opt)
| Get the alpha 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.
GAVL_PUBLIC gavl_scale_mode_t | gavl_video_options_get_scale_mode (const gavl_video_options_t *opt)
| Get the scale mode.
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.
GAVL_PUBLIC int | gavl_video_options_get_scale_order (const gavl_video_options_t *opt)
| Get the scale order for GAVL_SCALE_SINC_LANCZOS.
GAVL_PUBLIC void | gavl_video_options_set_background_color (gavl_video_options_t *opt, const double *color)
| Set the background color for alpha blending.
GAVL_PUBLIC void | gavl_video_options_get_background_color (const gavl_video_options_t *opt, double *color)
| Get the background color for alpha blending.
GAVL_PUBLIC void | gavl_video_options_set_deinterlace_mode (gavl_video_options_t *opt, gavl_deinterlace_mode_t deinterlace_mode)
| Set the deinterlace mode.
GAVL_PUBLIC gavl_deinterlace_mode_t | gavl_video_options_get_deinterlace_mode (const gavl_video_options_t *opt)
| Get the deinterlace 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.
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.
GAVL_PUBLIC void | gavl_video_options_set_downscale_filter (gavl_video_options_t *opt, gavl_downscale_filter_t f)
| Set antialiasing filter for downscaling.
GAVL_PUBLIC gavl_downscale_filter_t | gavl_video_options_get_downscale_filter (const gavl_video_options_t *opt)
| Get the antialiasing filter for downscaling.
GAVL_PUBLIC void | gavl_video_options_set_downscale_blur (gavl_video_options_t *opt, float f)
| Set blur factor for downscaling.
GAVL_PUBLIC float | gavl_video_options_get_downscale_blur (const gavl_video_options_t *opt)
| Get blur factor for downscaling.
GAVL_PUBLIC void | gavl_video_options_set_thread_pool (gavl_video_options_t *opt, gavl_thread_pool_t *tp)
GAVL_PUBLIC gavl_thread_pool_t * | gavl_video_options_get_thread_pool (const gavl_video_options_t *opt)
GAVL_PUBLIC gavl_video_converter_t * | gavl_video_converter_create (void)
| Creates a video converter.
GAVL_PUBLIC void | gavl_video_converter_destroy (gavl_video_converter_t *cnv)
| Destroys a video converter and frees all associated memory.
GAVL_PUBLIC gavl_video_options_t * | gavl_video_converter_get_options (gavl_video_converter_t *cnv)
| gets options of a video converter
GAVL_PUBLIC int | gavl_video_converter_init (gavl_video_converter_t *cnv, const gavl_video_format_t *input_format, const gavl_video_format_t *output_format)
| Initialize a video converter.
GAVL_PUBLIC int | gavl_video_converter_reinit (gavl_video_converter_t *cnv)
| Reinitialize a video converter.
GAVL_PUBLIC void | gavl_video_convert (gavl_video_converter_t *cnv, const gavl_video_frame_t *input_frame, gavl_video_frame_t *output_frame)
| Convert video.
GAVL_PUBLIC gavl_video_scaler_t * | gavl_video_scaler_create (void)
| Create a video scaler.
GAVL_PUBLIC void | gavl_video_scaler_destroy (gavl_video_scaler_t *scaler)
| Destroy a video scaler.
GAVL_PUBLIC gavl_video_options_t * | gavl_video_scaler_get_options (gavl_video_scaler_t *scaler)
| gets options of a scaler
GAVL_PUBLIC int | gavl_video_scaler_init (gavl_video_scaler_t *scaler, const gavl_video_format_t *src_format, const gavl_video_format_t *dst_format)
| Initialize a video scaler.
GAVL_PUBLIC int | gavl_video_scaler_init_convolve (gavl_video_scaler_t *scaler, const gavl_video_format_t *format, int h_radius, const float *h_coeffs, int v_radius, const float *v_coeffs)
| Initialize a video scaler as a generic convolver.
GAVL_PUBLIC void | gavl_video_scaler_scale (gavl_video_scaler_t *scaler, const gavl_video_frame_t *input_frame, gavl_video_frame_t *output_frame)
| Scale video.
GAVL_PUBLIC gavl_video_deinterlacer_t * | gavl_video_deinterlacer_create (void)
| Create a video deinterlacer.
GAVL_PUBLIC void | gavl_video_deinterlacer_destroy (gavl_video_deinterlacer_t *deinterlacer)
| Destroy a video deinterlacer.
GAVL_PUBLIC gavl_video_options_t * | gavl_video_deinterlacer_get_options (gavl_video_deinterlacer_t *deinterlacer)
| gets options of a deinterlacer
GAVL_PUBLIC int | gavl_video_deinterlacer_init (gavl_video_deinterlacer_t *deinterlacer, const gavl_video_format_t *src_format)
| Initialize a video deinterlacer.
GAVL_PUBLIC void | gavl_video_deinterlacer_deinterlace (gavl_video_deinterlacer_t *deinterlacer, const gavl_video_frame_t *input_frame, gavl_video_frame_t *output_frame)
| Deinterlace video.
GAVL_PUBLIC gavl_overlay_blend_context_t * | gavl_overlay_blend_context_create (void)
| Create a blend context.
GAVL_PUBLIC void | gavl_overlay_blend_context_destroy (gavl_overlay_blend_context_t *ctx)
| Destroy a blend context and free all associated memory.
GAVL_PUBLIC gavl_video_options_t * | gavl_overlay_blend_context_get_options (gavl_overlay_blend_context_t *ctx)
| Get options from a blend context.
GAVL_PUBLIC int | gavl_overlay_blend_context_init (gavl_overlay_blend_context_t *ctx, const gavl_video_format_t *frame_format, gavl_video_format_t *overlay_format)
| Initialize the blend context.
GAVL_PUBLIC void | gavl_overlay_blend_context_set_overlay (gavl_overlay_blend_context_t *ctx, gavl_overlay_t *ovl)
| Set a new overlay.
GAVL_PUBLIC void | gavl_overlay_blend (gavl_overlay_blend_context_t *ctx, gavl_video_frame_t *dst_frame)
| Blend overlay onto video frame.
GAVL_PUBLIC gavl_video_sink_t * | gavl_overlay_blend_context_get_sink (gavl_overlay_blend_context_t *ctx)
| Get the sink for overlays.
GAVL_PUBLIC gavl_image_transform_t * | gavl_image_transform_create (void)
| Create a transformation engine.
GAVL_PUBLIC void | gavl_image_transform_destroy (gavl_image_transform_t *t)
| Destroy a transformation engine.
GAVL_PUBLIC int | gavl_image_transform_init (gavl_image_transform_t *t, gavl_video_format_t *format, gavl_image_transform_func func, void *priv)
| Initialize a transformation engine.
GAVL_PUBLIC void | gavl_image_transform_transform (gavl_image_transform_t *t, gavl_video_frame_t *in_frame, gavl_video_frame_t *out_frame)
| Transform an image.
GAVL_PUBLIC gavl_video_options_t * | gavl_image_transform_get_options (gavl_image_transform_t *t)
| Get transformation options.
GAVL_PUBLIC gavl_frame_table_t * | gavl_frame_table_create (void)
| Create a frame table.
GAVL_PUBLIC gavl_frame_table_t * | gavl_frame_table_create_audio (int samplerate, int64_t offset, int64_t duration, gavl_timecode_format_t *fmt_ret)
| Create a frame table for an audio stream.
GAVL_PUBLIC gavl_frame_table_t * | gavl_frame_table_create_cfr (int64_t offset, int64_t frame_duration, int64_t num_frames, gavl_timecode_t start_timecode)
| Create a frame table for constant framerate video.
GAVL_PUBLIC gavl_frame_table_t * | gavl_frame_table_copy (const gavl_frame_table_t *tab)
| Copy a frame table to another.
GAVL_PUBLIC void | gavl_frame_table_destroy (gavl_frame_table_t *t)
| Destroy a frame table and free all memory.
GAVL_PUBLIC void | gavl_frame_table_append_entry (gavl_frame_table_t *t, int64_t duration)
| Append an entry.
GAVL_PUBLIC void | gavl_frame_table_append_timecode (gavl_frame_table_t *t, int64_t pts, gavl_timecode_t tc)
| Append a timecodes.
GAVL_PUBLIC int64_t | gavl_frame_table_frame_to_time (const gavl_frame_table_t *t, int64_t frame, int *duration)
| Convert a frame index to a timestamp.
GAVL_PUBLIC int64_t | gavl_frame_table_time_to_frame (const gavl_frame_table_t *t, int64_t time, int64_t *start_time)
| Convert a timestamp to a frame index.
GAVL_PUBLIC gavl_timecode_t | gavl_frame_table_time_to_timecode (const gavl_frame_table_t *t, int64_t time, int64_t *start_time, const gavl_timecode_format_t *fmt)
| Convert a timestamp to a timecode.
GAVL_PUBLIC int64_t | gavl_frame_table_timecode_to_time (const gavl_frame_table_t *t, gavl_timecode_t tc, const gavl_timecode_format_t *fmt)
| Convert a timecode to a timestamp.
GAVL_PUBLIC gavl_timecode_t | gavl_frame_table_frame_to_timecode (const gavl_frame_table_t *t, int64_t frame, int64_t *start_time, const gavl_timecode_format_t *fmt)
| Convert a frame index to a timecode.
GAVL_PUBLIC int64_t | gavl_frame_table_num_frames (const gavl_frame_table_t *t)
| get the total number of frames
GAVL_PUBLIC int64_t | gavl_frame_table_duration (const gavl_frame_table_t *t)
| get the total duration of all frames
GAVL_PUBLIC int64_t | gavl_frame_table_end_time (const gavl_frame_table_t *t)
| get the end time of the last frame
GAVL_PUBLIC int | gavl_frame_table_save (const gavl_frame_table_t *t, const char *filename)
| Save a frame table to a file.
GAVL_PUBLIC gavl_frame_table_t * | gavl_frame_table_load (const char *filename)
| Load a frame table from a file.
GAVL_PUBLIC void | gavl_frame_table_dump (const gavl_frame_table_t *t)
| Dump a frame table to stderr for debugging.
GAVL_PUBLIC gavl_video_frame_pool_t * | gavl_video_frame_pool_create (gavl_hw_context_t *hwctx)
| Create a video frame pool.
GAVL_PUBLIC gavl_video_frame_t * | gavl_video_frame_pool_get (gavl_video_frame_pool_t *p)
| Create a video frame pool.
GAVL_PUBLIC void | gavl_video_frame_pool_release (gavl_video_frame_t *frame)
GAVL_PUBLIC int | gavl_video_frame_pool_set_format (gavl_video_frame_pool_t *p, const gavl_video_format_t *fmt)
GAVL_PUBLIC const gavl_video_format_t * | gavl_video_frame_pool_get_format (const gavl_video_frame_pool_t *p)
GAVL_PUBLIC void | gavl_video_frame_pool_destroy (gavl_video_frame_pool_t *p)
| Destroy a video frame pool.
GAVL_PUBLIC void | gavl_video_frame_pool_reset (gavl_video_frame_pool_t *p)
| Reset a video frame pool.
GAVL_PUBLIC void | gavl_video_frame_debayer (gavl_video_options_t *opt, gavl_video_frame_t *src, gavl_video_frame_t *dst, int bayer_format, gavl_video_format_t *dst_format)

## Detailed Description

external api header.

## Function Documentation

## gavl_video_options_set_deinterlace_mode()

GAVL_PUBLIC void gavl_video_options_set_deinterlace_mode | ( | gavl_video_options_t * | opt,
|  | gavl_deinterlace_mode_t | deinterlace_mode )

Set the deinterlace mode.

Parameters

  opt | Video options
  deinterlace_mode | Deinterlace mode

## gavl_video_options_get_deinterlace_mode()

GAVL_PUBLIC gavl_deinterlace_mode_t gavl_video_options_get_deinterlace_mode | ( | const gavl_video_options_t * | opt | ) |

Get the deinterlace mode.

Parameters

  opt | Video options

Returns
  Deinterlace mode