The renderer properly integrates in the PlaybackPipeline instead of being implemented mainly as a fakesink pad probe.
The rendererbin takes care of instantiating the elements required for the renderer to be able to centre the waveform (queues / tee, audioconverter) and filters the events and buffers when a seek back is performed to retrieve the left part of the waveform.
Behaviour should be identical to what could be achieved before the plugin integration. The followings still need to be implemented:
Range preview (play range).
Rendering Widget. The WaveformRenderer is passed as an opaque struct to the renderer element. The renderer element should produce buffers with metadata for a dedicated Rendering Widget.
The plugin consists in 2 elements:
renderer
properly integrates in thePlaybackPipeline
instead of being implemented mainly as afakesink
pad probe.rendererbin
takes care of instantiating the elements required for therenderer
to be able to centre the waveform (queue
s /tee
,audioconverter
) and filters the events and buffers when a seek back is performed to retrieve the left part of the waveform.Behaviour should be identical to what could be achieved before the plugin integration. The followings still need to be implemented:
WaveformRenderer
is passed as an opaquestruct
to therenderer
element. Therenderer
element should produce buffers with metadata for a dedicated Rendering Widget.