# Video wall

Source: [https://docs.qualcomm.com/doc/80-80020-50/topic/gst-concurrent-videoplay-composition.html](https://docs.qualcomm.com/doc/80-80020-50/topic/gst-concurrent-videoplay-composition.html)

The **gst-concurrent-videoplay-composition** application supports concurrent video
        playback for MP4 AVC (H.264) videos and performs composition on a video wall display.

In the concurrent video playback and composition pipeline, four decode and composition
            pipelines run concurrently. For more information about the plugins used in this
            pipeline, see Pipeline flow.

Figure : gst-concurrent-videoplay-composition pipeline with 4 streams
            
            <?xml version="1.0" encoding="UTF-8"?>
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" width="1150.000030517578125" height="420" viewbox="0 0 1150.000030517578125 420">
  <g>
    <rect x=".500030517578125" y=".50018310546875" width="1148.99951171875" height="419" rx="7.499999999999951" ry="7.499999999999951" style="fill: #fafafa;"></rect>
    <path d="M1142.000030517578125,1c3.85986328125,0,7,3.14013671875,7,7v404c0,3.85986328125-3.14013671875,7-7,7H8c-3.859855651855469,0-7-3.14013671875-7-7V8c0-3.85986328125,3.140144348144531-7,7-7h1134.000030517578125M1142.000030517578125,0H8C3.581714630126953,0,0,3.58172607421875,0,8v404c0,4.418289184570312,3.581714630126953,8,8,8h1134.000030517578125c4.418212890630457,0,8-3.581710815429688,8-8V8c0-4.41827392578125-3.581787109369543-8-8-8h0Z" style="fill: #d2d7e1;"></path>
  </g>
  <g>
    <rect x="72.255501143972651" y="23.20876962827424" width="151.365694494365016" height="339.647903860344741" rx="3.999999999999972" ry="3.999999999999972" style="fill: none; stroke: #7c8aa3; stroke-miterlimit: 10;"></rect>
    <g>
      <path d="M39.319632610358894,68.721647578428019h-9l-4.5,5.400000000001455h-5.400000000001455c-1.988224983215332,0-3.599999999998545,1.611775016783213-3.599999999998545,3.599999999998545v16.200000000000728c0,1.988226699828374,1.611775016783213,3.600000000002183,3.599999999998545,3.600000000002183h28.80000000000291c1.988226699828374,0,3.599999999998545-1.611773300173809,3.599999999998545-3.600000000002183v-16.200000000000728c0-1.988224983215332-1.611773300170171-3.599999999998545-3.599999999998545-3.599999999998545h-5.400000000001455l-4.5-5.400000000001455Z" style="fill: none; stroke: #000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2px;"></path>
      <circle cx="34.819632610358894" cy="83.121647578429474" r="5.400000000001455" style="fill: none; stroke: #000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2px;"></circle>
    </g>
    <rect x="87.938348391155159" y="53.121647578429474" width="120" height="60" rx="4" ry="4" style="fill: #007884;"></rect>
    <text transform="translate(109.785882949829102 87.797508239746094)" style="fill: #fff; font-size: 16px;"><tspan x="0" y="0">Video data</tspan></text>
    <text transform="translate(125.629632949829102 42.756828308105469)" style="font-size: 16px;"><tspan x="0" y="0">filesrc</tspan></text>
    <rect x="242.255501143973561" y="23.20876962827424" width="151.365694494364107" height="339.647903860344741" rx="3.999999999999972" ry="3.999999999999972" style="fill: none; stroke: #7c8aa3; stroke-miterlimit: 10;"></rect>
    <text transform="translate(286.512680053710938 42.756828308105469)" style="font-size: 16px;"><tspan x="0" y="0">qtdemux</tspan></text>
    <rect x="412.036179420214467" y="23.20876962827424" width="151.365694494365016" height="339.647903860344741" rx="3.999999999999972" ry="3.999999999999972" style="fill: none; stroke: #7c8aa3; stroke-miterlimit: 10;"></rect>
    <text transform="translate(449.593902587890625 42.756828308105469)" style="font-size: 16px;"><tspan x="0" y="0">h264parse</tspan></text>
    <rect x="581.944222631756929" y="23.20876962827424" width="151.365694494365016" height="339.647903860344741" rx="3.999999999999972" ry="3.999999999999972" style="fill: none; stroke: #7c8aa3; stroke-miterlimit: 10;"></rect>
    <text transform="translate(611.470611572265625 42.756828308105469)" style="font-size: 16px;"><tspan x="0" y="0">v4l2h264dec</tspan></text>
    <rect x="751.834561769877837" y="23.20876962827424" width="151.365694494365016" height="339.647903860344741" rx="3.999999999999972" ry="3.999999999999972" style="fill: none; stroke: #7c8aa3; stroke-miterlimit: 10;"></rect>
    <text transform="translate(778.369110107421875 42.756828308105469)" style="font-size: 16px;"><tspan x="0" y="0">qtivcomposer</tspan></text>
    <rect x="921.724900907998745" y="23.20876962827424" width="151.365694494359559" height="339.647903860344741" rx="3.999999999999972" ry="3.999999999999972" style="fill: none; stroke: #7c8aa3; stroke-miterlimit: 10;"></rect>
    <text transform="translate(953.146026611328125 42.756828308105469)" style="font-size: 16px;"><tspan x="0" y="0">waylandsink</tspan></text>
    <g>
      <line x1="54.048009253034252" y1="83.121647578429474" x2="87.922283772108131" y2="83.121647578429474" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 3px;"></line>
      <line x1="54.048009253034252" y1="83.121647578429474" x2="87.922283772108131" y2="83.121647578429474" style="fill: none; stroke: #000; stroke-linecap: square; stroke-miterlimit: 10;"></line>
    </g>
    <rect x="257.938348391155159" y="53.121647578429474" width="120" height="60" rx="4" ry="4" style="fill: #007884;"></rect>
    <text transform="translate(275.902984619140625 87.797508239746094)" style="fill: #fff; font-size: 16px;"><tspan x="0" y="0">Demultiplex</tspan></text>
    <g>
      <line x1="207.938348391155159" y1="83.121647578429474" x2="256.938348391155159" y2="83.121647578429474" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 3px;"></line>
      <g>
        <line x1="207.9383544921875" y1="83.12164306640625" x2="251.197357177734375" y2="83.12164306640625" style="fill: none; stroke: #000; stroke-linecap: square; stroke-miterlimit: 10;"></line>
        <polygon points="250.030166625976562 87.1107177734375 256.9383544921875 83.12164306640625 250.030166625976562 79.132568359375 250.030166625976562 87.1107177734375"></polygon>
      </g>
    </g>
    <rect x="427.719026667396975" y="53.121647578429474" width="120" height="60" rx="4" ry="4" style="fill: #007884;"></rect>
    <text transform="translate(467.250152587890625 87.797508239746094)" style="fill: #fff; font-size: 16px;"><tspan x="0" y="0">Parse</tspan></text>
    <g>
      <line x1="377.828687529276067" y1="83.121647578429474" x2="426.828687529276067" y2="83.121647578429474" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 3px;"></line>
      <g>
        <line x1="377.82867431640625" y1="83.12164306640625" x2="421.08770751953125" y2="83.12164306640625" style="fill: none; stroke: #000; stroke-linecap: square; stroke-miterlimit: 10;"></line>
        <polygon points="419.920501708984375 87.1107177734375 426.82867431640625 83.12164306640625 419.920501708984375 79.132568359375 419.920501708984375 87.1107177734375"></polygon>
      </g>
    </g>
    <rect x="597.627069878937618" y="53.121647578429474" width="120.000000000001819" height="60" rx="4" ry="4" style="fill: #007884;"></rect>
    <text transform="translate(630.642608642578125 87.797508239746094)" style="fill: #fff; font-size: 16px;"><tspan x="0" y="0">Decode</tspan></text>
    <g>
      <line x1="547.736730740816711" y1="83.121647578429474" x2="596.736730740816711" y2="83.121647578429474" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 3px;"></line>
      <g>
        <line x1="547.736724853516534" y1="83.12164306640625" x2="590.995758056640625" y2="83.12164306640625" style="fill: none; stroke: #000; stroke-linecap: square; stroke-miterlimit: 10;"></line>
        <polygon points="589.828582763671875 87.1107177734375 596.736724853515625 83.12164306640625 589.828582763671875 79.132568359375 589.828582763671875 87.1107177734375"></polygon>
      </g>
    </g>
    <rect x="767.517409017060345" y="53.121647578429474" width="120" height="294.052178663006998" rx="4" ry="4" style="fill: #2a2aea;"></rect>
    <text transform="translate(782.087554931640625 204.8236083984375)" style="fill: #fff; font-size: 16px;"><tspan x="0" y="0">Composition</tspan></text>
    <g>
      <line x1="717.627069878939437" y1="83.121647578429474" x2="766.627069878939437" y2="83.121647578429474" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 3px;"></line>
      <g>
        <line x1="717.627044677734375" y1="83.12164306640625" x2="760.886077880859375" y2="83.12164306640625" style="fill: none; stroke: #000; stroke-linecap: square; stroke-miterlimit: 10;"></line>
        <polygon points="759.718902587890625 87.1107177734375 766.627044677734375 83.12164306640625 759.718902587890625 79.132568359375 759.718902587890625 87.1107177734375"></polygon>
      </g>
    </g>
    <rect x="937.407748155181253" y="53.121647578429474" width="120" height="294.052178663006998" rx="4" ry="4" style="fill: #007884;"></rect>
    <text transform="translate(971.528656005859375 195.223533630371094)" style="fill: #fff; font-size: 16px;"><tspan x="0" y="0">Display</tspan><tspan x="-7.78125" y="19.2001953125">rendering</tspan></text>
    <g>
      <line x1="887.517409017060345" y1="83.121647578429474" x2="936.517409017060345" y2="83.121647578429474" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 3px;"></line>
      <g>
        <line x1="887.517425537109375" y1="83.12164306640625" x2="930.776397705078125" y2="83.12164306640625" style="fill: none; stroke: #000; stroke-linecap: square; stroke-miterlimit: 10;"></line>
        <polygon points="929.609222412109375 87.1107177734375 936.517425537109375 83.12164306640625 929.609222412109375 79.132568359375 929.609222412109375 87.1107177734375"></polygon>
      </g>
    </g>
    <g>
      <path d="M39.319632610358894,146.739040466096412h-9l-4.5,5.400000000001455h-5.400000000001455c-1.988224983215332,0-3.599999999998545,1.611775016783213-3.599999999998545,3.599999999998545v16.200000000000728c0,1.988226699828374,1.611775016783213,3.600000000002183,3.599999999998545,3.600000000002183h28.80000000000291c1.988226699828374,0,3.599999999998545-1.611773300173809,3.599999999998545-3.600000000002183v-16.200000000000728c0-1.988224983215332-1.611773300170171-3.599999999998545-3.599999999998545-3.599999999998545h-5.400000000001455l-4.5-5.400000000001455Z" style="fill: none; stroke: #000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2px;"></path>
      <circle cx="34.819632610358894" cy="161.139040466097867" r="5.400000000001455" style="fill: none; stroke: #000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2px;"></circle>
    </g>
    <rect x="87.938348391155159" y="131.139040466097867" width="120" height="60.000000000001819" rx="3.999999999999999" ry="3.999999999999999" style="fill: #007884;"></rect>
    <text transform="translate(109.785882949829102 165.814899444580078)" style="fill: #fff; font-size: 16px;"><tspan x="0" y="0">Video data</tspan></text>
    <g>
      <line x1="54.048009253034252" y1="161.139040466097867" x2="87.922283772108131" y2="161.139040466097867" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 3px;"></line>
      <line x1="54.048009253034252" y1="161.139040466097867" x2="87.922283772108131" y2="161.139040466097867" style="fill: none; stroke: #000; stroke-linecap: square; stroke-miterlimit: 10;"></line>
    </g>
    <rect x="257.938348391155159" y="131.139040466097867" width="120" height="60.000000000001819" rx="4" ry="4" style="fill: #007884;"></rect>
    <text transform="translate(275.902984619140625 165.814899444580078)" style="fill: #fff; font-size: 16px;"><tspan x="0" y="0">Demultiplex</tspan></text>
    <g>
      <line x1="207.938348391155159" y1="161.139040466097867" x2="256.938348391155159" y2="161.139040466097867" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 3px;"></line>
      <g>
        <line x1="207.9383544921875" y1="161.1390380859375" x2="251.197357177734375" y2="161.1390380859375" style="fill: none; stroke: #000; stroke-linecap: square; stroke-miterlimit: 10;"></line>
        <polygon points="250.030166625976562 165.12811279296875 256.9383544921875 161.1390380859375 250.030166625976562 157.149963378905341 250.030166625976562 165.12811279296875"></polygon>
      </g>
    </g>
    <rect x="427.719026667396975" y="131.139040466097867" width="120" height="60.000000000001819" rx="4" ry="4" style="fill: #007884;"></rect>
    <text transform="translate(467.250152587890625 165.814899444580078)" style="fill: #fff; font-size: 16px;"><tspan x="0" y="0">Parse</tspan></text>
    <g>
      <line x1="377.828687529276067" y1="161.139040466097867" x2="426.828687529276067" y2="161.139040466097867" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 3px;"></line>
      <g>
        <line x1="377.82867431640625" y1="161.1390380859375" x2="421.08770751953125" y2="161.1390380859375" style="fill: none; stroke: #000; stroke-linecap: square; stroke-miterlimit: 10;"></line>
        <polygon points="419.920501708984375 165.12811279296875 426.82867431640625 161.1390380859375 419.920501708984375 157.149963378905341 419.920501708984375 165.12811279296875"></polygon>
      </g>
    </g>
    <rect x="597.627069878937618" y="131.139040466097867" width="120.000000000001819" height="60.000000000001819" rx="4" ry="4" style="fill: #007884;"></rect>
    <text transform="translate(630.642608642578125 165.814899444580078)" style="fill: #fff; font-size: 16px;"><tspan x="0" y="0">Decode</tspan></text>
    <g>
      <line x1="547.736730740816711" y1="161.139040466097867" x2="596.736730740816711" y2="161.139040466097867" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 3px;"></line>
      <g>
        <line x1="547.736724853516534" y1="161.1390380859375" x2="590.995758056640625" y2="161.1390380859375" style="fill: none; stroke: #000; stroke-linecap: square; stroke-miterlimit: 10;"></line>
        <polygon points="589.828582763671875 165.12811279296875 596.736724853515625 161.1390380859375 589.828582763671875 157.149963378905341 589.828582763671875 165.12811279296875"></polygon>
      </g>
    </g>
    <g>
      <line x1="717.627069878939437" y1="161.139040466097867" x2="766.627069878939437" y2="161.139040466097867" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 3px;"></line>
      <g>
        <line x1="717.627044677734375" y1="161.1390380859375" x2="760.886077880859375" y2="161.1390380859375" style="fill: none; stroke: #000; stroke-linecap: square; stroke-miterlimit: 10;"></line>
        <polygon points="759.718902587890625 165.12811279296875 766.627044677734375 161.1390380859375 759.718902587890625 157.149963378905341 759.718902587890625 165.12811279296875"></polygon>
      </g>
    </g>
    <g>
      <line x1="887.517409017060345" y1="161.139040466097867" x2="936.517409017060345" y2="161.139040466097867" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 3px;"></line>
      <g>
        <line x1="887.517425537109375" y1="161.1390380859375" x2="930.776397705078125" y2="161.1390380859375" style="fill: none; stroke: #000; stroke-linecap: square; stroke-miterlimit: 10;"></line>
        <polygon points="929.609222412109375 165.12811279296875 936.517425537109375 161.1390380859375 929.609222412109375 157.149963378905341 929.609222412109375 165.12811279296875"></polygon>
      </g>
    </g>
    <line x1="1057.407748155181253" y1="200.147736909933883" x2="1087.407748155177615" y2="200.147736909933883" style="fill: #fff; stroke: #000; stroke-miterlimit: 10;"></line>
    <g>
      <path d="M39.319632610358894,224.756433353766624h-9l-4.5,5.400000000001455h-5.400000000001455c-1.988224983215332,0-3.599999999998545,1.611775016783213-3.599999999998545,3.599999999998545v16.200000000000728c0,1.988226699828374,1.611775016783213,3.600000000002183,3.599999999998545,3.600000000002183h28.80000000000291c1.988226699828374,0,3.599999999998545-1.611773300173809,3.599999999998545-3.600000000002183v-16.200000000000728c0-1.988224983215332-1.611773300170171-3.599999999998545-3.599999999998545-3.599999999998545h-5.400000000001455l-4.5-5.400000000001455Z" style="fill: none; stroke: #000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2px;"></path>
      <circle cx="34.819632610358894" cy="239.15643335376808" r="5.400000000001455" style="fill: none; stroke: #000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2px;"></circle>
    </g>
    <rect x="87.938348391155159" y="209.15643335376808" width="120" height="60" rx="4" ry="4" style="fill: #007884;"></rect>
    <text transform="translate(109.785882949829102 243.832290649414062)" style="fill: #fff; font-size: 16px;"><tspan x="0" y="0">Video data</tspan></text>
    <g>
      <line x1="54.048009253034252" y1="239.15643335376808" x2="87.922283772108131" y2="239.15643335376808" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 3px;"></line>
      <line x1="54.048009253034252" y1="239.15643335376808" x2="87.922283772108131" y2="239.15643335376808" style="fill: none; stroke: #000; stroke-linecap: square; stroke-miterlimit: 10;"></line>
    </g>
    <rect x="257.938348391155159" y="209.15643335376808" width="120" height="60" rx="4" ry="4" style="fill: #007884;"></rect>
    <text transform="translate(275.902984619140625 243.832290649414062)" style="fill: #fff; font-size: 16px;"><tspan x="0" y="0">Demultiplex</tspan></text>
    <g>
      <line x1="207.938348391155159" y1="239.15643335376808" x2="256.938348391155159" y2="239.15643335376808" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 3px;"></line>
      <g>
        <line x1="207.9383544921875" y1="239.15643310546875" x2="251.197357177734375" y2="239.15643310546875" style="fill: none; stroke: #000; stroke-linecap: square; stroke-miterlimit: 10;"></line>
        <polygon points="250.030166625976562 243.1455078125 256.9383544921875 239.15643310546875 250.030166625976562 235.1673583984375 250.030166625976562 243.1455078125"></polygon>
      </g>
    </g>
    <rect x="427.719026667396975" y="209.15643335376808" width="120" height="60" rx="4" ry="4" style="fill: #007884;"></rect>
    <text transform="translate(467.250152587890625 243.832290649414062)" style="fill: #fff; font-size: 16px;"><tspan x="0" y="0">Parse</tspan></text>
    <g>
      <line x1="377.828687529276067" y1="239.15643335376808" x2="426.828687529276067" y2="239.15643335376808" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 3px;"></line>
      <g>
        <line x1="377.82867431640625" y1="239.15643310546875" x2="421.08770751953125" y2="239.15643310546875" style="fill: none; stroke: #000; stroke-linecap: square; stroke-miterlimit: 10;"></line>
        <polygon points="419.920501708984375 243.1455078125 426.82867431640625 239.15643310546875 419.920501708984375 235.1673583984375 419.920501708984375 243.1455078125"></polygon>
      </g>
    </g>
    <rect x="597.627069878937618" y="209.15643335376808" width="120.000000000001819" height="60" rx="4" ry="4" style="fill: #007884;"></rect>
    <text transform="translate(630.642608642578125 243.832290649414062)" style="fill: #fff; font-size: 16px;"><tspan x="0" y="0">Decode</tspan></text>
    <g>
      <line x1="547.736730740816711" y1="239.15643335376808" x2="596.736730740816711" y2="239.15643335376808" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 3px;"></line>
      <g>
        <line x1="547.736724853516534" y1="239.15643310546875" x2="590.995758056640625" y2="239.15643310546875" style="fill: none; stroke: #000; stroke-linecap: square; stroke-miterlimit: 10;"></line>
        <polygon points="589.828582763671875 243.1455078125 596.736724853515625 239.15643310546875 589.828582763671875 235.1673583984375 589.828582763671875 243.1455078125"></polygon>
      </g>
    </g>
    <g>
      <line x1="717.627069878939437" y1="239.15643335376808" x2="766.627069878939437" y2="239.15643335376808" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 3px;"></line>
      <g>
        <line x1="717.627044677734375" y1="239.15643310546875" x2="760.886077880859375" y2="239.15643310546875" style="fill: none; stroke: #000; stroke-linecap: square; stroke-miterlimit: 10;"></line>
        <polygon points="759.718902587890625 243.1455078125 766.627044677734375 239.15643310546875 759.718902587890625 235.1673583984375 759.718902587890625 243.1455078125"></polygon>
      </g>
    </g>
    <g>
      <line x1="887.517409017060345" y1="239.15643335376808" x2="936.517409017060345" y2="239.15643335376808" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 3px;"></line>
      <g>
        <line x1="887.517425537109375" y1="239.15643310546875" x2="930.776397705078125" y2="239.15643310546875" style="fill: none; stroke: #000; stroke-linecap: square; stroke-miterlimit: 10;"></line>
        <polygon points="929.609222412109375 243.1455078125 936.517425537109375 239.15643310546875 929.609222412109375 235.1673583984375 929.609222412109375 243.1455078125"></polygon>
      </g>
    </g>
    <g>
      <path d="M39.319632610358894,302.773826241435017h-9l-4.5,5.400000000001455h-5.400000000001455c-1.988224983215332,0-3.599999999998545,1.611775016783213-3.599999999998545,3.599999999998545v16.200000000000728c0,1.988226699828374,1.611775016783213,3.600000000002183,3.599999999998545,3.600000000002183h28.80000000000291c1.988226699828374,0,3.599999999998545-1.611773300173809,3.599999999998545-3.600000000002183v-16.200000000000728c0-1.988224983215332-1.611773300170171-3.599999999998545-3.599999999998545-3.599999999998545h-5.400000000001455l-4.5-5.400000000001455Z" style="fill: none; stroke: #000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2px;"></path>
      <circle cx="34.819632610358894" cy="317.173826241436473" r="5.400000000001455" style="fill: none; stroke: #000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2px;"></circle>
    </g>
    <rect x="87.938348391155159" y="287.173826241436473" width="120" height="60" rx="4" ry="4" style="fill: #007884;"></rect>
    <text transform="translate(109.785882949829102 321.84967041015625)" style="fill: #fff; font-size: 16px;"><tspan x="0" y="0">Video data</tspan></text>
    <g>
      <line x1="54.048009253034252" y1="317.173826241436473" x2="87.922283772108131" y2="317.173826241436473" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 3px;"></line>
      <line x1="54.048009253034252" y1="317.173826241436473" x2="87.922283772108131" y2="317.173826241436473" style="fill: none; stroke: #000; stroke-linecap: square; stroke-miterlimit: 10;"></line>
    </g>
    <rect x="257.938348391155159" y="287.173826241436473" width="120" height="60" rx="4" ry="4" style="fill: #007884;"></rect>
    <text transform="translate(275.902984619140625 321.84967041015625)" style="fill: #fff; font-size: 16px;"><tspan x="0" y="0">Demultiplex</tspan></text>
    <g>
      <line x1="207.938348391155159" y1="317.173826241436473" x2="256.938348391155159" y2="317.173826241436473" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 3px;"></line>
      <g>
        <line x1="207.9383544921875" y1="317.173828125" x2="251.197357177734375" y2="317.173828125" style="fill: none; stroke: #000; stroke-linecap: square; stroke-miterlimit: 10;"></line>
        <polygon points="250.030166625976562 321.16290283203125 256.9383544921875 317.173828125 250.030166625976562 313.18475341796875 250.030166625976562 321.16290283203125"></polygon>
      </g>
    </g>
    <rect x="427.719026667396975" y="287.173826241436473" width="120" height="60" rx="4" ry="4" style="fill: #007884;"></rect>
    <text transform="translate(467.250152587890625 321.84967041015625)" style="fill: #fff; font-size: 16px;"><tspan x="0" y="0">Parse</tspan></text>
    <g>
      <line x1="377.828687529276067" y1="317.173826241436473" x2="426.828687529276067" y2="317.173826241436473" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 3px;"></line>
      <g>
        <line x1="377.82867431640625" y1="317.173828125" x2="421.08770751953125" y2="317.173828125" style="fill: none; stroke: #000; stroke-linecap: square; stroke-miterlimit: 10;"></line>
        <polygon points="419.920501708984375 321.16290283203125 426.82867431640625 317.173828125 419.920501708984375 313.18475341796875 419.920501708984375 321.16290283203125"></polygon>
      </g>
    </g>
    <rect x="597.627069878937618" y="287.173826241436473" width="120.000000000001819" height="60" rx="4" ry="4" style="fill: #007884;"></rect>
    <text transform="translate(630.642608642578125 321.84967041015625)" style="fill: #fff; font-size: 16px;"><tspan x="0" y="0">Decode</tspan></text>
    <g>
      <line x1="547.736730740816711" y1="317.173826241436473" x2="596.736730740816711" y2="317.173826241436473" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 3px;"></line>
      <g>
        <line x1="547.736724853516534" y1="317.173828125" x2="590.995758056640625" y2="317.173828125" style="fill: none; stroke: #000; stroke-linecap: square; stroke-miterlimit: 10;"></line>
        <polygon points="589.828582763671875 321.16290283203125 596.736724853515625 317.173828125 589.828582763671875 313.18475341796875 589.828582763671875 321.16290283203125"></polygon>
      </g>
    </g>
    <g>
      <line x1="717.627069878939437" y1="317.173826241436473" x2="766.627069878939437" y2="317.173826241436473" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 3px;"></line>
      <g>
        <line x1="717.627044677734375" y1="317.173828125" x2="760.886077880859375" y2="317.173828125" style="fill: none; stroke: #000; stroke-linecap: square; stroke-miterlimit: 10;"></line>
        <polygon points="759.718902587890625 321.16290283203125 766.627044677734375 317.173828125 759.718902587890625 313.18475341796875 759.718902587890625 321.16290283203125"></polygon>
      </g>
    </g>
    <g>
      <line x1="887.517409017060345" y1="317.173826241436473" x2="936.517409017060345" y2="317.173826241436473" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 3px;"></line>
      <g>
        <line x1="887.517425537109375" y1="317.173828125" x2="930.776397705078125" y2="317.173828125" style="fill: none; stroke: #000; stroke-linecap: square; stroke-miterlimit: 10;"></line>
        <polygon points="929.609222412109375 321.16290283203125 936.517425537109375 317.173828125 929.609222412109375 313.18475341796875 929.609222412109375 321.16290283203125"></polygon>
      </g>
    </g>
    <g>
      <g>
        <rect x="1088.717146505417986" y="184.987631700723796" width="44.462564999999813" height="31.123795500003325" rx="4" ry="4" style="fill: none; stroke: #000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2px;"></rect>
        <line x1="1102.055916005418112" y1="225.003940200724173" x2="1119.840942005417673" y2="225.003940200724173" style="fill: none; stroke: #000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2px;"></line>
      </g>
      <line x1="1110.948429005427897" y1="216.111427200727121" x2="1110.948429005427897" y2="225.003940200724173" style="fill: none; stroke: #000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2px;"></line>
    </g>
    <g>
      <g>
        <text transform="translate(956.107635498046875 392.882696151733398)" style="font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">Qualcomm </tspan></text>
        <rect x="935.856645911229862" y="380.791219129103411" width="16" height="16" rx="2" ry="2" style="fill: #2a2aea;"></rect>
      </g>
      <g>
        <text transform="translate(1054.689422607421875 392.882696151733398)" style="font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">Open source</tspan></text>
        <rect x="1034.438427324083023" y="380.791219129103411" width="16" height="16" rx="2" ry="2" style="fill: #007884;"></rect>
      </g>
    </g>
  </g>
</svg>

## Run the application

The following table lists the use cases that are supported through the
                    gst-concurrent-videoplay-composition application:| Use case | Description |
| --- | --- |
| Video conferencing | <ul class="ul" id="gst-concurrent-videoplay-composition__ul_wrw_5tf_4bc"><br>                                    <li class="li">Simultaneously decodes the video streams of several<br>                                        participants. </li><br><br>                                    <li class="li">Useful in a multi-party video conference scenario where the<br>                                        application manages several video streams.</li><br><br>                                </ul> |
| Surveillance systems | Concurrently decodes video feeds from two separate<br>                                cameras. |
| Digital signage | Allows simultaneous changes or updates to centrally managed<br>                                information that's electronically displayed across several<br>                                locations. |

To run the use cases, do the following:

1. Ensure that you complete the Prerequisites.
2. Input at least one `MP4 AVC (H.264)` video file on the target
                    device.
3. In the terminal of the target device, use the following command to run the use
                        case:

        gst-concurrent-videoplay-composition -c <number of streams> -i <input-file-1>.mp4 -i <input-file-2>.mp4Copy to clipboard

The following table provides a description of the command-line
                            parameters:    | Command-line parameter | Description |
    | --- | --- |
    | `-c` | <ul class="ul" id="gst-concurrent-videoplay-composition__ul_oqj_x4t_4bc"><br>                                            <li class="li">Number of streams to decode for composition. </li><br><br>                                            <li class="li">Supported values are 2, 4, 8, and 16.</li><br><br>                                        </ul> |
    | `-i` | Specifies the absolute path to the input video<br>                                        file. |
For example, use the following commands to run the concurrent playback
                    use cases:
    - Concurrent playback of two
                                sessions:

            gst-concurrent-videoplay-composition -c 2 -i <input-file-1>.mp4 -i <input-file-2>.mp4Copy to clipboard

        If
                                one video is provided as input, the same file is played
                                concurrently.
    - Concurrent playback of four
                            sessions:

            gst-concurrent-videoplay-composition -c 4 -i <input-file-1>.mp4 -i <input-file-2>.mp4 -i <input-file-3>.mp4 -i <input-file-4>.mp4Copy to clipboard
4. To stop the use case, use CTRL +
                    C.
5. In the terminal of the target device, run the following command in the SSH shell
                    to display the available help
                    options:

        gst-concurrent-videoplay-composition --helpCopy to clipboard

## Expected output

The individual composed streams are tiled together to display as a unified
                stream.

Figure : Expected output for gst-concurrent-videoplay-composition application
                
                ![](data:image/png;base64,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)

## Pipeline flow

The following table lists the plugins used to run the video wall
                    pipeline:| Plugin | Description |
| --- | --- |
| filesrc | Reads the video data. |
| qtdemux | Demultiplexes the video data. |
| h264parse | Parses the H.264 video streams. |
| v4l2h264dec | Decodes the H.264 video streams. |
| qtivcomposer | Composes the decoded streams and sends them over the<br>                                display. |
| Waylandsink | Displays the composed video streams on Wayland display. |

## Known issue

Video playback closes or freezes. About an hour later, it continues running with 16
                H.264 720p concurrent video playback sessions.

## Related information

Concurrent video playback (video wall) using Python

**Parent Topic:** Run sample applications for video and audio

Last Published: Mar 02, 2026

Previous Topic
 
Run sample applications for video and audio Next Topic

Smart codec