Hello,
I am seeing strange behaviour of several GStreamer pipelines running on a DM368 (LeopardBoard). In a nutshell, the CPU load reported by the dmaiperf plug-in (and verified by top) will vary between two limiting values, for example 1%-25% or 15%-50% depending on the pipeline. In some cases the pipeline will "stick" in one mode, then after an unpredictable time it will switch to the other mode. In other cases the pipeline will flip back and forth between the two modes over a period of several seconds or minutes. The transition is more or less a step change; I don't see intermediate CPU loads.
Two pipelines that suffer from this problem are:
(1080i video capture and H.264 encode)
gst-launch -e v4l2src input-src=sdi always-copy=false ! 'video/x-raw-yuv, format=(fourcc)NV12, width=1920, height=1088' ! TIVidenc1 engineName
=codecServer codecName=h264enc encodingPreset=3 rateControlPreset=2 bitRate=4000000 contiguousInputFrame=true ! fakesink silent=true
(16-bit/48 kHz stereo audio capture)
gst-launch -e alsasrc ! 'audio/x-raw-int, width=16, rate=48000, channels=2' ! fakesink silent=true
Has anyone seen similar behaviour and been able to diagnose what's going on?
I have used oprofile to determine where the CPU time is going, and so far have been able to conclude that the load due to the codecs and drivers themselves is constant and low, so it appears that it's something to do with GStreamer itself. However because the GStreamer libraries are supplied in stripped form I can't get much more detail.
Any suggestions or ideas would be appreciated.
Thanks,
Ian