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>
This commit is contained in:
parent
70369d768b
commit
340ec2166a
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=15561
44
audio/mp3encode/Makefile
Normal file
44
audio/mp3encode/Makefile
Normal file
@ -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>
|
1
audio/mp3encode/distinfo
Normal file
1
audio/mp3encode/distinfo
Normal file
@ -0,0 +1 @@
|
||||
MD5 (dist10.tar.gz) = 62cee8daa6041b8a2d0a9a1ef18163b4
|
19
audio/mp3encode/files/patch-aa
Normal file
19
audio/mp3encode/files/patch-aa
Normal file
@ -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
|
||||
|
214
audio/mp3encode/files/patch-ab
Normal file
214
audio/mp3encode/files/patch-ab
Normal file
@ -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);
|
||||
}
|
||||
|
19
audio/mp3encode/files/patch-ac
Normal file
19
audio/mp3encode/files/patch-ac
Normal file
@ -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 */
|
19
audio/mp3encode/files/patch-ad
Normal file
19
audio/mp3encode/files/patch-ad
Normal file
@ -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 */
|
1
audio/mp3encode/pkg-comment
Normal file
1
audio/mp3encode/pkg-comment
Normal file
@ -0,0 +1 @@
|
||||
MPEG layer I, II and III audio file encoder.
|
38
audio/mp3encode/pkg-descr
Normal file
38
audio/mp3encode/pkg-descr
Normal file
@ -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
|
39
audio/mp3encode/pkg-plist
Normal file
39
audio/mp3encode/pkg-plist
Normal file
@ -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
|
Loading…
Reference in New Issue
Block a user