summaryrefslogtreecommitdiff
path: root/audio/alac
diff options
context:
space:
mode:
authorjs <js@pkgsrc.org>2020-04-14 22:33:14 +0000
committerjs <js@pkgsrc.org>2020-04-14 22:33:14 +0000
commit49f93ba49ee5371b22970f94f33b4890f65ab157 (patch)
tree98bdfef23f189c64f31c7576ecb4160c6463e3fb /audio/alac
parent498a692ee927aa1abe136656851c510d68fd55bc (diff)
downloadpkgsrc-49f93ba49ee5371b22970f94f33b4890f65ab157.tar.gz
Import audio/alac from wip
A basic decoder for Apple Lossless Audio Codec files.
Diffstat (limited to 'audio/alac')
-rw-r--r--audio/alac/DESCR21
-rw-r--r--audio/alac/Makefile21
-rw-r--r--audio/alac/PLIST2
-rw-r--r--audio/alac/distinfo6
4 files changed, 50 insertions, 0 deletions
diff --git a/audio/alac/DESCR b/audio/alac/DESCR
new file mode 100644
index 00000000000..301e4049b45
--- /dev/null
+++ b/audio/alac/DESCR
@@ -0,0 +1,21 @@
+Located here is a basic decoder for Apple Lossless Audio Codec files
+(ALAC). ALAC is a proprietary lossless audio compression scheme. Apple
+never released any documents on the format.
+What I provide here is a C implementation of a decoder, written from
+reverse engineering the file format. It turns out that most of the
+algorithms in the codec are fairly well known. ALAC uses an adaptive FIR
+prediction algorithm and stores the error values using a modified rice
+or golumb algorithm. Further details are in alac.c.
+
+Although an encoder is not provided, by using the decoder as a sort of
+specification it should be fairly trivial to write an encoder. By
+exploiting other lossless audio encoders, such as FLAC, the task will be
+much easier. Although one wouldn't be able to copy the compression
+algorithms verbatim, as adaptive compression is used in ALAC and not in
+FLAC. There are, however, a bunch of academic papers on the issue.
+
+The program located here will not be able to handle all ALAC files, it
+can only handle mono or stereo files. ALAC allows up to 8 channels. It
+should be trivial to finish the implementation once I find files that I
+can test it with. The ALAC decoder supports both 16 and 24 bit sample
+sizes.
diff --git a/audio/alac/Makefile b/audio/alac/Makefile
new file mode 100644
index 00000000000..da4479a2238
--- /dev/null
+++ b/audio/alac/Makefile
@@ -0,0 +1,21 @@
+# $NetBSD: Makefile,v 1.1 2020/04/14 22:33:14 js Exp $
+
+DISTNAME= alac_decoder-0.2.0
+CATEGORIES= audio
+MASTER_SITES= https://web.archive.org/web/20150510210401if_/http://craz.net/programs/itunes/files/
+EXTRACT_SUFX= .tgz
+
+MAINTAINER= js@pkgsrc.org
+HOMEPAGE= https://web.archive.org/web/20150319040222/craz.net/programs/itunes/alac.html
+COMMENT= Basic decoder for Apple Lossless Audio Codec files (ALAC)
+LICENSE= mit
+
+WRKSRC= ${WRKDIR}/alac_decoder
+BUILD_TARGET= alac
+
+INSTALLATION_DIRS+= bin
+
+do-install:
+ ${INSTALL_PROGRAM} ${WRKSRC}/alac ${DESTDIR}${PREFIX}/bin/alac
+
+.include "../../mk/bsd.pkg.mk"
diff --git a/audio/alac/PLIST b/audio/alac/PLIST
new file mode 100644
index 00000000000..a701f0a8c19
--- /dev/null
+++ b/audio/alac/PLIST
@@ -0,0 +1,2 @@
+@comment $NetBSD: PLIST,v 1.1 2020/04/14 22:33:14 js Exp $
+bin/alac
diff --git a/audio/alac/distinfo b/audio/alac/distinfo
new file mode 100644
index 00000000000..bfa9107ee59
--- /dev/null
+++ b/audio/alac/distinfo
@@ -0,0 +1,6 @@
+$NetBSD: distinfo,v 1.1 2020/04/14 22:33:14 js Exp $
+
+SHA1 (alac_decoder-0.2.0.tgz) = a620f6293ef2d9490927d21ec341bbeff13eabe8
+RMD160 (alac_decoder-0.2.0.tgz) = 72664dff4eeff6e484314f625f74337e60ba39fb
+SHA512 (alac_decoder-0.2.0.tgz) = 4b37d4fe37681bfccaa4a27fbaf11eb2a1fba5f14e77d219a6d9814ff44d1168534d05eb19443dd2fd11e6fcdf4da3a22e3f3c79314cb7a6767c152351b13e29
+Size (alac_decoder-0.2.0.tgz) = 19019 bytes