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 informations 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