gavl
Functions
DSP Utilities

DSP Utilities. More...

Functions

GAVL_PUBLIC int gavl_dsp_interpolate_video_frame (gavl_dsp_context_t *ctx, gavl_video_format_t *format, gavl_video_frame_t *src_1, gavl_video_frame_t *src_2, gavl_video_frame_t *dst, float factor)
 Do a linear interpolation of a video frame. More...
 
GAVL_PUBLIC int gavl_dsp_audio_frame_swap_endian (gavl_dsp_context_t *ctx, gavl_audio_frame_t *frame, const gavl_audio_format_t *format)
 Swap endianess an audio frame. More...
 
GAVL_PUBLIC int gavl_dsp_video_frame_swap_endian (gavl_dsp_context_t *ctx, gavl_video_frame_t *frame, const gavl_video_format_t *format)
 Swap endianess a video frame. More...
 
void gavl_dsp_video_frame_shift_bits (gavl_dsp_context_t *ctx, gavl_video_frame_t *frame, const gavl_video_format_t *format, int bits)
 Shift bits in a video frame. More...
 

Detailed Description

DSP Utilities.

These are some utility functions, which use a DSP context but operate on higher level structures like video frames. As usual, these are supported for any format.

Function Documentation

GAVL_PUBLIC int gavl_dsp_interpolate_video_frame ( gavl_dsp_context_t ctx,
gavl_video_format_t format,
gavl_video_frame_t src_1,
gavl_video_frame_t src_2,
gavl_video_frame_t dst,
float  factor 
)

Do a linear interpolation of a video frame.

Parameters
ctxA DSP context
formatVideo format
src_1Frame 1
src_2Frame 2
dstDestination frame
factorInterpolation factor
Returns
1 on success, 0 if an error occurred

If factor is 1.0, dst will be equal to src1, if factor is 0.0, dst will be equal to src2.

If the quality is at least GAVL_QUALITY_MIN, this function never fails.

GAVL_PUBLIC int gavl_dsp_audio_frame_swap_endian ( gavl_dsp_context_t ctx,
gavl_audio_frame_t frame,
const gavl_audio_format_t format 
)

Swap endianess an audio frame.

Parameters
ctxAn initialized dsp context
frameAn audio frame
formatThe format of the frame
Returns
1 on success, 0 if an error occurred

If the quality is at least GAVL_QUALITY_MIN, this function never fails.

GAVL_PUBLIC int gavl_dsp_video_frame_swap_endian ( gavl_dsp_context_t ctx,
gavl_video_frame_t frame,
const gavl_video_format_t format 
)

Swap endianess a video frame.

Parameters
ctxAn initialized dsp context
frameA video frame
formatThe format of the frame
Returns
1 on success, 0 if an error occurred

This function swaps endianess for pixelformats, which have multibyte numbers as components. For 32 bit long formats with 8 bit components, it swaps the pixels as if they were 32 bit integers. For all other formats, it does nothing.

If the quality is at least GAVL_QUALITY_MIN, this function never fails.

void gavl_dsp_video_frame_shift_bits ( gavl_dsp_context_t ctx,
gavl_video_frame_t frame,
const gavl_video_format_t format,
int  bits 
)

Shift bits in a video frame.

Parameters
ctxAn initialized dsp context
frameA video frame
formatThe format of the frame
bitsNumber of bits to shift each component

This shifts the bits of all components. It works only for 16 bit formats right now. If bits is larger than zero, the components are shifted left (resulting in larger numbers). If bits is smaller than zero, the components are shifted right (resulting in smaller numbers).

Since 1.5.0