# Video wall

Source: [https://docs.qualcomm.com/doc/80-70022-50/topic/gst-concurrent-videoplay-composition.html](https://docs.qualcomm.com/doc/80-70022-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](https://docs.qualcomm.com/doc/80-70022-50/topic/gst-concurrent-videoplay-composition.html#gst-concurrent-videoplay-composition__section_s22_qsf_4bc).

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](https://docs.qualcomm.com/doc/80-70022-50/topic/mm_sample_apps_prerequisites.html).
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](https://docs.qualcomm.com/doc/80-70022-50/topic/v4l2h264dec.html) | Decodes the H.264 video streams. |
| [qtivcomposer](https://docs.qualcomm.com/doc/80-70022-50/topic/qtivcomposer.html) | Composes the decoded streams and sends them over the<br>                                display. |
| [Waylandsink](https://docs.qualcomm.com/doc/80-70022-50/topic/waylandsink.html) | 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](https://docs.qualcomm.com/doc/80-70022-50/topic/video-wall-using-python.html)

**Parent Topic:** [Run sample applications for video and audio](https://docs.qualcomm.com/doc/80-70022-50/topic/audio-sample-applications.html)

Last Published: Feb 20, 2026

[Previous Topic
Run sample applications for video and audio](https://docs.qualcomm.com/bundle/publicresource/80-70022-50/topics/audio-sample-applications.md) [Next Topic
Smart codec](https://docs.qualcomm.com/bundle/publicresource/80-70022-50/topics/smart-codec.md)