Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Handling of input data before the end-of-stream tag that cannot be processed due to port/block constraints #367

Open
wirew0rm opened this issue Jun 21, 2024 · 0 comments

Comments

@wirew0rm
Copy link
Member

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: 🔖 Selected (6)
Development

No branches or pull requests

2 participants