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

Feature request: Async codec #123

Open
jakobnissen opened this issue Aug 28, 2022 · 0 comments
Open

Feature request: Async codec #123

jakobnissen opened this issue Aug 28, 2022 · 0 comments

Comments

@jakobnissen
Copy link
Collaborator

jakobnissen commented Aug 28, 2022

As far as I can tell, TranscodingSteams (TS) is currently mostly used for de/compression codecs, which are quite CPU-intensive. In this case it would be beneficial to allow the de/compression to happen in a separate thread concurrently.

I think this can be solved by having an Async codec that wraps any TS, such that the underlying stream's transcoding happens in another thread. More specifically, Async could carry an internal buffer B along with its input (I) and output (O) buffers. When O runs dry, it will copy data from B to O, then schedule the transcoding from I to B.

I believe this codec should be in TS and not a separate package because:

  1. It's near-universally useful for users of TS
  2. The Async codec might have to reach into TS's internals for efficiency, to make sure the underlying TS really does run its transcoding in a different task.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant