https://github.com/mewkiz/flac
Package flac provides access to FLAC (Free Lossless Audio Codec) streams.
https://github.com/mewkiz/flac
Last synced: 29 days ago
JSON representation
Package flac provides access to FLAC (Free Lossless Audio Codec) streams.
- Host: GitHub
- URL: https://github.com/mewkiz/flac
- Owner: mewkiz
- License: unlicense
- Created: 2012-11-01T20:13:58.000Z (over 12 years ago)
- Default Branch: master
- Last Pushed: 2024-08-11T19:51:50.000Z (8 months ago)
- Last Synced: 2024-08-11T20:38:27.375Z (8 months ago)
- Language: Go
- Homepage:
- Size: 5.8 MB
- Stars: 309
- Watchers: 13
- Forks: 43
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-go - flac - Native Go FLAC encoder/decoder with support for FLAC streams. (Audio and Music)
- awesome-go - flac - Native Go FLAC encoder/decoder with support for FLAC streams. (Audio and Music)
- awesome-go-with-stars - flac - Native Go FLAC encoder/decoder with support for FLAC streams. (Audio and Music)
- awesome-Char - flac - Native Go FLAC encoder/decoder with support for FLAC streams. (Audio and Music / Contents)
- awesome-go-cn - flac
- awesome-go - flac - Native Go FLAC encoder/decoder with support for FLAC streams. (Audio and Music)
- awesome-go-cn - flac
- awesome-go - flac - Native Go FLAC decoder. (Audio and Music)
- awesome-open-synth - flac
- awesome-go-cn - flac
- fucking-awesome-go - :octocat: flac - A native Go FLAC decoder. :star: 23 :fork_and_knife: 9 (Audio/Music)
- awesome-go - flac - Native Go FLAC encoder/decoder with support for FLAC streams. (Audio and Music)
- awesome-go - flac - | (Audio and Music)
- awesome-go - flac - Native Go FLAC encoder/decoder with support for FLAC streams. (Audio and Music)
- awesome-go - flac - Native Go FLAC encoder/decoder with support for FLAC streams. - :arrow_down:17 - :star:29 (Audio and Music)
- awesome-go - flac - Package flac provides access to FLAC (Free Lossless Audio Codec) streams. - ★ 78 (Audio and Music)
- awesome-go-cn - flac
- awesome-go - flac - Native Go FLAC encoder/decoder with support for FLAC streams. (Audio and Music)
- awesome-go - flac - 另一款GO语言实现的本地FLAC解码器。 (<span id="音频和音乐-audio-and-music">音频和音乐 Audio and Music</span>)
- awesome-go-plus - flac - Native Go FLAC encoder/decoder with support for FLAC streams.  (Audio and Music)
- fucking-awesome-go - flac - Native Go FLAC encoder/decoder with support for FLAC streams. (Audio and Music)
- fucking-awesome-go - flac - Native Go FLAC encoder/decoder with support for FLAC streams. (Audio and Music)
- awesome-go-plus - flac - Native Go FLAC encoder/decoder with support for FLAC streams.   (Audio and Music)
- awesome-go - flac - 原生 Go FLAC 编码/解码库。 (音频与音乐)
- awesome-go - flac - 原生 Go FLAC 编码/解码库。 (音频与音乐)
README
# flac
[](https://github.com/mewkiz/flac/actions/workflows/go.yml)
[](https://coveralls.io/github/mewkiz/flac?branch=master)
[](https://pkg.go.dev/github.com/mewkiz/flac)This package provides access to [FLAC][1] (Free Lossless Audio Codec) streams.
[1]: http://flac.sourceforge.net/format.html
## Documentation
Documentation provided by GoDoc.
- [flac]: provides access to FLAC (Free Lossless Audio Codec) streams.
- [frame][flac/frame]: implements access to FLAC audio frames.
- [meta][flac/meta]: implements access to FLAC metadata blocks.[flac]: http://pkg.go.dev/github.com/mewkiz/flac
[flac/frame]: http://pkg.go.dev/github.com/mewkiz/flac/frame
[flac/meta]: http://pkg.go.dev/github.com/mewkiz/flac/meta## Changes
* Version 1.0.12 (2024-08-11)
- Improve performance of flac.NewSeek() by using a buffered reader (see [#72](https://github.com/mewkiz/flac/pull/72)).
- Fix off-by-one error in Seek end of stream check (see [#73](https://github.com/mewkiz/flac/pull/73)).* Version 1.0.11 (2024-08-04)
- Move example tools to dedicated [mewkiz/flac-tools](https://github.com/mewkiz/flac-tools) repository to reduce external dependencies (see [#62](https://github.com/mewkiz/flac/pull/62)).
- Fix seek to frame start (see [#71](https://github.com/mewkiz/flac/pull/71)). Thanks to [Mark Kremer](https://github.com/MarkKremer).
- Simplify internal handling of io.Closer element in flac.Stream and flac.Encoder types (see [#70](https://github.com/mewkiz/flac/pull/70)). Thanks to [Mario Salgado](https://github.com/zalgonoise).* Version 1.0.10 (2023-11-11)
- Add support for LPC audio sample encoding (see [#66](https://github.com/mewkiz/flac/pull/66)). Thanks to [Mark Kremer](https://github.com/MarkKremer) for bug fixes and [Mattias Wadman](https://github.com/wader) for the invaluable [fq](https://github.com/wader/fq) tool used to investigate FLAC encoding issues.
- Replace Travis CI with GitHub actions for CI build status, test status and code coverage [#64](https://github.com/mewkiz/flac/pull/64)). Thanks to [Mark Kremer](https://github.com/MarkKremer).* Version 1.0.9 (2023-10-24)
- Fix integer overflow during unfolding of rice residual (see [#61](https://github.com/mewkiz/flac/pull/61)). Thanks to [Mark Kremer](https://github.com/MarkKremer).
- Fix decoding of escaped partition audio samples (see [#60](https://github.com/mewkiz/flac/issues/60)). Thanks to [Mark Kremer](https://github.com/MarkKremer).
- Handle frame hashing of audio samples with bits-per-sample not evenly divisible by 8 (see [9d50c9e](https://github.com/mewkiz/flac/commit/9d50c9ee99ba322f487ed60442dc16f22b2affb8)).* Version 1.0.8 (2023-04-09)
- Fix race condition when reading meta data (see [#56](https://github.com/mewkiz/flac/pull/56)). Thanks to [Zach Orosz](https://github.com/zachorosz).
- Fix encoding of 8-bps WAV audio samples (see [#52](https://github.com/mewkiz/flac/pull/52)). Thanks to [Martijn van Beurden](https://github.com/ktmf01).
- Fix StreamInfo block type error message (see [#49](https://github.com/mewkiz/flac/pull/49)).* Version 1.0.7 (2021-01-28)
- Add seek API (see [#44](https://github.com/mewkiz/flac/pull/44) and [#46](https://github.com/mewkiz/flac/pull/46)). Thanks to [Craig Swank](https://github.com/cswank).* Version 1.0.6 (2019-12-20)
- Add experimental Encoder API to encode audio samples and metadata blocks (see [#32](https://github.com/mewkiz/flac/pull/32)).
- Use go.mod.
- Skip ID3v2 data prepended to flac files when parsing (see [36cc17e](https://github.com/mewkiz/flac/commit/36cc17efed51a9bae283d6a3a7a10997492945e7)).
- Remove dependency on encodebytes. Thanks to [Mikey Dickerson](https://github.com/mdickers47).
- Add 16kHz test case. Thanks to [Chewxy](https://github.com/chewxy).
- Fix lint issues (see [#25](https://github.com/mewkiz/flac/issues/25)).* Version 1.0.5 (2016-05-06)
- Simplify import paths. Drop use of gopkg.in, and rely on vendoring instead (see [azul3d/engine#1](https://github.com/azul3d/engine/issues/1)).
- Add FLAC decoding benchmark (see [d675e0a](https://github.com/mewkiz/flac/blob/d675e0aaccf2e43055f56b9b3feeddfdeed402e2/frame/frame_test.go#L60)).* Version 1.0.4 (2016-02-11)
- Add API examples to documentation (see [#11](https://github.com/mewkiz/flac/issues/11)).
- Extend test cases (see [aadf80a](https://github.com/mewkiz/flac/commit/aadf80aa28c463a94b8d5c49757e5a0948613ce2)).* Version 1.0.3 (2016-02-02)
- Implement decoding of FLAC files with wasted bits-per-sample (see [#12](https://github.com/mewkiz/flac/issues/12)).
- Stress test the library using [go-fuzz](https://github.com/dvyukov/go-fuzz) (see [#10](https://github.com/mewkiz/flac/pull/10)). Thanks to [Patrick Mézard](https://github.com/pmezard).* Version 1.0.2 (2015-06-05)
- Fix decoding of blocking strategy (see [#9](https://github.com/mewkiz/flac/pull/9)). Thanks to [Sergey Didyk](https://github.com/sdidyk).* Version 1.0.1 (2015-02-25)
- Fix two subframe decoding bugs (see [#7](https://github.com/mewkiz/flac/pull/7)). Thanks to [Jonathan MacMillan](https://github.com/perotinus).
- Add frame decoding test cases.* Version 1.0.0 (2014-09-30)
- Initial release.
- Implement decoding of FLAC files.