- Use
atomicModifyIORef'
- Make more robust against memory leaks:
- Use
StrictData
in the library - Add
-fno-full-laziness
- The resampler now uses an
IORef
for the last value required to interpolate the first value of the next block. It also does not rely on theStateT
monad anymore, and it is more stable in case aConduitT
gets discontinued.
- Use
- Add flake.nix
- Loosen restrictions on the
base
dependency
- Rename
pcmMediaBuffer
tomediaBufferLens
- Replace the type class
HasMediaBuffer
with a new classHasMediaBufferLens
that directly points to aMediaBuffer
- Add debug sinks to dump a stream to a file
- Add a
LogSource
to all mediabus logging, and offer a predicate for users of the library that allows to filter
- Add
forall
expressions for easier type applications
-
Introduce
logStreamC
aStream
logger conduit. -
Improve the aggregation API
- Add
aggregateByC
for custom aggregation - Introduce the
Frames
type for the result of the aggregation functions in order to have a more readable show instance - Introduce
aggregateUntilRestartOrEof
a functions the aggregates all frames untile a start frame is received or no more input is available
- Add
-
Simplify the segment API
- Rename
Segment
toStaticSegment
- Introduce a
Segment
that takesNominalDiffTime
instead of static time stamps - Introduce
startEachSegmentC
a function that sends aStart
value for eachSegment
- Rename
- Add a
HasDuration
implementation for lists
- Streamline and simplify
aggregateDurationC
andaggregateCountC
- Add buffer aggregation.
- Fix a small bug in
segmentC
and improve the tests
- Adapt to new upstream versions of base and conduit
- Create new
FrameRing
with 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
convertTicksC
toconvertTimestampC
- Rename mapTicksC to mapTimestampC
- Rename deriveFrameTimestamp to setTimestampFromDurationsC
- Improve SyncStream documentation
- Add conduit wrapper functions for the SyncStream functions
- Remove
Reframer
- Add
SyncStream
type - Add functions to add a sequence number and timestamp to a
SyncStream
rendering it a (reqular)Stream
- Add utility module
Reframer
for timestamp adaption ofFrame
s - Add utility module
VectorExtra
- Add logging utility modules to prefix all log messages done in nested
Conduit
s andMonadLoggerIO
monads