# glstereomix

Combine 2 input streams to produce a stereoscopic output stream. Input views are taken from the left pad and right pad respectively, and mixed according to their timelines.

If either input stream is stereoscopic, the approproriate view (left or right) is taken from each stream and placed into the output.

The multiview representation on the output is chosen according to the downstream caps.

## Examples

     gst-launch-1.0 -v videotestsrc pattern=ball name=left \
         videotestsrc name=right glstereomix name=mix \
         left. ! video/x-raw,width=640,height=480! glupload ! mix.  \
         right. ! video/x-raw,width=640,height=480! glupload ! mix.  \
         mix. ! video/x-raw'(memory:GLMemory)',multiview-mode=side-by-side ! \
         queue ! glimagesink output-multiview-mode=side-by-side

Mix 2 different videotestsrc patterns into a side-by-side stereo image and display it.

     gst-launch-1.0 -ev v4l2src name=left \
         videotestsrc name=right \
         glstereomix name=mix \
         left. ! video/x-raw,width=640,height=480 ! glupload ! glcolorconvert ! mix.  \
         right. ! video/x-raw,width=640,height=480 ! glupload ! mix.  \
         mix. ! video/x-raw'(memory:GLMemory)',multiview-mode=top-bottom ! \
         glcolorconvert ! gldownload ! queue ! x264enc ! h264parse ! \
         mp4mux ! progressreport ! filesink location=output.mp4

Mix the input from a camera to the left view, and videotestsrc to the right view, and encode as a top-bottom frame packed H.264 video.

## Hierarchy

    GObject
        ╰──GInitiallyUnowned
            ╰──GstObject
                ╰──GstElement
                    ╰──GstAggregator
                        ╰──GstVideoAggregator
                            ╰──GstGLBaseMixer
                                ╰──GstGLMixer
                                    ╰──glstereomix

## Implemented interfaces

    GstChildProxy

## Factory details

Authors: – Jan Schmidt

Classification: – `Filter/Effect/Video`

Rank – none

Plugin – opengl

Package – GStreamer Base Plug-ins

## Pad Templates

### `sink_%u`

    video/x-raw(memory:GLMemory):
             format: RGBA
              width: [ 1, 2147483647 ]
             height: [ 1, 2147483647 ]
          framerate: [ 0/1, 2147483647/1 ]
     texture-target: 2D

    video/x-raw(meta:GstVideoGLTextureUploadMeta):
             format: RGBA
              width: [ 1, 2147483647 ]
             height: [ 1, 2147483647 ]
          framerate: [ 0/1, 2147483647/1 ]
    video/x-raw:
             format: { RGBA, RGB, RGBx, BGR, BGRx, BGRA, xRGB, xBGR, ARGB, ABGR, GBRA, GBR, RGBP, BGRP, Y444, I420, YV12, Y42B, Y41B, NV12, NV21, NV16, NV61, YUY2, UYVY, Y210, AYUV, VUYA, Y410, A444, A422, GRAY8, GRAY16_LE, GRAY16_BE, RGB16, BGR16, ARGB64, A420, AV12, NV12_16L32S, NV12_4L4, RBGA, v210, RGBA64_LE, BGR10A2_LE, RGB10A2_LE, P010_10LE, P012_LE, P016_LE, Y212_LE, Y412_LE, A444_16LE, A422_16LE, A420_16LE, A444_12LE, A422_12LE, A420_12LE, A420_10LE, A422_10LE, A444_10LE, I420_12LE, I420_10LE, I422_10LE, I422_12LE, Y444_16LE, Y444_10LE }
              width: [ 1, 2147483647 ]
             height: [ 1, 2147483647 ]
          framerate: [ 0/1, 2147483647/1 ]

Presence – request

Direction – sink

Object type – GstGLStereoMixPad

### `src`

    video/x-raw(memory:GLMemory):
             format: RGBA
              width: [ 1, 2147483647 ]
             height: [ 1, 2147483647 ]
          framerate: [ 0/1, 2147483647/1 ]
     texture-target: 2D

    video/x-raw(meta:GstVideoGLTextureUploadMeta):
             format: RGBA
              width: [ 1, 2147483647 ]
             height: [ 1, 2147483647 ]
          framerate: [ 0/1, 2147483647/1 ]
    video/x-raw:
             format: { RGBA, RGB, RGBx, BGR, BGRx, BGRA, xRGB, xBGR, ARGB, ABGR, GBRA, GBR, RGBP, BGRP, Y444, I420, YV12, Y42B, Y41B, NV12, NV21, NV16, NV61, YUY2, UYVY, Y210, AYUV, VUYA, Y410, A444, A422, GRAY8, GRAY16_LE, GRAY16_BE, RGB16, BGR16, ARGB64, A420, AV12, NV12_16L32S, NV12_4L4, RBGA, v210, RGBA64_LE, BGR10A2_LE, RGB10A2_LE, P010_10LE, P012_LE, P016_LE, Y212_LE, Y412_LE, A444_16LE, A422_16LE, A420_16LE, A444_12LE, A422_12LE, A420_12LE, A420_10LE, A422_10LE, A444_10LE, I420_12LE, I420_10LE, I422_10LE, I422_12LE, Y444_16LE, Y444_10LE }
              width: [ 1, 2147483647 ]
             height: [ 1, 2147483647 ]
          framerate: [ 0/1, 2147483647/1 ]

Presence – always

Direction – src

Object type – GstAggregatorPad

## Properties

### downmix-mode

    “downmix-mode” GstGLStereoDownmix *

Output anaglyph type to generate when downmixing to mono

Flags : Read / Write

Default value : green-magenta-dubois (0)

The results of the search are