The current handling in this situation is in an incomplete and inconsistent state:
processes last chunk before EoS without considering constraints
but only port constraints and not resampling constraints
no way to customize that behavior
After some discussion with me, @RalphSteinhagen and @drslebedev the following implementation is proposed:
by default, drop last samples(and tags except EoS of course) that violate the constraints (resampling, stride & port min/max)
provide an optional customisation point: Derrived::processBulkEpilogue(args same as process bulk modulo std::span vs ConsumableSpan)
that way, the regular process function can be kept free of the branch for handling incomplete data
it will provide all available data on all ports before the end of stream tag as arguments and allows to publish or not to publish samples at the implementers discretion
need to add additional unit tests for the extension point
For implementation, the default behaviour is changed in #366 to what is described above, implementing the customisation point will be a separate task to be tackled after the ASYNC handling.
The current handling in this situation is in an incomplete and inconsistent state:
After some discussion with me, @RalphSteinhagen and @drslebedev the following implementation is proposed:
Derrived::processBulkEpilogue(args same as process bulk modulo std::span vs ConsumableSpan)
For implementation, the default behaviour is changed in #366 to what is described above, implementing the customisation point will be a separate task to be tackled after the ASYNC handling.