fakevideodec

The fake video decoder ignores input bitstream except to enforce caps restrictions. It reads video width, height and framerate from caps. Then it just pushes video frames without doing any decoding. It can Also handle raw frames decoding them as they come, faking that it is decoding them.

When faking decoding encoded data, it draws a snake moving from left to right in the middle of the frame. This is a light weight drawing while it still provides an idea about how smooth is the rendering.

The fake video decoder inherits from GstVideoDecoder. It is useful to measure how smooth will be the whole rendering pipeline if you had the most efficient video decoder. Also useful to bisect issues for example when suspecting issues in a specific video decoder.

It is also useful to to use it to test the GstVideoDecoder base class.

Examples:

Fake decoding raw frames

$ gst-launch-1.0 videotestsrc !  fakevideodec ! videoconvert ! autovideosink

False decoding encoded framers

$ GST_PLUGIN_FEATURE_RANK=fakevideodec:1000 gst-launch-1.0 playbin3 uri=file:///path/to/video

Hierarchy

GObject
    ╰──GInitiallyUnowned
        ╰──GstObject
            ╰──GstElement
                ╰──GstVideoDecoder
                    ╰──fakevideodec

Factory details

Authors: – Julien Isorce

Classification:Codec/Decoder/Video

Rank – none

Plugin – basedebug

Package – GStreamer Base Plug-ins

Pad Templates

sink

video/x-h264:
          width: [ 1, 2147483647 ]
         height: [ 1, 2147483647 ]
      framerate: [ 1/1, 2147483647/1 ]
         parsed: true
video/x-h263:
          width: [ 1, 2147483647 ]
         height: [ 1, 2147483647 ]
      framerate: [ 1/1, 2147483647/1 ]
         parsed: true
video/x-theora:
          width: [ 1, 2147483647 ]
         height: [ 1, 2147483647 ]
      framerate: [ 1/1, 2147483647/1 ]
video/x-vp6:
          width: [ 1, 2147483647 ]
         height: [ 1, 2147483647 ]
      framerate: [ 1/1, 2147483647/1 ]
video/x-vp6-flash:
          width: [ 1, 2147483647 ]
         height: [ 1, 2147483647 ]
      framerate: [ 1/1, 2147483647/1 ]
video/x-vp8:
          width: [ 1, 2147483647 ]
         height: [ 1, 2147483647 ]
      framerate: [ 1/1, 2147483647/1 ]
video/x-vp9:
          width: [ 1, 2147483647 ]
         height: [ 1, 2147483647 ]
      framerate: [ 1/1, 2147483647/1 ]
video/x-divx:
          width: [ 1, 2147483647 ]
         height: [ 1, 2147483647 ]
      framerate: [ 1/1, 2147483647/1 ]
video/x-msmpeg:
          width: [ 1, 2147483647 ]
         height: [ 1, 2147483647 ]
      framerate: [ 1/1, 2147483647/1 ]
video/mpeg:
    mpegversion: { (int)1, (int)2, (int)4 }
   systemstream: false
          width: [ 1, 2147483647 ]
         height: [ 1, 2147483647 ]
      framerate: [ 1/1, 2147483647/1 ]
video/x-flash-video:
     flvversion: 1
          width: [ 1, 2147483647 ]
         height: [ 1, 2147483647 ]
      framerate: [ 1/1, 2147483647/1 ]
video/x-raw:
         format: { RGBA, RGBx, BGRA, BGRx, RGB16 }
          width: [ 1, 2147483647 ]
         height: [ 1, 2147483647 ]
      framerate: [ 1/1, 2147483647/1 ]
video/x-wmv:
     wmvversion: { (int)1, (int)2, (int)3 }
          width: [ 1, 2147483647 ]
         height: [ 1, 2147483647 ]
      framerate: [ 1/1, 2147483647/1 ]

Presencealways

Directionsink

Object typeGstPad


src

video/x-raw:
         format: { RGBA, RGBx, BGRA, BGRx, RGB16 }
          width: [ 1, 2147483647 ]
         height: [ 1, 2147483647 ]
      framerate: [ 0/1, 2147483647/1 ]

Presencealways

Directionsrc

Object typeGstPad


The results of the search are