| GStreamer Base Plugins 1.0 Library Reference Manual | ||||
|---|---|---|---|---|
| Top | Description | ||||
#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
GstVideoResampler is a structure which holds the information required to perform various kinds of resampling filtering.
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.
| the input size | |
| the output size | |
| the maximum number of taps | |
| the number of phases | |
| array with the source offset for each output element | |
| array with the phase to use for each output element | |
| array with new number of taps for each phase | |
| the taps for all phases |
Since 1.6
typedef enum {
GST_VIDEO_RESAMPLER_FLAG_NONE = (0),
GST_VIDEO_RESAMPLER_FLAG_HALF_TAPS = (1 << 0),
} GstVideoResamplerFlags;
Different resampler flags.
| no flags | |
| when no taps are given, half the number of calculated taps. This can be used when making scalers for the different fields of an interlaced picture. Since 1.10 |
Since 1.6
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
| Duplicates the samples when upsampling and drops when downsampling | |
| Uses linear interpolation to reconstruct missing samples and averaging to downsample | |
| Uses cubic interpolation | |
| Uses sinc interpolation | |
| Uses lanczos interpolation |
Since 1.6
void gst_video_resampler_clear (GstVideoResampler *resampler);
Clear a previously initialized GstVideoResampler resampler.
|
a GstVideoResampler |
Since 1.6
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 "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
#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
#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.
#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.
#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.