# Audio-video use cases

Source: [https://docs.qualcomm.com/doc/80-70022-50/topic/audio-video-use-cases.html](https://docs.qualcomm.com/doc/80-70022-50/topic/audio-video-use-cases.html)

The audio-video (AV) use cases show AV capture and AV playback.

Before you run the use cases, ensure that you complete the preconditions mentioned in
                [GStreamer command-line use cases](https://docs.qualcomm.com/doc/80-70022-50/topic/gstreamer-application-use-cases.html).

## Audio-video capture (H.264 video codec and MP3 audio codec)

Source: [https://docs.qualcomm.com/doc/80-70022-50/topic/audio-video-use-cases.html](https://docs.qualcomm.com/doc/80-70022-50/topic/audio-video-use-cases.html)

The use cases show the AV capture where a 1080p stream from a camera is encoded as an
        H.264 stream, and sent to a multiplexer. The PCM `opt` is from an audio
        source is encoded as MP3, and sent to the multiplexer. The multiplexed files are then saved
        as an MP4 file.

1. In the terminal of the target device, run the use case in the SSH
                shell:

        gst-launch-1.0 -e qtiqmmfsrc ! video/x-raw,format=NV12,width=1920,height=1080,framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! queue ! v4l2h264enc capture-io-mode=4 output-io-mode=5 extra-controls="controls,video_bitrate=1000000,video_gop_size=29;" ! queue ! h264parse ! muxer. pulsesrc do-timestamp=true provide-clock=false volume=10 ! audio/x-raw,format=S16LE,channels=1,rate=48000 ! audioconvert ! queue ! lamemp3enc ! mp4mux name=muxer ! queue ! filesink location=/opt/1080p_AVC_MP3.mp4Copy to clipboard
2. In the terminal of the Linux host computer, run the following command to pull and
                    play the recorded
                    content:

        scp -r root@[DEVICE IP-ADDR]:/opt/1080p_AVC_MP3.mp4 user1@[HOST IP-ADDR]:/workspaceCopy to clipboard

You
                    can play the camera stream from the MP4 file on a media player and the audio
                    over the speakers.

To stop the use case, use CTRL + C.

The following figure shows the flow of the pipeline execution:

Figure : Pipeline for AV capture–camera source and audio source
            
            <?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" width="1056.711448669433594" height="236.20159912109375" viewbox="0 0 1056.711448669433594 236.20159912109375">
  <g id="Layer_1" data-name="Layer 1">
    <g>
      <rect x=".500022888183594" y=".499801635742188" width="1055.71142578125" height="235.20166015625" rx="7.499999999999999" ry="7.499999999999999" style="fill: #fafafa;"></rect>
      <path d="M1048.711448669433594,1c3.85986328125,0,7,3.140132904052734,7,7v220.20159912109375c0,3.85986328125-3.14013671875,7-7,7H8c-3.85986328125,0-7-3.14013671875-7-7V8c0-3.859867095947266,3.14013671875-7,7-7h1040.711448669433594M1048.711448669433594,0H8C3.581733703613281,0,0,3.581733703613281,0,8v220.20159912109375c0,4.41827392578125,3.581733703613281,8,8,8h1040.711448669433594c4.418334960939319,0,8-3.58172607421875,8-8V8c0-4.418266296386719-3.581665039060681-8-8-8h0Z" style="fill: #d2d7e1;"></path>
    </g>
    <g>
      <g>
        <text transform="translate(857.204734802246094 212.293075561523438)" style="font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">Qualcomm </tspan></text>
        <rect x="836.953712477017689" y="200.20159912109375" width="16" height="16" rx="1.999999999999986" ry="1.999999999999986" style="fill: #2a2aea;"></rect>
      </g>
      <g>
        <text transform="translate(955.786521911621094 212.293075561523438)" style="font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">Open source</tspan></text>
        <rect x="935.535493889876307" y="200.20159912109375" width="16" height="16" rx="2" ry="2" style="fill: #007884;"></rect>
      </g>
    </g>
  </g>
  <g id="Layer_2" data-name="Layer 2">
    <g>
      <line x1="169.711448669433594" y1="75.201568603515625" x2="188.970451354980469" y2="75.201568603515625" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
      <polygon points="187.803276062011719 79.190631866455078 194.711448669433594 75.201568603515625 187.803276062011719 71.212505340576172 187.803276062011719 79.190631866455078"></polygon>
    </g>
    <g>
      <rect x="194.711448669433594" y="50.201568603515625" width="150" height="50" rx="4" ry="4" style="fill: #007884;"></rect>
      <text transform="translate(224.188042640686035 78.708279609680176)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 16px;"><tspan x="0" y="0">v4l2h264enc</tspan></text>
    </g>
    <g>
      <line x1="344.711448669433594" y1="75.201568603515625" x2="363.970451354980469" y2="75.201568603515625" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
      <polygon points="362.803276062011719 79.190631866455078 369.711448669433594 75.201568603515625 362.803276062011719 71.212505340576172 362.803276062011719 79.190631866455078"></polygon>
    </g>
    <g>
      <rect x="369.711448669433594" y="50.201568603515625" width="150" height="50" rx="4" ry="4" style="fill: #007884;"></rect>
      <text transform="translate(406.918479919433594 78.708279609680176)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 16px;"><tspan x="0" y="0">h264parse</tspan></text>
    </g>
    <g>
      <g>
        <rect x="19.711448669433594" y="50.201568603515625" width="150" height="50" rx="4" ry="4" style="fill: #2a2aea;"></rect>
        <text transform="translate(53.242729187011719 78.708279609680176)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 16px;"><tspan x="0" y="0">qtiqmmfsrc</tspan></text>
      </g>
      <g>
        <rect x="19.711448669433594" y="130.201568603515625" width="150" height="50" rx="4" ry="4" style="fill: #007884;"></rect>
        <text transform="translate(64.488822937011719 158.708282470703125)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 16px;"><tspan x="0" y="0">pulsesrc</tspan></text>
      </g>
    </g>
    <g>
      <line x1="169.711448669433594" y1="155.201568603515625" x2="188.970451354980469" y2="155.201568603515625" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
      <polygon points="187.803276062011719 159.190628051757812 194.711448669433594 155.201568603515625 187.803276062011719 151.212501525878906 187.803276062011719 159.190628051757812"></polygon>
    </g>
    <g>
      <rect x="194.711448669433594" y="130.201568603515625" width="150" height="50" rx="4" ry="4" style="fill: #007884;"></rect>
      <text transform="translate(223.336480140686035 158.708282470703125)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 16px;"><tspan x="0" y="0">audioconvert</tspan></text>
    </g>
    <g>
      <line x1="344.711448669433594" y1="155.201568603515625" x2="363.970451354980469" y2="155.201568603515625" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
      <polygon points="362.803276062011719 159.190628051757812 369.711448669433594 155.201568603515625 362.803276062011719 151.212501525878906 362.803276062011719 159.190628051757812"></polygon>
    </g>
    <g>
      <rect x="369.711448669433594" y="130.201568603515625" width="150" height="50" rx="4" ry="4" style="fill: #007884;"></rect>
      <text transform="translate(398.336448669433594 158.708282470703125)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 16px;"><tspan x="0" y="0">lamemp3enc</tspan></text>
    </g>
    <g>
      <line x1="519.711448669433594" y1="155.201568603515625" x2="538.970481872558594" y2="155.201568603515625" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
      <polygon points="537.803245544433594 159.190628051757812 544.711448669433594 155.201568603515625 537.803245544433594 151.212501525878906 537.803245544433594 159.190628051757812"></polygon>
    </g>
    <g>
      <rect x="544.711448669433594" y="130.201568603515625" width="150" height="50" rx="4" ry="4" style="fill: #007884;"></rect>
      <text transform="translate(586.910789489746094 158.708282470703125)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 16px;"><tspan x="0" y="0">aacparse</tspan></text>
    </g>
    <g>
      <rect x="731.711448669433594" y="90.201568603515625" width="140" height="50" rx="4" ry="4" style="fill: #007884;"></rect>
      <text transform="translate(770.332603454589844 118.708278656005859)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 16px;"><tspan x="0" y="0">mp4mux</tspan></text>
    </g>
    <g>
      <line x1="871.711448669433594" y1="115.201568603515625" x2="890.970481872558594" y2="115.201568603515625" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
      <polygon points="889.803245544433594 119.190635681152344 896.711448669433594 115.201568603515625 889.803245544433594 111.212501525878906 889.803245544433594 119.190635681152344"></polygon>
    </g>
    <g>
      <rect x="896.711448669433594" y="90.201568603515625" width="140" height="50" rx="4" ry="4" style="fill: #007884;"></rect>
      <text transform="translate(941.277915954589844 118.708278656005859)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 16px;"><tspan x="0" y="0">filesink</tspan></text>
    </g>
    <g>
      <polyline points="519.711448669433594 75.201568603515625 712.711448669433594 75.201568603515625 712.711448669433594 108.041732788085938 724.970481872558594 108.041732788085938" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></polyline>
      <polygon points="723.803245544433594 112.030799865722656 730.711448669433594 108.041732788085938 723.803245544433594 104.052665710449219 723.803245544433594 112.030799865722656"></polygon>
    </g>
    <g>
      <polyline points="724.970481872558594 125.609031677246094 712.711448669433594 125.609031677246094 712.711448669433594 155.201568603515625 694.711448669433594 155.201568603515625" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></polyline>
      <polygon points="723.803245544433594 121.619972229003906 730.711448669433594 125.609031677246094 723.803245544433594 129.598098754882812 723.803245544433594 121.619972229003906"></polygon>
    </g>
    <text transform="translate(497.316917419433594 31.536155700683594)" style="font-family: Roboto-Bold, Roboto; font-size: 16px; font-weight: 700;"><tspan x="0" y="0">GST BIN</tspan></text>
  </g>
</svg>

## Audio-video playback

Source: [https://docs.qualcomm.com/doc/80-70022-50/topic/audio-video-use-cases.html](https://docs.qualcomm.com/doc/80-70022-50/topic/audio-video-use-cases.html)

The use case shows AV playback where the MP4 file is demultiplexed. The video stream
        is decoded and displayed. The audio stream is decoded and played over the
        speaker.

The following use cases describe a single AV playback with MP3 and FLAC formats.

- Run all the use cases in the SSH shell of the target device.
- To stop the use cases, use CTRL +
                C.

### Single AV playback (AVC video + MP3 audio)

    gst-launch-1.0 -e filesrc location=/opt/<AV_file_with_H264_video_and_MP3_audio>.mp4 ! qtdemux name=demux demux. ! queue ! h264parse ! v4l2h264dec capture-io-mode=4 output-io-mode=4 ! waylandsink fullscreen=true demux. ! queue ! mpegaudioparse ! mpg123audiodec ! pulsesink volume=10Copy to clipboard

Figure : Pipeline for AV playback–AVC video + MP3 audio
                
                <?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" width="1056" height="226.482936859130859" viewbox="0 0 1056 226.482936859130859">
  <g id="Layer_1" data-name="Layer 1">
    <g>
      <rect x=".5" y=".499828338623047" width="1055" height="225.48291015625" rx="7.500000000000002" ry="7.500000000000002" style="fill: #fafafa;"></rect>
      <path d="M1048,1c3.85986328125,0,7,3.140132904052734,7,7v210.482936859130859c0,3.85986328125-3.14013671875,7-7,7H8c-3.85986328125,0-7-3.14013671875-7-7V8c0-3.859867095947266,3.14013671875-7,7-7h1040M1048,0H8C3.581733703613281,0,0,3.581733703613281,0,8v210.482936859130859c0,4.418258666992188,3.581733703613281,8,8,8h1040c4.41845703125,0,8-3.581741333007812,8-8V8c0-4.418266296386719-3.58154296875-8-8-8h0Z" style="fill: #d2d7e1;"></path>
    </g>
  </g>
  <g id="Layer_2" data-name="Layer 2">
    <g>
      <g>
        <line x1="511" y1="75.201595306396484" x2="530.259033203125" y2="75.201595306396484" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="529.091796875 79.190658569335938 536 75.201595306396484 529.091796875 71.212532043457031 529.091796875 79.190658569335938"></polygon>
      </g>
      <g>
        <rect x="536" y="50.201595306396484" width="150" height="50" rx="4" ry="4" style="fill: #007884;"></rect>
        <text transform="translate(573.207061767578125 78.708306312561035)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 16px;"><tspan x="0" y="0">h264parse</tspan></text>
      </g>
      <g>
        <line x1="686" y1="75.201595306396484" x2="705.259033203125" y2="75.201595306396484" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="704.091796875 79.190658569335938 711 75.201595306396484 704.091796875 71.212532043457031 704.091796875 79.190658569335938"></polygon>
      </g>
      <g>
        <rect x="711" y="50.201595306396484" width="150" height="50" rx="4" ry="4" style="fill: #007884;"></rect>
        <text transform="translate(740.37890625 78.708306312561035)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 16px;"><tspan x="0" y="0">v4l2h264dec</tspan></text>
      </g>
      <g>
        <line x1="861" y1="75.201595306396484" x2="880.259033203125" y2="75.201595306396484" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="879.091796875 79.190658569335938 886 75.201595306396484 879.091796875 71.212532043457031 879.091796875 79.190658569335938"></polygon>
      </g>
      <g>
        <rect x="886" y="50.201595306396484" width="150" height="50" rx="4" ry="4" style="fill: #007884;"></rect>
        <text transform="translate(917.0977783203125 78.708306312561035)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 16px;"><tspan x="0" y="0">waylandsink</tspan></text>
      </g>
      <g>
        <g>
          <rect x="361" y="50.201595306396484" width="150" height="50" rx="4" ry="4" style="fill: #007884;"></rect>
          <text transform="translate(414.156280517578125 78.708306312561035)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 16px;"><tspan x="0" y="0">queue</tspan></text>
        </g>
        <g>
          <rect x="361" y="130.201595306396484" width="150" height="50" rx="4" ry="4" style="fill: #007884;"></rect>
          <text transform="translate(414.156280517578125 158.708309173583984)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 16px;"><tspan x="0" y="0">queue</tspan></text>
        </g>
      </g>
      <g>
        <line x1="511" y1="155.201595306396484" x2="530.259033203125" y2="155.201595306396484" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="529.091796875 159.190654754638672 536 155.201595306396484 529.091796875 151.212528228759766 529.091796875 159.190654754638672"></polygon>
      </g>
      <g>
        <rect x="536" y="130.201595306396484" width="150" height="50" rx="4" ry="4" style="fill: #007884;"></rect>
        <text transform="translate(551.085968017578125 158.708309173583984)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 16px;"><tspan x="0" y="0">mpegaudioparse</tspan></text>
      </g>
      <g>
        <line x1="686" y1="155.201595306396484" x2="705.259033203125" y2="155.201595306396484" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="704.091796875 159.190654754638672 711 155.201595306396484 704.091796875 151.212528228759766 704.091796875 159.190654754638672"></polygon>
      </g>
      <g>
        <rect x="711" y="130.201595306396484" width="150" height="50" rx="4" ry="4" style="fill: #007884;"></rect>
        <text transform="translate(723.8203125 158.708309173583984)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 16px;"><tspan x="0" y="0">mpg123audiodec</tspan></text>
      </g>
      <g>
        <line x1="861" y1="155.201595306396484" x2="880.259033203125" y2="155.201595306396484" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="879.091796875 159.190654754638672 886 155.201595306396484 879.091796875 151.212528228759766 879.091796875 159.190654754638672"></polygon>
      </g>
      <g>
        <rect x="886" y="130.201595306396484" width="150" height="50" rx="4" ry="4" style="fill: #007884;"></rect>
        <text transform="translate(927.2618408203125 158.708309173583984)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 16px;"><tspan x="0" y="0">pulsesink</tspan></text>
      </g>
      <g>
        <rect x="20" y="90.201595306396484" width="140" height="50" rx="4" ry="4" style="fill: #007884;"></rect>
        <text transform="translate(68.082061767578125 118.708305358886719)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 16px;"><tspan x="0" y="0">filesrc</tspan></text>
      </g>
      <g>
        <line x1="160" y1="115.201595306396484" x2="179.259017944335938" y2="115.201595306396484" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="178.091827392578125 119.190662384033203 185 115.201595306396484 178.091827392578125 111.212528228759766 178.091827392578125 119.190662384033203"></polygon>
      </g>
      <g>
        <rect x="185" y="90.201595306396484" width="140" height="50" rx="4" ry="4" style="fill: #007884;"></rect>
        <text transform="translate(223.703157424926758 118.708305358886719)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 16px;"><tspan x="0" y="0">qtdemux</tspan></text>
      </g>
      <g>
        <polyline points="355.259002685546875 75.201595306396484 343 75.201595306396484 343 108.041759490966797 325 108.041759490966797" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></polyline>
        <polygon points="354.091827392578125 71.212532043457031 361 75.201595306396484 354.091827392578125 79.190658569335938 354.091827392578125 71.212532043457031"></polygon>
      </g>
      <g>
        <polyline points="325 125.609058380126953 343 125.609058380126953 343 155.201595306396484 355.259002685546875 155.201595306396484" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></polyline>
        <polygon points="354.091827392578125 159.190654754638672 361 155.201595306396484 354.091827392578125 151.212528228759766 354.091827392578125 159.190654754638672"></polygon>
      </g>
    </g>
    <text transform="translate(497.60546875 31.536182403564453)" style="font-family: Roboto-Bold, Roboto; font-size: 16px; font-weight: 700;"><tspan x="0" y="0">GST BIN</tspan></text>
    <g>
      <g>
        <text transform="translate(858.92767333984375 207.999217987060547)" style="font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">Qualcomm </tspan></text>
        <rect x="838.676672980556759" y="195.9077367464497" width="16" height="16" rx="2" ry="2" style="fill: #2a2aea;"></rect>
      </g>
      <g>
        <text transform="translate(957.509490966796875 207.999217987060547)" style="font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">Open source</tspan></text>
        <rect x="937.258454393415377" y="195.9077367464497" width="16" height="16" rx="2" ry="2" style="fill: #007884;"></rect>
      </g>
    </g>
  </g>
</svg>

### Single AV playback (AVC video + FLAC audio)

    gst-launch-1.0 -e filesrc location=/opt/<AV_file_with_H264_video_and_FLAC_audio>.mp4 ! qtdemux name=demux demux. ! queue ! h264parse ! v4l2h264dec capture-io-mode=4 output-io-mode=4 ! waylandsink fullscreen=true demux. ! queue ! flacparse ! flacdec ! pulsesink volume=10Copy to clipboard

Figure : Pipeline for AV playback–AVC video + FLAC audio
                
                <?xml version="1.0" encoding="UTF-8"?>
<svg id="Layer_2" data-name="Layer 2" xmlns="http://www.w3.org/2000/svg" width="1056" height="226.482936859130859" viewbox="0 0 1056 226.482936859130859">
  <g>
    <rect x=".5" y=".500301361083984" width="1055" height="225.482421875" rx="7.500000000000001" ry="7.500000000000001" style="fill: #fafafa;"></rect>
    <path d="M1048,1c3.85986328125,0,7,3.140132904052734,7,7v210.482936859130859c0,3.85986328125-3.14013671875,7-7,7H8c-3.85986328125,0-7-3.14013671875-7-7V8c0-3.859867095947266,3.14013671875-7,7-7h1040M1048,0H8C3.581733703613281,0,0,3.581733703613281,0,8v210.482936859130859c0,4.418258666992188,3.581733703613281,8,8,8h1040c4.41845703125,0,8-3.581741333007812,8-8V8c0-4.418266296386719-3.58154296875-8-8-8h0Z" style="fill: #d2d7e1;"></path>
  </g>
  <g>
    <g>
      <text transform="translate(858.92767333984375 210.999233245849609)" style="font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">Qualcomm </tspan></text>
      <rect x="838.676672980556759" y="198.907748190541497" width="16" height="16" rx="2" ry="2" style="fill: #2a2aea;"></rect>
    </g>
    <g>
      <text transform="translate(957.509490966796875 210.999233245849609)" style="font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">Open source</tspan></text>
      <rect x="937.258454393420834" y="198.907748190541497" width="16" height="16" rx="2" ry="2" style="fill: #007884;"></rect>
    </g>
  </g>
  <g>
    <g>
      <line x1="511" y1="75.201580047607422" x2="530.259033203125" y2="75.201580047607422" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
      <polygon points="529.091796875 79.190643310546875 536 75.201580047607422 529.091796875 71.212516784667969 529.091796875 79.190643310546875"></polygon>
    </g>
    <g>
      <rect x="536" y="50.201580047607422" width="150" height="50" rx="4" ry="4" style="fill: #007884;"></rect>
      <text transform="translate(573.207061767578125 78.708291053771973)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 16px;"><tspan x="0" y="0">h264parse</tspan></text>
    </g>
    <g>
      <line x1="686" y1="75.201580047607422" x2="705.259033203125" y2="75.201580047607422" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
      <polygon points="704.091796875 79.190643310546875 711 75.201580047607422 704.091796875 71.212516784667969 704.091796875 79.190643310546875"></polygon>
    </g>
    <g>
      <rect x="711" y="50.201580047607422" width="150" height="50" rx="4" ry="4" style="fill: #007884;"></rect>
      <text transform="translate(740.37890625 78.708291053771973)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 16px;"><tspan x="0" y="0">v4l2h264dec</tspan></text>
    </g>
    <g>
      <line x1="861" y1="75.201580047607422" x2="880.259033203125" y2="75.201580047607422" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
      <polygon points="879.091796875 79.190643310546875 886 75.201580047607422 879.091796875 71.212516784667969 879.091796875 79.190643310546875"></polygon>
    </g>
    <g>
      <rect x="886" y="50.201580047607422" width="150" height="50" rx="4" ry="4" style="fill: #007884;"></rect>
      <text transform="translate(917.0977783203125 78.708291053771973)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 16px;"><tspan x="0" y="0">waylandsink</tspan></text>
    </g>
    <g>
      <g>
        <rect x="361" y="50.201580047607422" width="150" height="50" rx="4" ry="4" style="fill: #007884;"></rect>
        <text transform="translate(414.156280517578125 78.708291053771973)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 16px;"><tspan x="0" y="0">queue</tspan></text>
      </g>
      <g>
        <rect x="361" y="130.201580047607422" width="150" height="50" rx="4" ry="4" style="fill: #007884;"></rect>
        <text transform="translate(414.156280517578125 158.708293914794922)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 16px;"><tspan x="0" y="0">queue</tspan></text>
      </g>
    </g>
    <g>
      <line x1="511" y1="155.201580047607422" x2="530.259033203125" y2="155.201580047607422" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
      <polygon points="529.091796875 159.190639495849609 536 155.201580047607422 529.091796875 151.212512969970703 529.091796875 159.190639495849609"></polygon>
    </g>
    <g>
      <rect x="536" y="130.201580047607422" width="150" height="50" rx="4" ry="4" style="fill: #007884;"></rect>
      <text transform="translate(577.832061767578125 158.708293914794922)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 16px;"><tspan x="0" y="0">flacparse</tspan></text>
    </g>
    <g>
      <line x1="686" y1="155.201580047607422" x2="705.259033203125" y2="155.201580047607422" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
      <polygon points="704.091796875 159.190639495849609 711 155.201580047607422 704.091796875 151.212512969970703 704.091796875 159.190639495849609"></polygon>
    </g>
    <g>
      <rect x="711" y="130.201580047607422" width="150" height="50" rx="4" ry="4" style="fill: #007884;"></rect>
      <text transform="translate(759.8046875 158.708293914794922)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 16px;"><tspan x="0" y="0">flacdec</tspan></text>
    </g>
    <g>
      <line x1="861" y1="155.201580047607422" x2="880.259033203125" y2="155.201580047607422" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
      <polygon points="879.091796875 159.190639495849609 886 155.201580047607422 879.091796875 151.212512969970703 879.091796875 159.190639495849609"></polygon>
    </g>
    <g>
      <rect x="886" y="130.201580047607422" width="150" height="50" rx="4" ry="4" style="fill: #007884;"></rect>
      <text transform="translate(927.2618408203125 158.708293914794922)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 16px;"><tspan x="0" y="0">pulsesink</tspan></text>
    </g>
    <g>
      <rect x="20" y="90.201580047607422" width="140" height="50" rx="4" ry="4" style="fill: #007884;"></rect>
      <text transform="translate(68.082061767578125 118.708290100097656)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 16px;"><tspan x="0" y="0">filesrc</tspan></text>
    </g>
    <g>
      <line x1="160" y1="115.201580047607422" x2="179.259017944335938" y2="115.201580047607422" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
      <polygon points="178.091827392578125 119.190647125244141 185 115.201580047607422 178.091827392578125 111.212512969970703 178.091827392578125 119.190647125244141"></polygon>
    </g>
    <g>
      <rect x="185" y="90.201580047607422" width="140" height="50" rx="4" ry="4" style="fill: #007884;"></rect>
      <text transform="translate(223.703157424926758 118.708290100097656)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 16px;"><tspan x="0" y="0">qtdemux</tspan></text>
    </g>
    <g>
      <polyline points="355.259002685546875 75.201580047607422 343 75.201580047607422 343 108.041744232177734 325 108.041744232177734" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></polyline>
      <polygon points="354.091827392578125 71.212516784667969 361 75.201580047607422 354.091827392578125 79.190643310546875 354.091827392578125 71.212516784667969"></polygon>
    </g>
    <g>
      <polyline points="325 125.609043121337891 343 125.609043121337891 343 155.201580047607422 355.259002685546875 155.201580047607422" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></polyline>
      <polygon points="354.091827392578125 159.190639495849609 361 155.201580047607422 354.091827392578125 151.212512969970703 354.091827392578125 159.190639495849609"></polygon>
    </g>
  </g>
  <text transform="translate(497.60546875 31.536167144775391)" style="font-family: Roboto-Bold, Roboto; font-size: 16px; font-weight: 700;"><tspan x="0" y="0">GST BIN</tspan></text>
</svg>

### Related information

[Audio-video playback](https://docs.qualcomm.com/doc/80-70022-50/topic/gst-audio-video-playback.html)

Last Published: Feb 20, 2026

[Previous Topic
Audio use cases](https://docs.qualcomm.com/bundle/publicresource/80-70022-50/topics/audio-use-cases.md) [Next Topic
Video composition use cases](https://docs.qualcomm.com/bundle/publicresource/80-70022-50/topics/video-composition.md)