112 Commits

Author SHA1 Message Date
Dimitris C. 45178a9afc feature(Ogg): Adds OggVorbis playback support (#122)
* park

* park - working

* Adds support for Ogg Vorbis

* fixes

* fix rateNode issue

* Update README to remove M4A limitation note

Removed limitation note for non-optimized M4A files.

* Update iOS requirement from 13.0 to 15.0

* improvements

* removes debug message

* improves `isSeekable` property

* fix

* Refactors project use pure Package.swift and swift test

* Refactor GitHub Actions workflow for Swift package testing
2025-11-08 20:22:56 +02:00
Maximilian Bauer bccfc20403 fix seek crash: Double value gets infinit and can't be converted to Int64 (#115)
* fix seek crash: Double value get infinit and can't be converted to Int64

* add CoreAudio import to be able to build for macOS Catalyst
2025-10-13 18:32:34 +03:00
Dimitris C. 69dc0d631c fix(MP4): MP4 restructure improvements and some other fixes (#120)
* Adds mp4 restructure improvements

* fixes data race

* fix incorrect parsing of formatList

* adds more handling on propertyListenerProc
2025-10-13 18:32:09 +03:00
Tiger W 4d9bb98aed Support customizing HTTP method and HTTP body (#108) 2025-05-30 14:38:29 +03:00
Dimitris C. 31368a54c1 Revert "Revert "Expose the framesPlayed attribute so progress can be tracked …" (#111)
This reverts commit d3b563c7cd.
2025-05-30 10:13:46 +03:00
Dimitris C. d3b563c7cd Revert "Expose the framesPlayed attribute so progress can be tracked based on…" (#110)
This reverts commit a416cc8e92.
2025-05-29 17:50:50 +03:00
Jackson Harper a416cc8e92 Expose the framesPlayed attribute so progress can be tracked based on frames instead of time (#109) 2025-05-29 17:45:31 +03:00
Stuart A. Malone f36ca68faa Mark state and error types as Sendable so clients can pass them (#105)
across isolation boundaries.
2025-02-26 17:20:33 +02:00
Patrick McConnell 548d599628 Add tvOS Support (#102)
* add tvOS support

* update tvOS requirement to v16
2024-12-30 13:56:28 +02:00
Jackson Harper 624e575980 Allow playing custom streams (#94)
* Allow playing custom streams

This lets users implement custom streams that can be played. For
example, I have a websocket interface that I fetch data from. I
can wrap that stream into a CoreAudioStreamSource and add that to
the player.

* Add example of using a custom stream

* Add ability to queue custom streams
2024-09-19 14:35:40 +03:00
dimitris-c 4951b54ede check and assign magic cookie on ReadyToProducePackets 2024-08-25 17:41:59 +03:00
Dimitris C. f8f836125d Fixes audio cutoff on flac files (#89) 2024-07-28 16:59:00 +03:00
dimitris-c d24bca48a2 Add usage of OSAllocatedUnfairLock for macOS 13+ 2024-07-11 14:24:20 +03:00
dimitris-c 1916a0628a Use OSAllocatedUnfairLock on iOS 16+ 2024-07-11 14:18:27 +03:00
Dimitris C 933a22bb72 Adds macOS support, updates example project (#81)
Also fixes a thread safety issue
2024-05-17 22:53:16 +03:00
Dimitris C fde33feeef feature(Example): Update example project (#80)
* Adds initial new example project

* example project progress

* progress

* progress

* progress

* update comment on example project

* adds animations to eq view

* progress

* refactor

* progress

* Updates example, fixes noise output on mute

* Update swift.yml

* Update swift.yml

* fix tests

* Update README.md
2024-05-16 13:03:21 +03:00
Dimitris C 1f70860473 feature(Mp4): Adds support for non-optimised mp4 audio for local files (#79)
* adds handling for non-optimized m4a for local files

* seek improvements

* small improvement in render processor

* improvements on seeking on local files

* improvements on seeking

* nit
2024-05-15 00:30:01 +03:00
Dimitris C a8865bb4d8 Mp4 Restructure account for large mdat box size (#78) 2024-05-09 14:45:02 +03:00
Dimitris C cb72197f8e feature(Mp4): Support for non-optimised mp4 (#67)
* initial work for supporting non-optimised mp4

* Update AppCoordinator.swift

* some refactor and fixed seek for a restructured mp4

* nit

* nit

* nit

* runs swiftlint

* improvements

* improvements

* handles case where we the stream is not seekable for an mp4 file

* better check for mp4, seekable and moov atom

* nit

* fix an issue with seek

* some refactoring
2024-04-01 16:02:51 +03:00
Dimitris C 374da9bc22 removes measure file 2024-03-28 15:38:08 +02:00
Dimitris C 38d0bdb5d9 fix a glitch sound on pause and play (#69) 2024-03-10 19:23:58 +02:00
Dimitris C decb12641d fix incorrect stopReason on finish delegate method (#66) 2024-02-29 14:49:51 +02:00
Dimitris C 4e485f924a Fixes an issue with seek on FileAudioSource (#65) 2024-02-27 19:03:57 +02:00
junyaninflection 6f552e60c0 Lazy initialize singleton mixer node (#58) 2023-08-14 19:22:24 +03:00
dimitris-c 0c2c7ba685 Fixes an issue with seek functionality
Lowers the sourceQueue qos to default

Signed-off-by: dimitris-c <d.chatzieleftheriou@gmail.com>
2022-09-01 17:46:13 +03:00
dimitris-c 50174a7f4a Fix wrong next entry on audioPlayerDidStartPlaying
Signed-off-by: dimitris-c <d.chatzieleftheriou@gmail.com>
2022-08-30 12:59:02 +03:00
dimitris-c cc82e79d50 Updates UnfairLock
Signed-off-by: dimitris-c <d.chatzieleftheriou@gmail.com>
2022-08-30 01:47:26 +03:00
dimitris-c 56c6483fc0 Some nits
Signed-off-by: dimitris-c <d.chatzieleftheriou@gmail.com>
2022-02-28 17:46:28 +02:00
Dimitris C fca0930b01 Fixes remote audio source network issues (#35) 2022-02-27 00:05:15 +02:00
Dimitris Apostolou f15f0f6eae Fix typos (#34) 2022-02-20 22:40:50 +02:00
Dimitris C 03c6a7692c Fixes an issue where the memory is not released after paused audio (#33) 2021-12-06 19:58:50 +02:00
Dimitris C 7e45a7b2f5 Removes unneeded DispatchTimerSource (#32)
Correct Spelling issues
Fix an issue in RemoteAudioSource when icycast headers are not available
2021-10-05 18:32:55 +03:00
Dimitris C 8bdc2a64f7 Fixes a memory leak issue in RemoteAudioSource (#29) 2021-09-07 15:36:51 +03:00
Dimitris C 217a88f171 Adds frame filters to allow recording, monitoring, and observation of audio (#18)
* Adds frame filters feature

* nit

* Updates Readme file

Co-authored-by: Dimitrios C <dimitrisc@DimitrisC-Macbook-Pro.local>
2021-05-24 23:58:16 +03:00
Dimitrios C d8aa58525c Makes AudioPlayer an open class
Exposes AudioEngine’s mainMixerNode
Added missing documentation
2021-05-18 23:54:43 +03:00
Mushthak Ebrahim 334be32bf9 Fix header not get passed into method (#16) 2021-03-02 18:15:26 +02:00
Dimitris C aca69debd1 Adds support for Shoutcast headers in audio stream (#14)
* Adds support for Shoutcast headers in audio stream

* Renames proccessIcecastHeaders to process(data:

* Updates comment on IcycastHeadersProcessor
2021-02-14 16:33:37 +02:00
Dimitris C f0811c4fc8 Fixes queueing multiple items (#13)
* Fixes queing multiple items

Adds error callback on AudioConverter failure

* Adds a new radio stream in AudioExample

* Updates Readme file
2021-01-16 11:37:26 +02:00
Dimitris C 6c9ef18d4e Fixes an issue when queueing a song (#10)
- Updates AudioExample with initial queuing of items
2020-12-07 22:12:30 +00:00
Jacky db8aa646da return current seeking time as progress (#9)
* return current seeking time as progress

* Update AudioStreaming/Streaming/AudioPlayer/AudioPlayer.swift

Co-authored-by: Dimitris C. <d.chatzieleftheriou@gmail.com>

Co-authored-by: Dimitris C. <d.chatzieleftheriou@gmail.com>
2020-12-02 14:22:58 +00:00
Dimitris C 22e46114a6 Fixes magicCookie issue
Fixes an issue with the magic cookie being set to AudioFileStream instead of AudioConverter.
2020-12-01 17:49:25 +00:00
Dimitris C 28fa4463e0 Update AudioStreaming/Streaming/Parsers/HTTPHeaderParser.swift 2020-12-01 11:08:08 +00:00
Dimitris C abd8c91b46 Better parsing of header fields for case insensitive 2020-12-01 10:51:15 +00:00
Dimitris C 85b45f6dfa Fixes memory leak in FileAudioSource 2020-11-19 13:57:09 +00:00
Dimitris C 0e6cadba1b removes overflow subtraction operator 2020-11-19 13:51:23 +00:00
Dimitris C ed58739be0 Squashed commit of the following:
commit 52385c28089e2440f9ebea20abedf5be1c518cda
Author: Dimitris C <d.chatzieleftheriou@gmail.com>
Date:   Thu Nov 19 13:14:59 2020 +0000

    Fixes and issue with arithmetic overflow

    # Conflicts:
    #	AudioStreaming/Streaming/Audio Source/RemoteAudioSource.swift
    #	AudioStreaming/Streaming/AudioPlayer/Processors/AudioFileStreamProcessor.swift
2020-11-19 13:20:46 +00:00
Dimitris C 33575385e3 Removes bogus file 2020-11-16 12:11:18 +00:00
Dimitris C a2e6925a76 Adds correct version number 2020-11-16 10:55:41 +00:00
Dimitris C 79f0e9e321 Adds equalizer and rate in AudioExample 2020-11-15 20:14:59 +00:00
Dimitris C 44c10d8692 Updates AudioExample project 2020-11-15 20:14:59 +00:00