<div dir="ltr"><div><div><div><div><div><div>Hi.<br><br></div>I'm generating an AV stream on one machine and trying to play the stream on another machine namely a Raspberry PI. However sometimes GStreamer can't find the H.264 decoder. Is this a well known problem? Pipelines and results are shown further down in this email.<br>
<br></div>It appears that the higher the bandwidth or the higher the video resolution, the more often the decoder is not found subsequently the stream is not played. If I use 320x240 @1000kbps, the stream is played more than half the time the stream is started. If I increase bandwidth and geometry, the fail rate grow. At 640x480 @2000kbps it almost never works. When it doesn't play, the pipeline reports 'Missing element: H.264 decoder'. The Raspberry pi has the latest Raspian installed and the GStreamer elements are installed following the information on this page:<br>
<br> <a href="http://wiki.matthiasbock.net/index.php/Hardware-accelerated_video_playback_on_the_Raspberry_P">http://wiki.matthiasbock.net/index.php/Hardware-accelerated_video_playback_on_the_Raspberry_P</a>i<br><br></div>
This is the pipeline used to generate the stream:<br><br>#!/bin/sh<br>AUDIO='audio/x-raw-int, endianness=(int)1234, signed=(boolean)true, width=(int)16, depth=(int)16, rate=(int)44100, channels=(int)2'<br>VIDEO='video/x-raw-yuv, width=(int)320, height=(int)180, framerate=(fraction)25/1, pixel-aspect-ratio=(fraction)1/1'<br>
<br>audioencoder='faac bitrate=128000 profile=LC outputformat=0'<br>videoencoder='x264enc tune=zerolatency bitrate=4000 profile=baseline'<br>ENCAUDIO='audio/mpeg,mpegversion=4, stream-format=raw'<br>
ENCVIDEO='video/x-h264, alignment=au, stream-format=byte-stream'<br><br>gst-launch-0.10 -v \<br> audiotestsrc is-live=true !\<br>
queue !\<br> $AUDIO !\<br> audioconvert !\<br> $audioencoder !\<br>
$ENCAUDIO !\<br> queue !\<br> muxer. videotestsrc is-live=true !\<br> $VIDEO !\<br>
queue !\<br> $videoencoder !\<br> $ENCVIDEO !\<br> h264parse !\<br>
queue !\<br> mpegtsmux name=muxer !\<br> mpegtsparse !\<br> queue !\<br>
tcpserversink host=0.0.0.0 port=5012 sync-method=2<br><br></div>This is the pipeline used to play the stream on the Rasp-pi<br><br>gst-launch-1.0 -v --gst-debug=decodebin:4 \ <br> tcpclientsrc host=81.7.134.69 port=5012 !\<br>
queue max-size-buffers=0 !\ <br> decodebin name=decoder max-size-bytes=0 !\<br> queue max-size-bytes=000000 !\<br> videoconvert !\<br>
autovideosink decoder. !\<br> queue max-size-bytes=000000 !\<br> audioconvert ! alsasink<br><br></div>This is part of the output, when the stream is NOT playing (please note the missing element statement):<br>
<br>Setting pipeline to PAUSED ...<br>Pipeline is PREROLLING ...<br>/GstPipeline:pipeline0/GstDecodeBin:decoder/GstTypeFindElement:typefind.GstPad:src: caps = video/mpegts, systemstream=(boolean)true, packetsize=(int)188<br>
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstTSDemux:tsdemux0.GstPad:sink: caps = video/mpegts, systemstream=(boolean)true, packetsize=(int)188<br>/GstPipeline:pipeline0/GstDecodeBin:decoder/GstMultiQueue:multiqueue0.GstPad:src_0: caps = audio/mpeg, mpegversion=(int)2, stream-format=(string)adts<br>
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstAacParse:aacparse0.GstPad:sink: caps = audio/mpeg, mpegversion=(int)2, stream-format=(string)adts<br>/GstPipeline:pipeline0/GstDecodeBin:decoder/GstMultiQueue:multiqueue0.GstPad:sink_0: caps = audio/mpeg, mpegversion=(int)2, stream-format=(string)adts<br>
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstAacParse:aacparse0.GstPad:src: caps = audio/mpeg, framed=(boolean)true, mpegversion=(int)4, rate=(int)44100, channels=(int)2, stream-format=(string)adts<br>/GstPipeline:pipeline0/GstDecodeBin:decoder/GstFaad:faad0.GstPad:sink: caps = audio/mpeg, framed=(boolean)true, mpegversion=(int)4, rate=(int)44100, channels=(int)2, stream-format=(string)adts<br>
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstFaad:faad0.GstPad:src: caps = audio/x-raw, format=(string)S16LE, layout=(string)interleaved, rate=(int)44100, channels=(int)2, channel-mask=(bitmask)0x0000000000000003<br>/GstPipeline:pipeline0/GstDecodeBin:decoder/GstMultiQueue:multiqueue0: max-size-buffers = 5<br>
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstMultiQueue:multiqueue0: max-size-time = 0<br>/GstPipeline:pipeline0/GstDecodeBin:decoder/GstMultiQueue:multiqueue0: max-size-bytes = 2097152<br>/GstPipeline:pipeline0/GstDecodeBin:decoder/GstMultiQueue:multiqueue0.GstPad:src_1: caps = video/x-h264, stream-format=(string)byte-stream, alignment=(string)nal<br>
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstH264Parse:h264parse0.GstPad:sink: caps = video/x-h264, stream-format=(string)byte-stream, alignment=(string)nal<br>/GstPipeline:pipeline0/GstDecodeBin:decoder/GstMultiQueue:multiqueue0.GstPad:sink_1: caps = video/x-h264, stream-format=(string)byte-stream, alignment=(string)nal<br>
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstH264Parse:h264parse0.GstPad:src: caps = video/x-h264, stream-format=(string)byte-stream, alignment=(string)au, parsed=(boolean)true<br>Missing element: H.264 decoder<br>/GstPipeline:pipeline0/GstDecodeBin:decoder/GstMultiQueue:multiqueue0: max-size-buffers = 5<br>
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstMultiQueue:multiqueue0: max-size-time = 0<br>/GstPipeline:pipeline0/GstDecodeBin:decoder/GstMultiQueue:multiqueue0: max-size-bytes = 2097152<br>/GstPipeline:pipeline0/GstDecodeBin:decoder/GstMultiQueue:multiqueue0: max-size-buffers = 5<br>
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstMultiQueue:multiqueue0: max-size-time = 0<br>/GstPipeline:pipeline0/GstDecodeBin:decoder/GstMultiQueue:multiqueue0: max-size-bytes = 2097152<br>/GstPipeline:pipeline0/GstDecodeBin:decoder/GstCapsFilter:capsfilter0.GstPad:src: caps = video/x-h264, stream-format=(string)byte-stream, alignment=(string)au, parsed=(boolean)true<br>
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstCapsFilter:capsfilter0.GstPad:sink: caps = video/x-h264, stream-format=(string)byte-stream, alignment=(string)au, parsed=(boolean)true<br>/GstPipeline:pipeline0/GstDecodeBin:decoder/GstCapsFilter:capsfilter0.GstPad:src: caps = video/x-h264, stream-format=(string)byte-stream, alignment=(string)au, parsed=(boolean)true<br>
/GstPipeline:pipeline0/GstQueue:queue2.GstPad:src: caps = audio/x-raw, format=(string)S16LE, layout=(string)interleaved, rate=(int)44100, channels=(int)2, channel-mask=(bitmask)0x0000000000000003<br>/GstPipeline:pipeline0/GstQueue:queue2.GstPad:sink: caps = audio/x-raw, format=(string)S16LE, layout=(string)interleaved, rate=(int)44100, channels=(int)2, channel-mask=(bitmask)0x0000000000000003<br>
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstFaad:faad0.GstPad:src: caps = audio/x-raw, format=(string)S16LE, layout=(string)interleaved, rate=(int)44100, channels=(int)2, channel-mask=(bitmask)0x0000000000000003<br>.........<br>
<br></div>This is part of the output when playing<br><br>Setting pipeline to PAUSED ...<br>Pipeline is PREROLLING ...<br>/GstPipeline:pipeline0/GstDecodeBin:decoder/GstTypeFindElement:typefind.GstPad:src: caps = video/mpegts, systemstream=(boolean)true, packetsize=(int)188<br>
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstTSDemux:tsdemux0.GstPad:sink: caps = video/mpegts, systemstream=(boolean)true, packetsize=(int)188<br>/GstPipeline:pipeline0/GstDecodeBin:decoder/GstMultiQueue:multiqueue0.GstPad:src_0: caps = audio/mpeg, mpegversion=(int)2, stream-format=(string)adts<br>
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstAacParse:aacparse0.GstPad:sink: caps = audio/mpeg, mpegversion=(int)2, stream-format=(string)adts<br>/GstPipeline:pipeline0/GstDecodeBin:decoder/GstMultiQueue:multiqueue0.GstPad:sink_0: caps = audio/mpeg, mpegversion=(int)2, stream-format=(string)adts<br>
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstAacParse:aacparse0.GstPad:src: caps = audio/mpeg, framed=(boolean)true, mpegversion=(int)4, rate=(int)44100, channels=(int)2, stream-format=(string)adts<br>/GstPipeline:pipeline0/GstDecodeBin:decoder/GstFaad:faad0.GstPad:sink: caps = audio/mpeg, framed=(boolean)true, mpegversion=(int)4, rate=(int)44100, channels=(int)2, stream-format=(string)adts<br>
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstFaad:faad0.GstPad:src: caps = audio/x-raw, format=(string)S16LE, layout=(string)interleaved, rate=(int)44100, channels=(int)2, channel-mask=(bitmask)0x0000000000000003<br>/GstPipeline:pipeline0/GstDecodeBin:decoder/GstMultiQueue:multiqueue0: max-size-buffers = 5<br>
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstMultiQueue:multiqueue0: max-size-time = 0<br>/GstPipeline:pipeline0/GstDecodeBin:decoder/GstMultiQueue:multiqueue0: max-size-bytes = 2097152<br>/GstPipeline:pipeline0/GstDecodeBin:decoder/GstMultiQueue:multiqueue0.GstPad:src_1: caps = video/x-h264, stream-format=(string)byte-stream, alignment=(string)nal<br>
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstH264Parse:h264parse0.GstPad:sink: caps = video/x-h264, stream-format=(string)byte-stream, alignment=(string)nal<br>/GstPipeline:pipeline0/GstDecodeBin:decoder/GstMultiQueue:multiqueue0.GstPad:sink_1: caps = video/x-h264, stream-format=(string)byte-stream, alignment=(string)nal<br>
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstH264Parse:h264parse0.GstPad:src: caps = video/x-h264, stream-format=(string)byte-stream, alignment=(string)au, width=(int)320, height=(int)180, framerate=(fraction)25/1, parsed=(boolean)true, pixel-aspect-ratio=(fraction)1/1<br>
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstCapsFilter:capsfilter0.GstPad:src: caps = video/x-h264, stream-format=(string)byte-stream, alignment=(string)au, width=(int)320, height=(int)180, framerate=(fraction)25/1, parsed=(boolean)true, pixel-aspect-ratio=(fraction)1/1<br>
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstOMXH264Dec-omxh264dec:omxh264dec-omxh264dec0.GstPad:sink: caps = video/x-h264, stream-format=(string)byte-stream, alignment=(string)au, width=(int)320, height=(int)180, framerate=(fraction)25/1, parsed=(boolean)true, pixel-aspect-ratio=(fraction)1/1<br>
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstCapsFilter:capsfilter0.GstPad:sink: caps = video/x-h264, stream-format=(string)byte-stream, alignment=(string)au, width=(int)320, height=(int)180, framerate=(fraction)25/1, parsed=(boolean)true, pixel-aspect-ratio=(fraction)1/1<br>
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstCapsFilter:capsfilter0.GstPad:src: caps = video/x-h264, stream-format=(string)byte-stream, alignment=(string)au, width=(int)320, height=(int)180, framerate=(fraction)25/1, parsed=(boolean)true, pixel-aspect-ratio=(fraction)1/1<br>
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstOMXH264Dec-omxh264dec:omxh264dec-omxh264dec0.GstPad:sink: caps = video/x-h264, stream-format=(string)byte-stream, alignment=(string)au, width=(int)320, height=(int)180, framerate=(fraction)25/1, parsed=(boolean)true, pixel-aspect-ratio=(fraction)1/1<br>
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstOMXH264Dec-omxh264dec:omxh264dec-omxh264dec0.GstPad:src: caps = video/x-raw, format=(string)I420, width=(int)320, height=(int)180, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, colorimetry=(string)bt601, framerate=(fraction)25/1<br>
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstMultiQueue:multiqueue0: max-size-buffers = 5<br>/GstPipeline:pipeline0/GstDecodeBin:decoder/GstMultiQueue:multiqueue0: max-size-time = 0<br>/GstPipeline:pipeline0/GstDecodeBin:decoder/GstMultiQueue:multiqueue0: max-size-bytes = 2097152<br>
/GstPipeline:pipeline0/GstDecodeBin:decoder.GstDecodePad:src_0: caps = video/x-raw, format=(string)I420, width=(int)320, height=(int)180, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, colorimetry=(string)bt601, framerate=(fraction)25/1<br>
/GstPipeline:pipeline0/GstDecodeBin:decoder.GstDecodePad:src_0: caps = video/x-raw, format=(string)I420, width=(int)320, height=(int)180, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, colorimetry=(string)bt601, framerate=(fraction)25/1<br>
/GstPipeline:pipeline0/GstDecodeBin:decoder.GstDecodePad:src_1: caps = audio/x-raw, format=(string)S16LE, layout=(string)interleaved, rate=(int)44100, channels=(int)2, channel-mask=(bitmask)0x0000000000000003<br>/GstPipeline:pipeline0/GstQueue:queue1.GstPad:src: caps = video/x-raw, format=(string)I420, width=(int)320, height=(int)180, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, colorimetry=(string)bt601, framerate=(fraction)25/1<br>
/GstPipeline:pipeline0/GstQueue:queue1.GstPad:sink: caps = video/x-raw, format=(string)I420, width=(int)320, height=(int)180, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, colorimetry=(string)bt601, framerate=(fraction)25/1<br>
/GstPipeline:pipeline0/GstDecodeBin:decoder.GstDecodePad:src_0.GstProxyPad:proxypad10: caps = video/x-raw, format=(string)I420, width=(int)320, height=(int)180, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, colorimetry=(string)bt601, framerate=(fraction)25/1<br>
/GstPipeline:pipeline0/GstQueue:queue2.GstPad:sink: caps = audio/x-raw, format=(string)S16LE, layout=(string)interleaved, rate=(int)44100, channels=(int)2, channel-mask=(bitmask)0x0000000000000003<br>/GstPipeline:pipeline0/GstDecodeBin:decoder.GstDecodePad:src_1.GstProxyPad:proxypad7: caps = audio/x-raw, format=(string)S16LE, layout=(string)interleaved, rate=(int)44100, channels=(int)2, channel-mask=(bitmask)0x0000000000000003<br>
/GstPipeline:pipeline0/GstAudioConvert:audioconvert0.GstPad:src: caps = audio/x-raw, format=(string)S16LE, layout=(string)interleaved, rate=(int)44100, channels=(int)2, channel-mask=(bitmask)0x0000000000000003<br>/GstPipeline:pipeline0/GstAlsaSink:alsasink0.GstPad:sink: caps = audio/x-raw, format=(string)S16LE, layout=(string)interleaved, rate=(int)44100, channels=(int)2, channel-mask=(bitmask)0x0000000000000003<br>
/GstPipeline:pipeline0/GstAudioConvert:audioconvert0.GstPad:sink: caps = audio/x-raw, format=(string)S16LE, layout=(string)interleaved, rate=(int)44100, channels=(int)2, channel-mask=(bitmask)0x0000000000000003<br>/GstPipeline:pipeline0/GstVideoConvert:videoconvert0.GstPad:src: caps = video/x-raw, format=(string)I420, width=(int)320, height=(int)180, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, colorimetry=(string)bt601, framerate=(fraction)25/1<br>
/GstPipeline:pipeline0/GstAutoVideoSink:autovideosink0.GstGhostPad:sink.GstProxyPad:proxypad1: caps = video/x-raw, format=(string)I420, width=(int)320, height=(int)180, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, colorimetry=(string)bt601, framerate=(fraction)25/1<br>
/GstPipeline:pipeline0/GstAutoVideoSink:autovideosink0/GstEglGlesSink:autovideosink0-actual-sink-eglgles.GstPad:sink: caps = video/x-raw, format=(string)I420, width=(int)320, height=(int)180, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, colorimetry=(string)bt601, framerate=(fraction)25/1<br>
/GstPipeline:pipeline0/GstAutoVideoSink:autovideosink0.GstGhostPad:sink: caps = video/x-raw, format=(string)I420, width=(int)320, height=(int)180, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, colorimetry=(string)bt601, framerate=(fraction)25/1<br>
/GstPipeline:pipeline0/GstVideoConvert:videoconvert0.GstPad:sink: caps = video/x-raw, format=(string)I420, width=(int)320, height=(int)180, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, colorimetry=(string)bt601, framerate=(fraction)25/1<br>
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstOMXH264Dec-omxh264dec:omxh264dec-omxh264dec0.GstPad:src: caps = video/x-raw, format=(string)I420, width=(int)320, height=(int)180, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, colorimetry=(string)bt601, framerate=(fraction)25/1<br>
/GstPipeline:pipeline0/GstDecodeBin:decoder.GstDecodePad:src_0: caps = video/x-raw, format=(string)I420, width=(int)320, height=(int)180, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, colorimetry=(string)bt601, framerate=(fraction)25/1<br>
/GstPipeline:pipeline0/GstQueue:queue1.GstPad:src: caps = video/x-raw, format=(string)I420, width=(int)320, height=(int)180, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, colorimetry=(string)bt601, framerate=(fraction)25/1<br>
/GstPipeline:pipeline0/GstQueue:queue1.GstPad:sink: caps = video/x-raw, format=(string)I420, width=(int)320, height=(int)180, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, colorimetry=(string)bt601, framerate=(fraction)25/1<br>
/GstPipeline:pipeline0/GstDecodeBin:decoder.GstDecodePad:src_0.GstProxyPad:proxypad10: caps = video/x-raw, format=(string)I420, width=(int)320, height=(int)180, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, colorimetry=(string)bt601, framerate=(fraction)25/1<br>
/GstPipeline:pipeline0/GstVideoConvert:videoconvert0.GstPad:src: caps = video/x-raw, format=(string)I420, width=(int)320, height=(int)180, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, colorimetry=(string)bt601, framerate=(fraction)25/1<br>
/GstPipeline:pipeline0/GstAutoVideoSink:autovideosink0.GstGhostPad:sink.GstProxyPad:proxypad1: caps = video/x-raw, format=(string)I420, width=(int)320, height=(int)180, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, colorimetry=(string)bt601, framerate=(fraction)25/1<br>
/GstPipeline:pipeline0/GstAutoVideoSink:autovideosink0/GstEglGlesSink:autovideosink0-actual-sink-eglgles.GstPad:sink: caps = video/x-raw, format=(string)I420, width=(int)320, height=(int)180, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, colorimetry=(string)bt601, framerate=(fraction)25/1<br>
/GstPipeline:pipeline0/GstAutoVideoSink:autovideosink0.GstGhostPad:sink: caps = video/x-raw, format=(string)I420, width=(int)320, height=(int)180, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, colorimetry=(string)bt601, framerate=(fraction)25/1<br>
/GstPipeline:pipeline0/GstVideoConvert:videoconvert0.GstPad:sink: caps = video/x-raw, format=(string)I420, width=(int)320, height=(int)180, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, colorimetry=(string)bt601, framerate=(fraction)25/1<br>
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstCapsFilter:capsfilter0.GstPad:src: caps = video/x-h264, stream-format=(string)byte-stream, alignment=(string)au, width=(int)320, height=(int)180, framerate=(fraction)25/1, parsed=(boolean)true, pixel-aspect-ratio=(fraction)1/1<br>
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstOMXH264Dec-omxh264dec:omxh264dec-omxh264dec0.GstPad:sink: caps = video/x-h264, stream-format=(string)byte-stream, alignment=(string)au, width=(int)320, height=(int)180, framerate=(fraction)25/1, parsed=(boolean)true, pixel-aspect-ratio=(fraction)1/1<br>
Pipeline is PREROLLED ...<br>Setting pipeline to PLAYING ...<br>/GstPipeline:pipeline0/GstQueue:queue2.GstPad:src: caps = audio/x-raw, format=(string)S16LE, layout=(string)interleaved, rate=(int)44100, channels=(int)2, channel-mask=(bitmask)0x0000000000000003<br>
New clock: GstAudioSinkClock<br>/GstPipeline:pipeline0/GstAudioConvert:audioconvert0.GstPad:src: caps = audio/x-raw, format=(string)S16LE, layout=(string)interleaved, rate=(int)44100, channels=(int)2, channel-mask=(bitmask)0x0000000000000003<br>
/GstPipeline:pipeline0/GstAlsaSink:alsasink0.GstPad:sink: caps = audio/x-raw, format=(string)S16LE, layout=(string)interleaved, rate=(int)44100, channels=(int)2, channel-mask=(bitmask)0x0000000000000003<br>/GstPipeline:pipeline0/GstAudioConvert:audioconvert0.GstPad:sink: caps = audio/x-raw, format=(string)S16LE, layout=(string)interleaved, rate=(int)44100, channels=(int)2, channel-mask=(bitmask)0x0000000000000003<br>
<br></div>