dfbvideosink

DfbVideoSink renders video frames using the DirectFB library. Rendering can happen in two different modes :

  • Standalone: this mode will take complete control of the monitor forcing DirectFB to fullscreen layout.

    This is convenient to test using the gst-launch-1.0 command line tool or other simple applications. It is possible to interrupt playback while being in this mode by pressing the Escape key. This mode handles navigation events for every input device supported by the DirectFB library, it will look for available video modes in the fb.modes file and try to switch the framebuffer video mode to the most suitable one. Depending on hardware acceleration capabilities the element will handle scaling or not.

    If no acceleration is available it will do clipping or centering of the video frames respecting the original aspect ratio.

  • Embedded: this mode will render video frames in a surface provided by the application developer. This is a more advanced usage of the element and it is required to integrate video playback in existing DirectFB applications.

    When using this mode the element just renders to the surface provided by the application, that means it won't handle navigation events and won't resize the surface to fit video frames geometry. Application has to implement the necessary code to grab information about the negotiated geometry and resize there surface accordingly.

For both modes the element implements a buffer pool allocation system to optimize memory allocation time and handle reverse negotiation. Indeed if you insert an element like videoscale in the pipeline the video sink will negotiate with it to try get a scaled video for either the fullscreen layout or the application provided external surface.

Example application

Example pipelines

 gst-launch-1.0 -v videotestsrc ! dfbvideosink hue=20000 saturation=40000 brightness=25000

test the colorbalance interface implementation in dfbvideosink

Hierarchy

GObject
    ╰──GInitiallyUnowned
        ╰──GstObject
            ╰──GstElement
                ╰──GstBaseSink
                    ╰──GstVideoSink
                        ╰──dfbvideosink

Factory details

Authors: – Julien Moutte

Classification:Sink/Video

Rank – marginal

Plugin – gstdirectfb

Package – GStreamer Bad Plug-ins git

Pad Templates

sink

video/x-raw:
      framerate: [ 0/1, 2147483647/1 ]
          width: [ 1, 2147483647 ]
         height: [ 1, 2147483647 ]

Presencealways

Directionsink


Properties

async

“async” gboolean *

Go asynchronously to PAUSED

Flags : Read / Write

Default value : true


blocksize

“blocksize” guint *

Size in bytes to pull per buffer (0 = default)

Flags : Read / Write

Default value : 4096


brightness

“brightness” gint *

The brightness of the video

Flags : Read / Write

Default value : -1


contrast

“contrast” gint *

The contrast of the video

Flags : Read / Write

Default value : -1


enable-last-sample

“enable-last-sample” gboolean *

Enable the last-sample property

Flags : Read / Write

Default value : true


hue

“hue” gint *

The hue of the video

Flags : Read / Write

Default value : -1


last-sample

“last-sample” GstSample *

The last sample received in the sink

Flags : Read


layer-mode

“layer-mode” Dfb-video-sink-layer-mode

The cooperative level handling the access permission (set this to 'administrative' when the cursor is required)

Flags : Read / Write

Default value : exclusive (1)


max-bitrate

“max-bitrate” guint64 *

The maximum bits per second to render (0 = disabled)

Flags : Read / Write

Default value : 0


max-lateness

“max-lateness” gint64 *

Maximum number of nanoseconds that a buffer can be late before it is dropped (-1 unlimited)

Flags : Read / Write

Default value : 5000000


name

“name” gchararray *

The name of the object

Flags : Read / Write / Construct


parent

“parent” GstObject *

The parent of the object

Flags : Read / Write


pixel-aspect-ratio

“pixel-aspect-ratio” gchararray *

The pixel aspect ratio of the device

Flags : Read / Write

Default value : NULL


processing-deadline

“processing-deadline” guint64 *

Maximum processing deadline in nanoseconds

Flags : Read / Write

Default value : 15000000


qos

“qos” gboolean *

Generate Quality-of-Service events upstream

Flags : Read / Write

Default value : true


render-delay

“render-delay” guint64 *

Additional render delay of the sink in nanoseconds

Flags : Read / Write

Default value : 0


saturation

“saturation” gint *

The saturation of the video

Flags : Read / Write

Default value : -1


show-preroll-frame

“show-preroll-frame” gboolean *

Whether to render video frames during preroll

Flags : Read / Write / Construct

Default value : true


stats

“stats” GstStructure *

Sink Statistics

Flags : Read

Default value :

application/x-gst-base-sink-stats, average-rate=(double)0, dropped=(guint64)0, rendered=(guint64)0;

surface

“surface” gpointer *

The target surface for video

Flags : Read / Write


sync

“sync” gboolean *

Sync on the clock

Flags : Read / Write

Default value : true


throttle-time

“throttle-time” guint64 *

The time to keep between rendered buffers (0 = disabled)

Flags : Read / Write

Default value : 0


ts-offset

“ts-offset” gint64 *

Timestamp offset in nanoseconds

Flags : Read / Write

Default value : 0


vsync

“vsync” gboolean *

Wait for next vertical sync to draw frames

Flags : Read / Write

Default value : true


Named constants

Dfb-video-sink-layer-mode

Members

none (0) – NONE
exclusive (1) – DLSCL_EXCLUSIVE
administrative (2) – DLSCL_ADMINISTRATIVE

The results of the search are