Missing element: H.264 decoder .... sometimes (for Raspberry Pi)

Peter Maersk-Moller pmaersk at gmail.com
Sat Sep 14 15:43:03 PDT 2013


Hi.

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.

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:


http://wiki.matthiasbock.net/index.php/Hardware-accelerated_video_playback_on_the_Raspberry_P
i

This is the pipeline used to generate the stream:

#!/bin/sh
AUDIO='audio/x-raw-int, endianness=(int)1234, signed=(boolean)true,
width=(int)16, depth=(int)16, rate=(int)44100, channels=(int)2'
VIDEO='video/x-raw-yuv, width=(int)320, height=(int)180,
framerate=(fraction)25/1, pixel-aspect-ratio=(fraction)1/1'

audioencoder='faac bitrate=128000 profile=LC outputformat=0'
videoencoder='x264enc tune=zerolatency bitrate=4000 profile=baseline'
ENCAUDIO='audio/mpeg,mpegversion=4, stream-format=raw'
ENCVIDEO='video/x-h264, alignment=au, stream-format=byte-stream'

gst-launch-0.10 -v                                                    \
        audiotestsrc is-live=true                               !\
        queue                                                   !\
        $AUDIO                                                  !\
        audioconvert                                            !\
        $audioencoder                                           !\
        $ENCAUDIO                                               !\
        queue                                                   !\
        muxer. videotestsrc is-live=true                        !\
        $VIDEO                                                  !\
        queue                                                   !\
        $videoencoder                                           !\
        $ENCVIDEO                                               !\
        h264parse                                               !\
        queue                                                   !\
        mpegtsmux name=muxer                                    !\
        mpegtsparse                                             !\
        queue                                                   !\
        tcpserversink host=0.0.0.0 port=5012 sync-method=2

This is the pipeline used to play the stream on the Rasp-pi

gst-launch-1.0 -v --gst-debug=decodebin:4                \
        tcpclientsrc host=81.7.134.69 port=5012         !\
        queue max-size-buffers=0                        !\
        decodebin name=decoder max-size-bytes=0         !\
        queue max-size-bytes=000000                     !\
        videoconvert                                    !\
        autovideosink decoder.                          !\
        queue max-size-bytes=000000                     !\
        audioconvert ! alsasink

This is part of the output, when the stream is NOT playing (please note the
missing element statement):

Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstTypeFindElement:typefind.GstPad:src:
caps = video/mpegts, systemstream=(boolean)true, packetsize=(int)188
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstTSDemux:tsdemux0.GstPad:sink:
caps = video/mpegts, systemstream=(boolean)true, packetsize=(int)188
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstMultiQueue:multiqueue0.GstPad:src_0:
caps = audio/mpeg, mpegversion=(int)2, stream-format=(string)adts
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstAacParse:aacparse0.GstPad:sink:
caps = audio/mpeg, mpegversion=(int)2, stream-format=(string)adts
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstMultiQueue:multiqueue0.GstPad:sink_0:
caps = audio/mpeg, mpegversion=(int)2, stream-format=(string)adts
/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
/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
/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
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstMultiQueue:multiqueue0:
max-size-buffers = 5
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstMultiQueue:multiqueue0:
max-size-time = 0
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstMultiQueue:multiqueue0:
max-size-bytes = 2097152
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstMultiQueue:multiqueue0.GstPad:src_1:
caps = video/x-h264, stream-format=(string)byte-stream,
alignment=(string)nal
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstH264Parse:h264parse0.GstPad:sink:
caps = video/x-h264, stream-format=(string)byte-stream,
alignment=(string)nal
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstMultiQueue:multiqueue0.GstPad:sink_1:
caps = video/x-h264, stream-format=(string)byte-stream,
alignment=(string)nal
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstH264Parse:h264parse0.GstPad:src:
caps = video/x-h264, stream-format=(string)byte-stream,
alignment=(string)au, parsed=(boolean)true
Missing element: H.264 decoder
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstMultiQueue:multiqueue0:
max-size-buffers = 5
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstMultiQueue:multiqueue0:
max-size-time = 0
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstMultiQueue:multiqueue0:
max-size-bytes = 2097152
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstMultiQueue:multiqueue0:
max-size-buffers = 5
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstMultiQueue:multiqueue0:
max-size-time = 0
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstMultiQueue:multiqueue0:
max-size-bytes = 2097152
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstCapsFilter:capsfilter0.GstPad:src:
caps = video/x-h264, stream-format=(string)byte-stream,
alignment=(string)au, parsed=(boolean)true
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstCapsFilter:capsfilter0.GstPad:sink:
caps = video/x-h264, stream-format=(string)byte-stream,
alignment=(string)au, parsed=(boolean)true
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstCapsFilter:capsfilter0.GstPad:src:
caps = video/x-h264, stream-format=(string)byte-stream,
alignment=(string)au, parsed=(boolean)true
/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
/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
/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
.........

This is part of the output when playing

Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstTypeFindElement:typefind.GstPad:src:
caps = video/mpegts, systemstream=(boolean)true, packetsize=(int)188
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstTSDemux:tsdemux0.GstPad:sink:
caps = video/mpegts, systemstream=(boolean)true, packetsize=(int)188
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstMultiQueue:multiqueue0.GstPad:src_0:
caps = audio/mpeg, mpegversion=(int)2, stream-format=(string)adts
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstAacParse:aacparse0.GstPad:sink:
caps = audio/mpeg, mpegversion=(int)2, stream-format=(string)adts
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstMultiQueue:multiqueue0.GstPad:sink_0:
caps = audio/mpeg, mpegversion=(int)2, stream-format=(string)adts
/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
/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
/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
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstMultiQueue:multiqueue0:
max-size-buffers = 5
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstMultiQueue:multiqueue0:
max-size-time = 0
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstMultiQueue:multiqueue0:
max-size-bytes = 2097152
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstMultiQueue:multiqueue0.GstPad:src_1:
caps = video/x-h264, stream-format=(string)byte-stream,
alignment=(string)nal
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstH264Parse:h264parse0.GstPad:sink:
caps = video/x-h264, stream-format=(string)byte-stream,
alignment=(string)nal
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstMultiQueue:multiqueue0.GstPad:sink_1:
caps = video/x-h264, stream-format=(string)byte-stream,
alignment=(string)nal
/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
/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
/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
/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
/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
/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
/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
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstMultiQueue:multiqueue0:
max-size-buffers = 5
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstMultiQueue:multiqueue0:
max-size-time = 0
/GstPipeline:pipeline0/GstDecodeBin:decoder/GstMultiQueue:multiqueue0:
max-size-bytes = 2097152
/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
/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
/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
/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
/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
/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
/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
/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
/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
/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
/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
/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
/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
/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
/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
/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
/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
/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
/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
/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
/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
/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
/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
/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
/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
/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
/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
/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
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
/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
New clock: GstAudioSinkClock
/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
/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
/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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20130915/88a160ec/attachment-0001.html>


More information about the gstreamer-devel mailing list