- Use
atomicModifyIORef'
- Make more robust against memory leaks:
- Use
StrictDatain the library - Add
-fno-full-laziness - The resampler now uses an
IOReffor the last value required to interpolate the first value of the next block. It also does not rely on theStateTmonad anymore, and it is more stable in case aConduitTgets discontinued.
- Use
- Add flake.nix
- Loosen restrictions on the
basedependency
- Rename
pcmMediaBuffertomediaBufferLens - Replace the type class
HasMediaBufferwith a new classHasMediaBufferLensthat directly points to aMediaBuffer - Add debug sinks to dump a stream to a file
- Add a
LogSourceto all mediabus logging, and offer a predicate for users of the library that allows to filter
- Add
forallexpressions for easier type applications
-
Introduce
logStreamCaStreamlogger conduit. -
Improve the aggregation API
- Add
aggregateByCfor custom aggregation - Introduce the
Framestype for the result of the aggregation functions in order to have a more readable show instance - Introduce
aggregateUntilRestartOrEofa functions the aggregates all frames untile a start frame is received or no more input is available
- Add
-
Simplify the segment API
- Rename
SegmenttoStaticSegment - Introduce a
Segmentthat takesNominalDiffTimeinstead of static time stamps - Introduce
startEachSegmentCa function that sends aStartvalue for eachSegment
- Rename
- Add a
HasDurationimplementation for lists
- Streamline and simplify
aggregateDurationCandaggregateCountC
- Add buffer aggregation.
- Fix a small bug in
segmentCand improve the tests
- Adapt to new upstream versions of base and conduit
- Create new
FrameRingwith better performance - Deprecate
Data.MediaBus.Conduit.Async - Fix
assumeSynchronizedC
- Add removeTimestamp, removeTimestampC
- Add setTimestampFromDurations, setTimestampFromDurationsC
- Merge Data.MediaBus.Conduit.Timing into Data.MediaBus.Conduit.SyncStream
- Rename setSequenceNumbersAndTimestamps to setSequenceNumberAndTimestamp
- Rename
convertTicksCtoconvertTimestampC - Rename mapTicksC to mapTimestampC
- Rename deriveFrameTimestamp to setTimestampFromDurationsC
- Improve SyncStream documentation
- Add conduit wrapper functions for the SyncStream functions
- Remove
Reframer - Add
SyncStreamtype - Add functions to add a sequence number and timestamp to a
SyncStreamrendering it a (reqular)Stream
- Add utility module
Reframerfor timestamp adaption ofFrames - Add utility module
VectorExtra - Add logging utility modules to prefix all log messages done in nested
Conduits andMonadLoggerIOmonads