|  | 
| GAVL_PUBLIC int | gavl_accel_supported () | 
|  | 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 gavl_sample_format_t | gavl_string_to_sample_format (const char *str) | 
|  | Convert a string to a sample format. 
 | 
|  | 
| GAVL_PUBLIC int | gavl_num_sample_formats () | 
|  | 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_interleave_mode_to_string (gavl_interleave_mode_t mode) | 
|  | Convert a gavl_interleave_mode_t to a human readable string. 
 | 
|  | 
| GAVL_PUBLIC void | gavl_audio_format_dump (const gavl_audio_format_t *format) | 
|  | 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 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_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 (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 (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 (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 (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 (gavl_audio_options_t *opt) | 
|  | Get the mix matrix. 
 | 
|  | 
| GAVL_PUBLIC gavl_audio_options_t * | gavl_audio_options_create () | 
|  | 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 () | 
|  | 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 converstion 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 () | 
|  | 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 gavl_peak_detector_t * | gavl_peak_detector_create () | 
|  | Create peak detector. 
 | 
|  | 
| GAVL_PUBLIC void | gavl_peak_detector_destroy (gavl_peak_detector_t *pd) | 
|  | Destroys a peak detector and frees all associated memory. 
 | 
|  | 
| GAVL_PUBLIC void | gavl_peak_detector_set_format (gavl_peak_detector_t *pd, const gavl_audio_format_t *format) | 
|  | Set format for a peak detector. 
 | 
|  | 
| GAVL_PUBLIC void | gavl_peak_detector_update (gavl_peak_detector_t *pd, gavl_audio_frame_t *frame) | 
|  | Feed the peak detector with a new frame. 
 | 
|  | 
| GAVL_PUBLIC void | gavl_peak_detector_get_peak (gavl_peak_detector_t *pd, double *min, double *max, double *abs) | 
|  | Get the peak volume across all channels. 
 | 
|  | 
| GAVL_PUBLIC void | gavl_peak_detector_get_peaks (gavl_peak_detector_t *pd, double *min, double *max, double *abs) | 
|  | Get the peak volume for all channels separate. 
 | 
|  | 
| GAVL_PUBLIC void | gavl_peak_detector_reset (gavl_peak_detector_t *pd) | 
|  | Reset a peak detector. 
 | 
|  | 
| 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_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_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_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 gavl_pixelformat_t | gavl_string_to_pixelformat (const char *name) | 
|  | Translate a pixelformat name into a pixelformat. 
 | 
|  | 
| GAVL_PUBLIC int | gavl_num_pixelformats () | 
|  | 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_framerate_mode_to_string (gavl_framerate_mode_t mode) | 
|  | Translate a framerate mode into a human readable string. 
 | 
|  | 
| 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 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 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 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 spefified 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 differene 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, 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_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_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_options_set_defaults (gavl_video_options_t *opt) | 
|  | Set all options to their defaults. 
 | 
|  | 
| GAVL_PUBLIC gavl_video_options_t * | gavl_video_options_create () | 
|  | 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 (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 (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 (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 (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 (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 (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 float *color) | 
|  | Set the background color for alpha blending. 
 | 
|  | 
| GAVL_PUBLIC void | gavl_video_options_get_background_color (gavl_video_options_t *opt, float *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 (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 (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 (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 (gavl_video_options_t *opt) | 
|  | Get blur factor for downscaling. 
 | 
|  | 
| GAVL_PUBLIC void | gavl_video_options_set_num_threads (gavl_video_options_t *opt, int n) | 
|  | Set number of threads. 
 | 
|  | 
| GAVL_PUBLIC int | gavl_video_options_get_num_threads (gavl_video_options_t *opt) | 
|  | Set number of threads. 
 | 
|  | 
| 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. 
 | 
|  | 
| GAVL_PUBLIC gavl_video_run_func | gavl_video_options_get_run_func (gavl_video_options_t *opt, void **client_data) | 
|  | Get function to be passed to each thread. 
 | 
|  | 
| 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. 
 | 
|  | 
| GAVL_PUBLIC gavl_video_stop_func | gavl_video_options_get_stop_func (gavl_video_options_t *opt, void **client_data) | 
|  | Get function to be passed to each thread. 
 | 
|  | 
| GAVL_PUBLIC gavl_video_converter_t * | gavl_video_converter_create () | 
|  | 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 () | 
|  | 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 () | 
|  | 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 () | 
|  | 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_image_transform_t * | gavl_image_transform_create () | 
|  | 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 () | 
|  | 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. 
 | 
|  |