gstvideosink

gstvideosink — Base class for video sinks

Synopsis


#include <gst/video/gstvideosink.h>

                    GstVideoSink;
                    GstVideoSinkClass;
                    GstVideoRectangle;
#define             GST_VIDEO_SINK_HEIGHT               (obj)
#define             GST_VIDEO_SINK_PAD                  (obj)
#define             GST_VIDEO_SINK_WIDTH                (obj)
void                gst_video_sink_center_rect          (GstVideoRectangle src,
                                                         GstVideoRectangle dst,
                                                         GstVideoRectangle *result,
                                                         gboolean scaling);

Object Hierarchy

  GObject
   +----GstObject
         +----GstElement
               +----GstBaseSink
                     +----GstVideoSink

Properties

  "show-preroll-frame"       gboolean              : Read / Write / Construct

Description

Provides useful functions and a base class for video sinks.

GstVideoSink will configure the default base sink to drop frames that arrive later than 20ms as this is considered the default threshold for observing out-of-sync frames.

Details

GstVideoSink

typedef struct _GstVideoSink GstVideoSink;

The video sink instance structure. Derived video sinks should set the height and width members.


GstVideoSinkClass

typedef struct {
  GstBaseSinkClass parent_class;

  GstFlowReturn  (*show_frame) (GstVideoSink *video_sink, GstBuffer *buf);
} GstVideoSinkClass;

The video sink class structure. Derived classes should override the show_frame virtual function.

GstBaseSinkClass parent_class; the parent class structure
show_frame () render a video frame. Maps to "render" and "preroll" vfuncs. Rendering during preroll will be suppressed if the 'show-preroll-frame' property is set to FALSE. Since: 0.10.25

GstVideoRectangle

typedef struct {
  gint x;
  gint y;
  gint w;
  gint h;
} GstVideoRectangle;

Helper structure representing a rectangular area.

gint x; X coordinate of rectangle's top-left point
gint y; Y coordinate of rectangle's top-left point
gint w; width of the rectangle
gint h; height of the rectangle

GST_VIDEO_SINK_HEIGHT()

#define GST_VIDEO_SINK_HEIGHT(obj) (GST_VIDEO_SINK_CAST (obj)->height)

obj :

GST_VIDEO_SINK_PAD()

#define GST_VIDEO_SINK_PAD(obj) GST_BASE_SINK_PAD(obj)

Get the sink GstPad of obj.

obj : a GstVideoSink

GST_VIDEO_SINK_WIDTH()

#define GST_VIDEO_SINK_WIDTH(obj) (GST_VIDEO_SINK_CAST (obj)->width)

obj :

gst_video_sink_center_rect ()

void                gst_video_sink_center_rect          (GstVideoRectangle src,
                                                         GstVideoRectangle dst,
                                                         GstVideoRectangle *result,
                                                         gboolean scaling);

Takes src rectangle and position it at the center of dst rectangle with or without scaling. It handles clipping if the src rectangle is bigger than the dst one and scaling is set to FALSE.

src : the GstVideoRectangle describing the source area
dst : the GstVideoRectangle describing the destination area
result : a pointer to a GstVideoRectangle which will receive the result area
scaling : a gboolean indicating if scaling should be applied or not

Property Details

The "show-preroll-frame" property

  "show-preroll-frame"       gboolean              : Read / Write / Construct

Whether to show video frames during preroll. If set to FALSE, video frames will only be rendered in PLAYING state.

Default value: TRUE

Since 0.10.25