Benches can be defined in a similar way to tests. However, this still requires a nightly toolchain. It would be possible to set the benches in the benches directory, but then the source files are no longer part of the application's crate scope.
criterion seems to be a good solution capable of generating plots and which relies on the stable toolchain. However, benches must be defined in the banches directory.
Modules of the application are already gathered under super modules application, media, etc. These super modules can be defined as specific lib in workspaces allowing them to be used in benches. This could also be a first step toward sharing common parts between media-toc and media-toc-player.
Identified issues:
The PlaybackPipeline uses Config from the module Application in order to disable gl rendering when an error occures with the video rendering sink. This error should be transferred to the UI which would take care of setting the Config.
Image, WaveformBuffer and WaveformImage could move to either media or to a dedicated renderer module so as to unty them from the UI.
2 process are candidates for benches in the perspective of assessing potential enhancements:
Benches can be defined in a similar way to tests. However, this still requires a nightly toolchain. It would be possible to set the benches in the
benches
directory, but then the source files are no longer part of the application's crate scope.criterion
seems to be a good solution capable of generating plots and which relies on the stable toolchain. However, benches must be defined in thebanches
directory.Modules of the application are already gathered under super modules
application
,media
, etc. These super modules can be defined as specific lib in workspaces allowing them to be used in benches. This could also be a first step toward sharing common parts betweenmedia-toc
andmedia-toc-player
.Identified issues:
PlaybackPipeline
usesConfig
from the moduleApplication
in order to disable gl rendering when an error occures with the video rendering sink. This error should be transferred to the UI which would take care of setting theConfig
.Image
,WaveformBuffer
andWaveformImage
could move to eithermedia
or to a dedicatedrenderer
module so as to unty them from the UI.2 process are candidates for benches in the perspective of assessing potential enhancements:
AudioBuffer
receivinggst::Buffer
s.WaveformBuffer
rendering waveform.