videoscale

videoscale

Synopsis

struct              GstVideoScale;
enum                GstVideoScaleMethod;

Object Hierarchy

  GObject
   +----GInitiallyUnowned
         +----GstObject
               +----GstElement
                     +----GstBaseTransform
                           +----GstVideoFilter
                                 +----GstVideoScale

Properties

  "add-borders"              gboolean              : Read / Write
  "dither"                   gboolean              : Read / Write / Construct
  "envelope"                 gdouble               : Read / Write / Construct
  "method"                   GstVideoScaleMethod   : Read / Write
  "sharpen"                  gdouble               : Read / Write / Construct
  "sharpness"                gdouble               : Read / Write / Construct
  "gamma-decode"             gboolean              : Read / Write / Construct

Description

This element resizes video frames. By default the element will try to negotiate to the same size on the source and sinkpad so that no scaling is needed. It is therefore safe to insert this element in a pipeline to get more robust behaviour without any cost if no scaling is needed.

This element supports a wide range of color spaces including various YUV and RGB formats and is therefore generally able to operate anywhere in a pipeline.

Example pipelines

1
gst-launch-1.0 -v filesrc location=videotestsrc.ogg ! oggdemux ! theoradec ! videoconvert ! videoscale ! autovideosink
Decode an Ogg/Theora and display the video. If the video sink chosen cannot perform scaling, the video scaling will be performed by videoscale when you resize the video window. To create the test Ogg/Theora file refer to the documentation of theoraenc.
1
gst-launch-1.0 -v filesrc location=videotestsrc.ogg ! oggdemux ! theoradec ! videoconvert ! videoscale ! video/x-raw,width=100 ! autovideosink
Decode an Ogg/Theora and display the video with a width of 100.

Synopsis

Element Information

plugin

videoscale

author

Wim Taymans <wim.taymans@gmail.com>

class

Filter/Converter/Video/Scaler

Element Pads

name

sink

direction

sink

presence

always

details

video/x-raw, format=(string){ I420, YV12, YUY2, UYVY, AYUV, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, v210, v216, NV12, NV21, NV16, NV61, NV24, GRAY8, GRAY16_BE, GRAY16_LE, v308, RGB16, BGR16, RGB15, BGR15, UYVP, A420, RGB8P, YUV9, YVU9, IYU1, ARGB64, AYUV64, r210, I420_10LE, I420_10BE, I422_10LE, I422_10BE, Y444_10LE, Y444_10BE, GBR, GBR_10LE, GBR_10BE, NV12_64Z32, A420_10LE, A420_10BE, A422_10LE, A422_10BE, A444_10LE, A444_10BE }, width=(int)[ 1, 32767 ], height=(int)[ 1, 32767 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw(ANY), format=(string){ I420, YV12, YUY2, UYVY, AYUV, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, v210, v216, NV12, NV21, NV16, NV61, NV24, GRAY8, GRAY16_BE, GRAY16_LE, v308, RGB16, BGR16, RGB15, BGR15, UYVP, A420, RGB8P, YUV9, YVU9, IYU1, ARGB64, AYUV64, r210, I420_10LE, I420_10BE, I422_10LE, I422_10BE, Y444_10LE, Y444_10BE, GBR, GBR_10LE, GBR_10BE, NV12_64Z32, A420_10LE, A420_10BE, A422_10LE, A422_10BE, A444_10LE, A444_10BE }, width=(int)[ 1, 32767 ], height=(int)[ 1, 32767 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

name

src

direction

source

presence

always

details

video/x-raw, format=(string){ I420, YV12, YUY2, UYVY, AYUV, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, v210, v216, NV12, NV21, NV16, NV61, NV24, GRAY8, GRAY16_BE, GRAY16_LE, v308, RGB16, BGR16, RGB15, BGR15, UYVP, A420, RGB8P, YUV9, YVU9, IYU1, ARGB64, AYUV64, r210, I420_10LE, I420_10BE, I422_10LE, I422_10BE, Y444_10LE, Y444_10BE, GBR, GBR_10LE, GBR_10BE, NV12_64Z32, A420_10LE, A420_10BE, A422_10LE, A422_10BE, A444_10LE, A444_10BE }, width=(int)[ 1, 32767 ], height=(int)[ 1, 32767 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw(ANY), format=(string){ I420, YV12, YUY2, UYVY, AYUV, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, v210, v216, NV12, NV21, NV16, NV61, NV24, GRAY8, GRAY16_BE, GRAY16_LE, v308, RGB16, BGR16, RGB15, BGR15, UYVP, A420, RGB8P, YUV9, YVU9, IYU1, ARGB64, AYUV64, r210, I420_10LE, I420_10BE, I422_10LE, I422_10BE, Y444_10LE, Y444_10BE, GBR, GBR_10LE, GBR_10BE, NV12_64Z32, A420_10LE, A420_10BE, A422_10LE, A422_10BE, A444_10LE, A444_10BE }, width=(int)[ 1, 32767 ], height=(int)[ 1, 32767 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

Details

struct GstVideoScale

struct GstVideoScale;

Opaque data structure


enum GstVideoScaleMethod

typedef enum {
  GST_VIDEO_SCALE_NEAREST,
  GST_VIDEO_SCALE_BILINEAR,
  GST_VIDEO_SCALE_4TAP,
  GST_VIDEO_SCALE_LANCZOS,

  GST_VIDEO_SCALE_BILINEAR2,
  GST_VIDEO_SCALE_SINC,
  GST_VIDEO_SCALE_HERMITE,
  GST_VIDEO_SCALE_SPLINE,
  GST_VIDEO_SCALE_CATROM,
  GST_VIDEO_SCALE_MITCHELL
} GstVideoScaleMethod;

The videoscale method to use.

GST_VIDEO_SCALE_NEAREST

use nearest neighbour scaling (fast and ugly)

GST_VIDEO_SCALE_BILINEAR

use 2-tap bilinear scaling (slower but prettier).

GST_VIDEO_SCALE_4TAP

use a 4-tap sinc filter for scaling (slow).

GST_VIDEO_SCALE_LANCZOS

use a multitap Lanczos filter for scaling (slow).

GST_VIDEO_SCALE_BILINEAR2

use a multitap bilinear filter

GST_VIDEO_SCALE_SINC

use a multitap sinc filter

GST_VIDEO_SCALE_HERMITE

use a multitap bicubic Hermite filter

GST_VIDEO_SCALE_SPLINE

use a multitap bicubic spline filter

GST_VIDEO_SCALE_CATROM

use a multitap bicubic Catmull-Rom filter

GST_VIDEO_SCALE_MITCHELL

use a multitap bicubic Mitchell filter

Property Details

The "add-borders" property

  "add-borders"              gboolean              : Read / Write

Add black borders if necessary to keep the display aspect ratio.

Default value: TRUE


The "dither" property

  "dither"                   gboolean              : Read / Write / Construct

Add dither (only used for Lanczos method).

Default value: FALSE


The "envelope" property

  "envelope"                 gdouble               : Read / Write / Construct

Size of filter envelope.

Allowed values: [1,5]

Default value: 2


The "method" property

  "method"                   GstVideoScaleMethod   : Read / Write

method.

Default value: Bilinear (2-tap)


The "sharpen" property

  "sharpen"                  gdouble               : Read / Write / Construct

Sharpening.

Allowed values: [0,1]

Default value: 0


The "sharpness" property

  "sharpness"                gdouble               : Read / Write / Construct

Sharpness of filter.

Allowed values: [0.5,1.5]

Default value: 1


The "gamma-decode" property

  "gamma-decode"             gboolean              : Read / Write / Construct

Decode gamma before scaling.

Default value: FALSE

See Also

videorate, videoconvert