aboutsummaryrefslogtreecommitdiffstats
path: root/audio
diff options
context:
space:
mode:
authorsteve <steve@FreeBSD.org>1998-12-24 14:59:44 +0800
committersteve <steve@FreeBSD.org>1998-12-24 14:59:44 +0800
commit30515f2dd2f4f73b93397ca5c9dc330560a1b19a (patch)
tree7ae2868a0c4113841e7de8457fc7eb2d8c452016 /audio
parent440e132ce9a16d8a26bfb655d32d69574176a7f7 (diff)
downloadfreebsd-ports-graphics-30515f2dd2f4f73b93397ca5c9dc330560a1b19a.tar.gz
freebsd-ports-graphics-30515f2dd2f4f73b93397ca5c9dc330560a1b19a.tar.zst
freebsd-ports-graphics-30515f2dd2f4f73b93397ca5c9dc330560a1b19a.zip
Initial import of mp3encode version 1.10.
An MPEG layer I, II, and III audio file encoder. PR: 7735 Submitted by: Joel Sutton <jsutton@webnet.com.au>
Diffstat (limited to 'audio')
-rw-r--r--audio/mp3encode/Makefile44
-rw-r--r--audio/mp3encode/distinfo1
-rw-r--r--audio/mp3encode/files/patch-aa19
-rw-r--r--audio/mp3encode/files/patch-ab214
-rw-r--r--audio/mp3encode/files/patch-ac19
-rw-r--r--audio/mp3encode/files/patch-ad19
-rw-r--r--audio/mp3encode/pkg-comment1
-rw-r--r--audio/mp3encode/pkg-descr38
-rw-r--r--audio/mp3encode/pkg-plist39
9 files changed, 394 insertions, 0 deletions
diff --git a/audio/mp3encode/Makefile b/audio/mp3encode/Makefile
new file mode 100644
index 00000000000..5ee7f69bf45
--- /dev/null
+++ b/audio/mp3encode/Makefile
@@ -0,0 +1,44 @@
+# New ports collection makefile for: mp3encode
+# Version required: 1.10
+# Date created: 5th August, 1998
+# Whom: Joel Sutton <jsutton@webnet.com.au>
+#
+# $Id$
+#
+
+DISTNAME= dist10
+PKGNAME= mp3encode-1.10
+CATEGORIES= audio
+MASTER_SITES= ftp://ftp.sunet.se/pub/multimedia/Berkeley/mpeg2/conformance-bitstreams/audio/mpeg2/software/technical_report/
+
+MAINTAINER= jsutton@webnet.com.au
+
+WRKSRC= ${WRKDIR}/${DISTNAME}/lsf/encoder
+ALL_TARGET= encode
+HAS_CONFIGURE= yes
+USE_GMAKE= yes
+
+# Directories and extra files
+#
+TABLE_LIB= ${PREFIX}/lib/mp3encode
+TABLE_LIB_SED= ${TABLE_LIB:S/\//\\\//g}
+TABLE_FILES= 1cb0 1cb1 1cb2 1cb4 1cb5 1cb6 1th0 1th1 1th2 1th4 1th5 1th6 \
+ 2cb0 2cb1 2cb2 2cb4 2cb5 2cb6 2th0 2th1 2th2 2th4 2th5 2th6 \
+ absthr_0 absthr_1 absthr_2 alloc_0 alloc_1 alloc_2 alloc_3 \
+ alloc_4 dewindow enwindow huffcode huffdec psy_data
+
+post-patch:
+ @${ECHO} "===> Specifing table path "
+ ${SED} "s/ZAP/${TABLE_LIB_SED}/g" < ${WRKSRC}/common.h >${WRKSRC}/common.h.sed
+ ${CP} -f ${WRKSRC}/common.h.sed ${WRKSRC}/common.h
+
+do-install:
+ @${ECHO} "===> Installing binaries"
+ ${INSTALL_PROGRAM} ${WRKSRC}/encode ${PREFIX}/bin
+ @${ECHO} "===> Installing table files"
+ -${MKDIR} ${TABLE_LIB}
+ for file in ${TABLE_FILES} ; do \
+ ${INSTALL_DATA} ${WRKSRC}/tables/$$file ${TABLE_LIB}/ ;\
+ done
+
+.include <bsd.port.mk>
diff --git a/audio/mp3encode/distinfo b/audio/mp3encode/distinfo
new file mode 100644
index 00000000000..6aa45183a0f
--- /dev/null
+++ b/audio/mp3encode/distinfo
@@ -0,0 +1 @@
+MD5 (dist10.tar.gz) = 62cee8daa6041b8a2d0a9a1ef18163b4
diff --git a/audio/mp3encode/files/patch-aa b/audio/mp3encode/files/patch-aa
new file mode 100644
index 00000000000..c84422453a5
--- /dev/null
+++ b/audio/mp3encode/files/patch-aa
@@ -0,0 +1,19 @@
+*** Makefile.in.orig Wed May 20 22:00:23 1998
+--- Makefile.in Wed May 20 22:07:53 1998
+***************
+*** 40,46 ****
+
+ NINT_SWITCH = @NINTSW@
+
+! CC_SWITCHES = -g -O -DUNIX -DBS_FORMAT=BINARY $(NINT_SWITCH) -DNDEBUG
+
+ PGM = encode
+
+--- 40,46 ----
+
+ NINT_SWITCH = @NINTSW@
+
+! CC_SWITCHES = -g -O3 -DUNIX -DBS_FORMAT=BINARY $(NINT_SWITCH) -DNDEBUG
+
+ PGM = encode
+
diff --git a/audio/mp3encode/files/patch-ab b/audio/mp3encode/files/patch-ab
new file mode 100644
index 00000000000..37abff2eae6
--- /dev/null
+++ b/audio/mp3encode/files/patch-ab
@@ -0,0 +1,214 @@
+*** musicin.c.orig Wed May 20 22:09:24 1998
+--- musicin.c Wed May 20 22:15:02 1998
+***************
+*** 161,167 ****
+
+ do {
+ printf("Enter PCM input file name <required>: ");
+! gets(original_file_name);
+ if (original_file_name[0] == NULL_CHAR)
+ printf("PCM input file name is required.\n");
+ } while (original_file_name[0] == NULL_CHAR);
+--- 161,167 ----
+
+ do {
+ printf("Enter PCM input file name <required>: ");
+! fgets(original_file_name,255,stdin);
+ if (original_file_name[0] == NULL_CHAR)
+ printf("PCM input file name is required.\n");
+ } while (original_file_name[0] == NULL_CHAR);
+***************
+*** 182,188 ****
+ original_file_name, DFLT_EXT);
+ #endif
+
+! gets(encoded_file_name);
+
+ if (encoded_file_name[0] == NULL_CHAR) {
+ #ifdef MS_DOS
+--- 182,188 ----
+ original_file_name, DFLT_EXT);
+ #endif
+
+! fgets(encoded_file_name,255,stdin);
+
+ if (encoded_file_name[0] == NULL_CHAR) {
+ #ifdef MS_DOS
+***************
+*** 227,233 ****
+ else { /* Not using Audio IFF sound file headers. */
+
+ printf("What is the sampling frequency? <44100>[Hz]: ");
+! gets(t);
+ freq = atol(t);
+ switch (freq) {
+ case 48000 : info->sampling_frequency = 1;
+--- 227,233 ----
+ else { /* Not using Audio IFF sound file headers. */
+
+ printf("What is the sampling frequency? <44100>[Hz]: ");
+! fgets(t,255,stdin);
+ freq = atol(t);
+ switch (freq) {
+ case 48000 : info->sampling_frequency = 1;
+***************
+*** 268,274 ****
+
+ printf("Which layer do you want to use?\n");
+ printf("Available: Layer (1), Layer (<2>), Layer (3): ");
+! gets(t);
+ switch(*t){
+ case '1': info->lay = 1; printf(">>> Using Layer %s\n",t); break;
+ case '2': info->lay = 2; printf(">>> Using Layer %s\n",t); break;
+--- 268,274 ----
+
+ printf("Which layer do you want to use?\n");
+ printf("Available: Layer (1), Layer (<2>), Layer (3): ");
+! fgets(t,255,stdin);
+ switch(*t){
+ case '1': info->lay = 1; printf(">>> Using Layer %s\n",t); break;
+ case '2': info->lay = 2; printf(">>> Using Layer %s\n",t); break;
+***************
+*** 279,285 ****
+ printf("Which mode do you want?\n");
+ printf("Available: (<s>)tereo, (j)oint stereo, ");
+ printf("(d)ual channel, s(i)ngle Channel: ");
+! gets(t);
+ switch(*t){
+ case 's':
+ case 'S':
+--- 279,285 ----
+ printf("Which mode do you want?\n");
+ printf("Available: (<s>)tereo, (j)oint stereo, ");
+ printf("(d)ual channel, s(i)ngle Channel: ");
+! fgets(t,255,stdin);
+ switch(*t){
+ case 's':
+ case 'S':
+***************
+*** 308,314 ****
+ }
+
+ printf("Which psychoacoustic model do you want to use? <1>: ");
+! gets(t);
+ model = atoi(t);
+ if (model > 2 || model < 1) {
+ printf(">>> Default model 1 selected\n");
+--- 308,314 ----
+ }
+
+ printf("Which psychoacoustic model do you want to use? <1>: ");
+! fgets(t,255,stdin);
+ model = atoi(t);
+ if (model > 2 || model < 1) {
+ printf(">>> Default model 1 selected\n");
+***************
+*** 322,328 ****
+ /* set default bitrate to highest allowed, which is index 14 */
+ brt = bitrate[info->version][info->lay-1][14];
+ printf( "What is the total bitrate? <%u>[kbps]: ", brt );
+! gets( t );
+ brt = atoi( t );
+ if ( brt == 0 )
+ j = 15;
+--- 322,328 ----
+ /* set default bitrate to highest allowed, which is index 14 */
+ brt = bitrate[info->version][info->lay-1][14];
+ printf( "What is the total bitrate? <%u>[kbps]: ", brt );
+! fgets(t,255,stdin);
+ brt = atoi( t );
+ if ( brt == 0 )
+ j = 15;
+***************
+*** 348,354 ****
+
+ printf("What type of de-emphasis should the decoder use?\n");
+ printf("Available: (<n>)one, (5)0/15 microseconds, (c)citt j.17: ");
+! gets(t);
+ if (*t != 'n' && *t != '5' && *t != 'c') {
+ printf(">>> Using default no de-emphasis\n");
+ info->emphasis = 0;
+--- 348,354 ----
+
+ printf("What type of de-emphasis should the decoder use?\n");
+ printf("Available: (<n>)one, (5)0/15 microseconds, (c)citt j.17: ");
+! fgets(t,255,stdin);
+ if (*t != 'n' && *t != '5' && *t != 'c') {
+ printf(">>> Using default no de-emphasis\n");
+ info->emphasis = 0;
+***************
+*** 363,369 ****
+ /* Start 2. Part changes for CD Ver 3.2; jsp; 22-Aug-1991 */
+
+ printf("Do you want to set the private bit? (y/<n>): ");
+! gets(t);
+ if (*t == 'y' || *t == 'Y') info->extension = 1;
+ else info->extension = 0;
+ if(info->extension) printf(">>> Private bit set\n");
+--- 363,369 ----
+ /* Start 2. Part changes for CD Ver 3.2; jsp; 22-Aug-1991 */
+
+ printf("Do you want to set the private bit? (y/<n>): ");
+! fgets(t,255,stdin);
+ if (*t == 'y' || *t == 'Y') info->extension = 1;
+ else info->extension = 0;
+ if(info->extension) printf(">>> Private bit set\n");
+***************
+*** 372,399 ****
+ /* End changes for CD Ver 3.2; jsp; 22-Aug-1991 */
+
+ printf("Do you want error protection? (y/<n>): ");
+! gets(t);
+ if (*t == 'y' || *t == 'Y') info->error_protection = TRUE;
+ else info->error_protection = FALSE;
+ if(info->error_protection) printf(">>> Error protection used\n");
+ else printf(">>> Error protection not used\n");
+
+ printf("Is the material copyrighted? (y/<n>): ");
+! gets(t);
+ if (*t == 'y' || *t == 'Y') info->copyright = 1;
+ else info->copyright = 0;
+ if(info->copyright) printf(">>> Copyrighted material\n");
+ else printf(">>> Material not copyrighted\n");
+
+ printf("Is this the original? (y/<n>): ");
+! gets(t);
+ if (*t == 'y' || *t == 'Y') info->original = 1;
+ else info->original = 0;
+ if(info->original) printf(">>> Original material\n");
+ else printf(">>> Material not original\n");
+
+ printf("Do you wish to exit (last chance before encoding)? (y/<n>): ");
+! gets(t);
+ if (*t == 'y' || *t == 'Y') exit(0);
+ }
+
+--- 372,399 ----
+ /* End changes for CD Ver 3.2; jsp; 22-Aug-1991 */
+
+ printf("Do you want error protection? (y/<n>): ");
+! fgets(t,255,stdin);
+ if (*t == 'y' || *t == 'Y') info->error_protection = TRUE;
+ else info->error_protection = FALSE;
+ if(info->error_protection) printf(">>> Error protection used\n");
+ else printf(">>> Error protection not used\n");
+
+ printf("Is the material copyrighted? (y/<n>): ");
+! fgets(t,255,stdin);
+ if (*t == 'y' || *t == 'Y') info->copyright = 1;
+ else info->copyright = 0;
+ if(info->copyright) printf(">>> Copyrighted material\n");
+ else printf(">>> Material not copyrighted\n");
+
+ printf("Is this the original? (y/<n>): ");
+! fgets(t,255,stdin);
+ if (*t == 'y' || *t == 'Y') info->original = 1;
+ else info->original = 0;
+ if(info->original) printf(">>> Original material\n");
+ else printf(">>> Material not original\n");
+
+ printf("Do you wish to exit (last chance before encoding)? (y/<n>): ");
+! fgets(t,255,stdin);
+ if (*t == 'y' || *t == 'Y') exit(0);
+ }
+
diff --git a/audio/mp3encode/files/patch-ac b/audio/mp3encode/files/patch-ac
new file mode 100644
index 00000000000..5d09cc01663
--- /dev/null
+++ b/audio/mp3encode/files/patch-ac
@@ -0,0 +1,19 @@
+*** common.h.orig Wed Jan 22 20:43:13 1997
+--- common.h Thu May 21 14:12:52 1998
+***************
+*** 93,99 ****
+ #endif
+
+ #ifdef UNIX
+! #define TABLES_PATH "tables" /* to find data files */
+ /* name of environment variable holding path of table files */
+ #define MPEGTABENV "MPEGTABLES"
+ #define PATH_SEPARATOR "/" /* how to build paths */
+--- 93,99 ----
+ #endif
+
+ #ifdef UNIX
+! #define TABLES_PATH "ZAP" /* to find data files */
+ /* name of environment variable holding path of table files */
+ #define MPEGTABENV "MPEGTABLES"
+ #define PATH_SEPARATOR "/" /* how to build paths */
diff --git a/audio/mp3encode/files/patch-ad b/audio/mp3encode/files/patch-ad
new file mode 100644
index 00000000000..41bf19dbb7b
--- /dev/null
+++ b/audio/mp3encode/files/patch-ad
@@ -0,0 +1,19 @@
+*** encoder.h.orig Fri Jul 3 20:20:57 1998
+--- encoder.h Fri Jul 3 20:21:56 1998
+***************
+*** 62,68 ****
+
+ #define DFLT_LAY 2 /* default encoding layer is II */
+ #define DFLT_MOD 's' /* default mode is stereo */
+! #define DFLT_PSY 1 /* default psych model is 1 */
+ #define DFLT_SFQ 44.1 /* default input sampling rate is 44.1 kHz */
+ #define DFLT_EMP 'n' /* default de-emphasis is none */
+ #define DFLT_EXT ".mpg" /* default output file extension */
+--- 62,68 ----
+
+ #define DFLT_LAY 2 /* default encoding layer is II */
+ #define DFLT_MOD 's' /* default mode is stereo */
+! #define DFLT_PSY 2 /* default psych model is 1 */
+ #define DFLT_SFQ 44.1 /* default input sampling rate is 44.1 kHz */
+ #define DFLT_EMP 'n' /* default de-emphasis is none */
+ #define DFLT_EXT ".mpg" /* default output file extension */
diff --git a/audio/mp3encode/pkg-comment b/audio/mp3encode/pkg-comment
new file mode 100644
index 00000000000..1f33ba3e663
--- /dev/null
+++ b/audio/mp3encode/pkg-comment
@@ -0,0 +1 @@
+MPEG layer I, II and III audio file encoder.
diff --git a/audio/mp3encode/pkg-descr b/audio/mp3encode/pkg-descr
new file mode 100644
index 00000000000..133b7b866c6
--- /dev/null
+++ b/audio/mp3encode/pkg-descr
@@ -0,0 +1,38 @@
+INTRODUCTION
+============
+mp3encode is a package for encoding MPEG layer I, II and III audio
+files. This is the reference implementation so don't expect
+spectacular performance.
+
+Driving encode is pretty simple although it may take some practice to
+work out an optimal compression rate. AIFF files are the only type of
+files that seem to work with this version so you may need to install a
+port like "sox" to convert your file types. I use the "nas" port to
+record and edit all of my audio files but so long as you have a valid
+AIFF file it shouldn't matter what you use.
+
+Although the source code includes a decoder I have decided not to port
+it because we already have a couple of top class mpeg decoders in the
+ports collection.
+
+HINTS & TIPS
+============
+Physcoacoustic model 2 is the only supported model in layer III
+encoding. A bit-rate of 128Kbps is adequate for most forms of music but
+you may need to turn down the compression to 160Kbps if the music is
+particularly atmospheric.
+
+Vocal spoken recordings are best encoded using a 32Kbps bit-rate with
+layer II (layer III makes you sound like a Dalek under digital water)
+with a 32kHz sample rate in mono. Using this method I have managed to
+get about 5 minutes of AM Radio quality audio into around 1 MB.
+
+MISC
+====
+If anyone finds any bugs in this software please let me know and
+include patches to fix them.
+
+Share and enjoy,
+
+Joel...
+jsutton@webnet.com.au
diff --git a/audio/mp3encode/pkg-plist b/audio/mp3encode/pkg-plist
new file mode 100644
index 00000000000..6651cccf304
--- /dev/null
+++ b/audio/mp3encode/pkg-plist
@@ -0,0 +1,39 @@
+bin/encode
+lib/mp3encode/1cb0
+lib/mp3encode/1cb1
+lib/mp3encode/1cb2
+lib/mp3encode/1cb4
+lib/mp3encode/1cb5
+lib/mp3encode/1cb6
+lib/mp3encode/1th0
+lib/mp3encode/1th1
+lib/mp3encode/1th2
+lib/mp3encode/1th4
+lib/mp3encode/1th5
+lib/mp3encode/1th6
+lib/mp3encode/2cb0
+lib/mp3encode/2cb1
+lib/mp3encode/2cb2
+lib/mp3encode/2cb4
+lib/mp3encode/2cb5
+lib/mp3encode/2cb6
+lib/mp3encode/2th0
+lib/mp3encode/2th1
+lib/mp3encode/2th2
+lib/mp3encode/2th4
+lib/mp3encode/2th5
+lib/mp3encode/2th6
+lib/mp3encode/absthr_0
+lib/mp3encode/absthr_1
+lib/mp3encode/absthr_2
+lib/mp3encode/alloc_0
+lib/mp3encode/alloc_1
+lib/mp3encode/alloc_2
+lib/mp3encode/alloc_3
+lib/mp3encode/alloc_4
+lib/mp3encode/dewindow
+lib/mp3encode/enwindow
+lib/mp3encode/huffcode
+lib/mp3encode/huffdec
+lib/mp3encode/psy_data
+@dirrm lib/mp3encode