What's Changed
- Add
noexceptto lambdas by @sbooth in #930 - Add
-audioPlayer:didSeek:toFrame:delegate method by @sbooth in #891 - Improve decoder processing format validation by @sbooth in #932
- Use a sentinel value for seek requests instead of a flag by @sbooth in #934
- Updates to
bits::functions by @sbooth in #936 - Improve MP3 frame header detection by @sbooth in #937
- Use
is_set_or_is_clearinstead of!is_set_and_is_clearby @sbooth in #938 - Define temporal constants by @sbooth in #939
- Add missing
statictochannelLayoutTagNameby @sbooth in #940 - Replace
pragma unusedwith[[maybe_unused]]by @sbooth in #941 - Update playback time and position
Equatableconformance by @sbooth in #942 - Add
[[maybe_unused]]toDEBUGvariables by @sbooth in #943 - Bump actions/checkout from 6 to 7 by @dependabot[bot] in #944
- Add
renderEventDroppedflag by @sbooth in #945 - Mute when performing a seek by @sbooth in #946
- Correct error messages by @sbooth in #948
- Use
mpsc::MessageQueuefor player events by @sbooth in #949 - Move comment by @sbooth in #950
- Update
CXXMessageQueueto version 0.2.0 by @sbooth in #952 - Fix MP4 album metadata atom identifier by @kav1903 in #951
- Add
EventCommand::renderBufferUnderrunby @sbooth in #947 - Update
renderEventDroppedlog message by @sbooth in #953 - Explicitly check against
nilby @sbooth in #955 - Make decoder state sequence counter atomic by @sbooth in #956
- Clear format mismatch flag on cancelation by @sbooth in #957
- Leave the graph in a functional state if ring buffer allocation fails by @sbooth in #958
- Improve accuracy of frames rendered bookkeeping by @sbooth in #960
- Use sample number from FLAC frame header and seek fix by @sbooth in #962
- Add bitwise assignment operators by @sbooth in #963
- Move bitwise operators to global namespace by @sbooth in #965
- Improve rendering start and complete handling by @sbooth in #964
- Encapsulate transport state in
TransportStatestruct by @sbooth in #961 - Publish snapshot following seek when paused by @sbooth in #966
- Only publish transport snapshots on the event processing thread by @sbooth in #967
- Clamp frame when seeking by @sbooth in #968
- Use
supportsSeekingby @sbooth in #969 - Use trailing return types to reduce scoping by @sbooth in #970
framesDecoded_does not need to be atomic by @sbooth in #971- Remove extra space by @sbooth in #972
- Add
Flags::formatChangePendingby @sbooth in #954 - Clear
clearFlags(Flags::formatChangePendingwhen decoding is resumed by @sbooth in #973 - Refactor
render()by @sbooth in #974 - Refactor decoder processing loop by @sbooth in #959
- Add
likelyhints to event enqueues by @sbooth in #975 - Use nsec constants instead of macros by @sbooth in #977
- Fix error in timeout calculation by @sbooth in #978
- Read MP4 grouping atom into
groupingby @sbooth in #983 - Correct MP4 freeform atom keys by @sbooth in #984
- Add
constwhere appropriate by @sbooth in #985 - Write converted DSD audio at correct buffer offset by @sbooth in #987
- Add
unlikelyto push failure by @sbooth in #989 - Document decoder ownership by @sbooth in #988
- Refactor decoding started checks by @sbooth in #992
- Ensure rendering start is correctly detected by @sbooth in #990
- Update TagLib to version 2.3.2 by @sbooth in #995
- Improve timing of rendering complete event by @sbooth in #993
- Throttle underrun events to at most one every 100 msec by @sbooth in #996
- Update
CXXMessageQueueto version 0.2.2 by @sbooth in #997 - Add separate rendering starting and complete events by @sbooth in #991
- Add digit separators by @sbooth in #999
- Debug logging for event queue headroom by @sbooth in #998
- Skip mixer-output connection reconfiguration if output hardware format invalid by @sbooth in #1000
- Decrease size of
audioMetadata_by @sbooth in #1004 - Debug logging for metadata queue headroom by @sbooth in #1005
- Reduce variable scope by @sbooth in #1006
- Limit the maximum number of active decoders by @sbooth in #1002
New Contributors
Full Changelog: 0.13.0...0.14.0