GstVideoResampler

GstVideoResampler — Utility structure for resampler information

Synopsis

#include <gst/video/video-resampler.h>

struct              GstVideoResampler;
enum                GstVideoResamplerFlags;
enum                GstVideoResamplerMethod;
void                gst_video_resampler_clear           (GstVideoResampler *resampler);
gboolean            gst_video_resampler_init            (GstVideoResampler *resampler,
                                                         GstVideoResamplerMethod method,
                                                         GstVideoResamplerFlags flags,
                                                         guint n_phases,
                                                         guint n_taps,
                                                         gdouble shift,
                                                         guint in_size,
                                                         guint out_size,
                                                         GstStructure *options);
#define             GST_VIDEO_RESAMPLER_OPT_CUBIC_B
#define             GST_VIDEO_RESAMPLER_OPT_CUBIC_C
#define             GST_VIDEO_RESAMPLER_OPT_ENVELOPE
#define             GST_VIDEO_RESAMPLER_OPT_MAX_TAPS
#define             GST_VIDEO_RESAMPLER_OPT_SHARPEN
#define             GST_VIDEO_RESAMPLER_OPT_SHARPNESS

Description

GstVideoResampler is a structure which holds the information required to perform various kinds of resampling filtering.

Details

struct GstVideoResampler

struct GstVideoResampler {
  gint in_size;
  gint out_size;
  guint max_taps;
  guint n_phases;
  guint32 *offset;
  guint32 *phase;
  guint32 *n_taps;
  gdouble *taps;
};

A structure holding resampler information.

gint in_size;

the input size

gint out_size;

the output size

guint max_taps;

the maximum number of taps

guint n_phases;

the number of phases

guint32 *offset;

array with the source offset for each output element

guint32 *phase;

array with the phase to use for each output element

guint32 *n_taps;

array with new number of taps for each phase

gdouble *taps;

the taps for all phases

Since 1.6


enum GstVideoResamplerFlags

typedef enum {
  GST_VIDEO_RESAMPLER_FLAG_NONE                 = (0),
} GstVideoResamplerFlags;

Different resampler flags.

GST_VIDEO_RESAMPLER_FLAG_NONE

no flags

Since 1.6


enum GstVideoResamplerMethod

typedef enum {
  GST_VIDEO_RESAMPLER_METHOD_NEAREST,
  GST_VIDEO_RESAMPLER_METHOD_LINEAR,
  GST_VIDEO_RESAMPLER_METHOD_CUBIC,
  GST_VIDEO_RESAMPLER_METHOD_SINC,
  GST_VIDEO_RESAMPLER_METHOD_LANCZOS
} GstVideoResamplerMethod;

Different subsampling and upsampling methods

GST_VIDEO_RESAMPLER_METHOD_NEAREST

Duplicates the samples when upsampling and drops when downsampling

GST_VIDEO_RESAMPLER_METHOD_LINEAR

Uses linear interpolation to reconstruct missing samples and averaging to downsample

GST_VIDEO_RESAMPLER_METHOD_CUBIC

Uses cubic interpolation

GST_VIDEO_RESAMPLER_METHOD_SINC

Uses sinc interpolation

GST_VIDEO_RESAMPLER_METHOD_LANCZOS

Uses lanczos interpolation

Since 1.6


gst_video_resampler_clear ()

void                gst_video_resampler_clear           (GstVideoResampler *resampler);

Clear a previously initialized GstVideoResampler resampler.

resampler :

a GstVideoResampler

Since 1.6


gst_video_resampler_init ()

gboolean            gst_video_resampler_init            (GstVideoResampler *resampler,
                                                         GstVideoResamplerMethod method,
                                                         GstVideoResamplerFlags flags,
                                                         guint n_phases,
                                                         guint n_taps,
                                                         gdouble shift,
                                                         guint in_size,
                                                         guint out_size,
                                                         GstStructure *options);

GST_VIDEO_RESAMPLER_OPT_CUBIC_B

#define GST_VIDEO_RESAMPLER_OPT_CUBIC_B      "GstVideoResampler.cubic-b"

G_TYPE_DOUBLE, B parameter of the cubic filter. The B parameter controls the bluriness. Values between 0.0 and 2.0 are accepted. 1/3 is the default.

Below are some values of popular filters: B C Hermite 0.0 0.0 Spline 1.0 0.0 Catmull-Rom 0.0 1/2 Mitchell 1/3 1/3 Robidoux 0.3782 0.3109 Robidoux Sharp 0.2620 0.3690 Robidoux Soft 0.6796 0.1602


GST_VIDEO_RESAMPLER_OPT_CUBIC_C

#define GST_VIDEO_RESAMPLER_OPT_CUBIC_C      "GstVideoResampler.cubic-c"

G_TYPE_DOUBLE, C parameter of the cubic filter. The C parameter controls the Keys alpha value. Values between 0.0 and 2.0 are accepted. 1/3 is the default.

See GST_VIDEO_RESAMPLER_OPT_CUBIC_B for some more common values


GST_VIDEO_RESAMPLER_OPT_ENVELOPE

#define GST_VIDEO_RESAMPLER_OPT_ENVELOPE      "GstVideoResampler.envelope"

G_TYPE_DOUBLE, specifies the size of filter envelope for GST_VIDEO_RESAMPLER_METHOD_LANCZOS. values are clamped between 1.0 and 5.0. 2.0 is the default.


GST_VIDEO_RESAMPLER_OPT_MAX_TAPS

#define GST_VIDEO_RESAMPLER_OPT_MAX_TAPS     "GstVideoResampler.max-taps"

G_TYPE_INT, limits the maximum number of taps to use. 16 is the default.


GST_VIDEO_RESAMPLER_OPT_SHARPEN

#define GST_VIDEO_RESAMPLER_OPT_SHARPEN      "GstVideoResampler.sharpen"

G_TYPE_DOUBLE, specifies sharpening of the filter for GST_VIDEO_RESAMPLER_METHOD_LANCZOS. values are clamped between 0.0 and 1.0. 0.0 is the default.


GST_VIDEO_RESAMPLER_OPT_SHARPNESS

#define GST_VIDEO_RESAMPLER_OPT_SHARPNESS     "GstVideoResampler.sharpness"

G_TYPE_DOUBLE, specifies sharpness of the filter for GST_VIDEO_RESAMPLER_METHOD_LANCZOS. values are clamped between 0.5 and 1.5. 1.0 is the default.