Commit 314871c0 authored by Tony Mancill's avatar Tony Mancill

Imported Upstream version 2.3

parents
Sometimes, the calculated remaining time is way off. This happens when
cdparanoia finds a scratch or jitter on the CD and it must spend a LOT of
extra time fixing things. The calculation is based on an average of the number
of sectors read in a certain time period. So all it takes is a few jittery
sectors to throw the completion time off.
Sometimes, especially if using the non-http cddb protocol, ripperX will appear
to hang while looking up the CDDB info. This may because the network connection
is very slow, or it is having trouble doing a DNS lookup.
If ripperX is ever acting strange, especially after upgrading, try deleting
your ~/.ripperXrc file. This should reset things to the defaults. You should
usually delete your old .ripperXrc file if you are upgrading from an older
version of ripperX.
Don't delete the directory you started ripperX in while running ripperX. Also,
do not delete any of the directories used to store the mp3 or wav files.
Sometimes with new CDs you will get a CDDB error 22: CD not found in database.
You can try using another CDDB server. The default one is freedb.org, which
sometimes is not as up to date as cddb.com. Try changing the CDDB server to
something like us.cddb.com (port 888) or us.cddb.com/~cddb/cddb.cgi (for HTTP).
This diff is collapsed.
This diff is collapsed.
/BUGS/1.1.1.1/Sun Nov 19 13:34:41 2000//
/CHANGES/1.3/Mon Nov 19 22:59:18 2001//
/COPYING/1.1.1.1/Sun Nov 19 13:34:41 2000//
/FAQ/1.2/Mon Nov 19 23:03:58 2001//
/INSTALL/1.3/Mon Nov 19 22:59:18 2001//
/Makefile.in/1.1.1.1/Sun Nov 19 13:34:41 2000//
/README/1.2/Tue Aug 7 21:05:28 2001//
/README.plugin/1.1.1.1/Sun Nov 19 13:34:41 2000//
/README.plugin_spec_v0.1/1.1.1.1/Sun Nov 19 13:34:41 2000//
/README.plugin_tester/1.1.1.1/Sun Nov 19 13:34:41 2000//
/TODO/1.3/Mon Nov 19 23:11:00 2001//
/configure/1.1.1.1/Sun Nov 19 13:34:41 2000//
/configure.in/1.1.1.1/Sun Nov 19 13:34:41 2000//
/install-sh/1.1.1.1/Sun Nov 19 13:34:41 2000//
/mkinstalldirs/1.1.1.1/Sun Nov 19 13:34:41 2000//
/ripperX.desktop/1.1.1.1/Sun Nov 19 13:34:41 2000//
/ripperX.spec/1.3/Mon Nov 19 22:49:55 2001//
D
A D/plugins////
A D/src////
:pserver:joske@cvs.ripperx.sourceforge.net:/cvsroot/ripperx
ripperX FAQ
jos.dehaes@bigfoot.com
Last updated: 2001/11/19
AS YOU MAY HAVE NOTICED THIS FAQ IS *WAY* OUT OF DATE. PLEASE CHECK THE NEW FAQ ON RIPPERX.SOURCEFORGE.NET
Q. I keep getting "Error Code 14"
A. This is usually because cdparanoia is not configured properly. If you are
not running ripperX as root, you will need to either give your userid read
access to your cdrom device, or make cdparanoia setuid root.
A. cdparanoia may have trouble with your cdrom drive. Try running
cdparanoia -vQ
and you should see a table of contents appear. If you do not see this, check
the cdparanoia troubleshooting page and FAQ at:
http://www.xiph.org/paranoia/index.html
Q. Sometimes I get "Error Code 22: CD not in database"
A. This is because ripperX uses freedb.org, which sometimes is not as up to
date as cddb.com, especially for new titles. (And vice versa can be true!) I
believe freedb.org is the "Right Thing To Do", and that is why freedb is the
default CDDB server. If you keep getting Error 22, there are 2 things you can
do: 1) open gtcd or similar program and with the CDDB server set to freedb.org,
fill in the information and submit it. 2) Change the CDDB server in ripperX to
us.cddb.com (port 888) or us.cddb.com/~cddb/cddb.cgi (port 80 for HTTP).
Q. How do I change the name of my files to have the track number, album name,
etc?
A. In the Files tab of the configuration window, you will see a File format
string text box. You can name your files anything you want and the special
% variables will be replaced with CDDB information.
%s = Song Title
%a = Artist Name
%# = Track Number
%v = Album Name
for example, the default string is:
%a - %s
which will produce mp3s like so:
Artist Name - Song Title.mp3
Q. How do I make a directory structure like
Artist Name/Album Name/01 - Song Name.mp3?
A. Make sure the "Create album subdirectory for each CD" option is checked.
For the Directory format string, use:
%a/%v
and for the File format string, use:
%# - %s
Q. How can I rip the whole CD first, then encode everything later?
A. Select all the tracks, and select the "Rip wav"
option. All the tracks will be ripped. You can then quit ripperX and come back
later. As long as the "Make mp3 from existing wav file" option under the
General tab is checked, you will be able to encode the files later without
having to rip them again. This works as long as the file names in the text boxes
are exactly the same as they were when they were ripped.
Q. How do I keep the wav files after encoding them?
A. Check the "Keep wav files" option in the General tab.
Q. What about SMP support?
A. There are no plans for ripperX to support SMP directly. However, if you use
one of the SMP enabled encoders, such as gogo and (I think) lame, SMP support
will be totally transparent to ripperX. If quality is a major concern, perhaps
enough people can petition some of the commercial encoder companies to make an
SMP version of their encoder.
Caveats:
1. The stop button may not stop the CD playing. This is because the
"cdplay" program that is shipped with RedHat 6.0 is broken and cannot stop
playing a CD.
2. Sometimes the freedb.org CDDB server will not have a CD in it. Try changing
the URL to us.cddb.com/~cddb/cddb.cgi
The installation procedure is
1. ./configure
2. make
3. su -c "make install"
If you can't be root, use '--prefix=' option when running configure.
To build ripperX, you need gtk. You can get current version of gtk at
www.gtk.org
You will need cdparanoia to rip digital audio from your CD-ROM. You can
get the latest version at http://www.xiph.org/paranoia/index.html
You will also need one of the supported mp3 encoders.
Well, that's all. Have fun.
-------------------------------------------------------------------------
ripperX - a graphical interface to rip cd audio and encode mp3 files.
written by TeJun, Huh, Scott Sams and Jos Dehaes
jos.dehaes@bigfoot.com
sbsams@eos.ncsu.edu
wineking@adam.kaist.ac.kr
SHELL = /bin/sh
VPATH = @srcdir@
subdirs = @subdirs@
all: $(subdirs)
.PHONY: $(subdirs)
$(subdirs):
$(MAKE) -C $@
install:
for dir in $(subdirs); do $(MAKE) -C $$dir install; done
uninstall:
for dir in $(subdirs); do $(MAKE) -C $$dir uninstall; done
clean:
for dir in $(subdirs); do $(MAKE) -C $$dir clean; done
distclean:
for dir in $(subdirs); do $(MAKE) -C $$dir distclean; done
rm -f Makefile config.status config.cache config.log
depend:
for dir in $(subdirs); do $(MAKE) -C $$dir depend; done
ripperX is a graphical interface to CD rippers and MP3 encoders.
GNU GPL. For more information please read the COPYING file.
http://ripperx.sf.net
=====================================================================
If you have any suggestions or bug reports, please mail me at
jos.dehaes@bigfoot.com
Have fun.
This package contains source codes for
i . ripperX plugin tester ( ripperX_plugin_tester.c )
ii . ripperX plugin for cdparanoia ( ripperX_plugin-cdparanoia.c )
iii . ripperX plugin for 8hz-mp3 ( ripperX_plugin-8hz-mp3.c )
and documentations describing
i . ripperX plugin specifications ( README.plugin_spec_v0.1 )
ii . how to use ripperX plugin tester ( README.plugin_tester )
I tested cdparanoia plugin with cdparanoia III alpha prerelease 8 but it
should work with more recent versions and I think the 8hz-mp3 plugin also
should work with the versions most people have.
==========================================================================
ripperX_plugin_devel_package_v0.1
TeJun, Huh
wineking@adam.kaist.ac.kr
ripperX plugin specification v0.1
This document describes the way ripperX plugins work.
1. ripperX plugin?
ripperx plugin is just a program which interprets the output of various
rippers/encoders into the form ripperX understands so that I don't have to
mess with the source code of ripperX to add support for ripperA or encoderB.
;-)
2. The way program/plugin/ripperX communicates.
ripperX will take care of the linkage among ripper/encoder, plugin and
ripperX. The linkage will look like the following.
/-stdout-\ pty/tty /-stdout-\ pty/tty
ripper/encoder- ---------> plugin- ---------> ripperX
\-stderr-/ \-stderr-
\
-> default stderr
Plugin can just read from stdin and write the result to stdout. Both stdout
and stderr of ripper/encoder are redirected to stdin of plugin, and stderr of
plugin is not modified.
3. Plugin arguments
When a plugin is invoked by ripperX, it will be given two arguments. The
first one is the beginning sector of currently processed track, and the second
argument is the length of currently processed track in sector. You can use
this information to caculate the progress.
4. The format of plugin output.
The output of plugin consists of three parts - type, progress, msg. The type
field tells ripperX what kind of msg it is sending. Available types are
i ) P : normal reporting of progress w/ or w/o msg. P reporting must have
progress field. If it has a msg, it will be displayed in the status
bar of ripperX.
ii ) W : warning. If ripperX receives warning msg, it will display the msg
using dialog box but will not halt/abort current job. It must
contain non-null msg field.
iii ) E : error. If ripperX receives error msg, it will display the msg using
dialog box and halts the job and asks the user if he/she wants to
abort current job. It must contain non-null msg field.
The progress field tells ripperX how much the ripping/encoding has
progressed. It is a floating point number between 0 and 1.
The msg field is described above.
The format looks like
[type progress "msg"]'\n'
| |
\---------------> space
examples)
[P 0.12345 "-----> "]
[P 0.32321]
[W "Hey there."]
[E "Hello world!"]
Every reporting must be followed by a new-line character.
5. How often does a plugin have to print out the reporting?
Plugin should print out a reporting every 0.5 seconds(+- a little bit is just
fine) and also should print only one reporting at a time. Also plugins should
print nothing when the ripper/encoder is finished. Plugins can skip printing
report if it doesn't want to.
==============================================================================
ripperX plugin specification v0.1
TeJun, Huh
wineking@adam.kaist.ac.kr
ripperX plugin tester v0.1
This document describes what ripperX_plugin_tester is and how to use it.
1. ripperX_plugin_tester?
ripperX_plugin_tester is a program with which one can test if a plugin he/she
wrote works fine. It is essentially made from the code segments from ripperX
which handles execution of ripper/encoder/plugin and the parsing of output
from plugin. So if a plugin looks fine when tested with ripperX_plugin_tester,
it should work with ripperX.
2. How do I use it?
The syntax is
$ ripperX_plugin_tester "ripper/encoder command" "plugin command"
for example, to test cdparanoia plugin.
$ ripperX_plugin_tester "cdparanoia 4" "ripperX_plugin-cdparanoia 31987 4215
After executing ripperX_plugin_tester like above, if everything goes ok,
you'll see output like this
***Executing "cdparanoia 4"
with plugin "./ripperX_plugin-cdparanoia 31987 4215"
*** No report available from plugin. Ctrl-C to stop
*** PLUGIN_MSG_PARSE_ERR returned
*** No report available from plugin. Ctrl-C to stop
*** PLUGIN_MSG_PARSE_ERR returned
*** No report available from plugin. Ctrl-C to stop
*** PLUGIN_MSG_PARSE_ERR returned
*** No report available from plugin. Ctrl-C to stop
*** PLUGIN_MSG_PARSE_ERR returned
*** No report available from plugin. Ctrl-C to stop
*** PLUGIN_MSG_PARSE_ERR returned
*** Output read from plugin : [P 0.055991 "--> "]
Report type : progress, Progress : 0.055991,
Msg : -->
*** Output read from plugin : [P 0.092527 "-+-> "]
Report type : progress, Progress : 0.092527,
Msg : -+->
If something goes wrong, it will print out error msgs. The error msgs are
quite easy. I think you can figure what's wrong when an error msg appears.
==============================================================================
ripperX_plugin_tester v0.1
TeJun, Huh
wineking@adam.kaist.ac.kr
These things are on the wishlist for 2.x releases of ripperX. Hopefully I can get around to fix these, and get to a total rewrite with new bugs to fix...
1. Add the ability to submit CD data to the CDDB if the CD is not found. (being worked on)
2. check diskspace before attempting to rip/encode
3. Better support for OggVorbis
This diff is collapsed.
dnl Process this file with autoconf to produce a configure script.
AC_INIT(CHANGES)
dnl Checks for programs.
dnl Checks for libraries.
dnl Checks for header files.
dnl Checks for typedefs, structures, and compiler characteristics.
dnl Checks for library functions.
AC_CONFIG_SUBDIRS(src plugins)
AC_OUTPUT(Makefile)
#!/bin/sh
#
# install - install a program, script, or datafile
# This comes from X11R5 (mit/util/scripts/install.sh).
#
# Copyright 1991 by the Massachusetts Institute of Technology
#
# Permission to use, copy, modify, distribute, and sell this software and its
# documentation for any purpose is hereby granted without fee, provided that
# the above copyright notice appear in all copies and that both that
# copyright notice and this permission notice appear in supporting
# documentation, and that the name of M.I.T. not be used in advertising or
# publicity pertaining to distribution of the software without specific,
# written prior permission. M.I.T. makes no representations about the
# suitability of this software for any purpose. It is provided "as is"
# without express or implied warranty.
#
# Calling this script install-sh is preferred over install.sh, to prevent
# `make' implicit rules from creating a file called install from it
# when there is no Makefile.
#
# This script is compatible with the BSD install script, but was written
# from scratch. It can only install one file at a time, a restriction
# shared with many OS's install programs.
# set DOITPROG to echo to test this script
# Don't use :- since 4.3BSD and earlier shells don't like it.
doit="${DOITPROG-}"
# put in absolute paths if you don't have them in your path; or use env. vars.
mvprog="${MVPROG-mv}"
cpprog="${CPPROG-cp}"
chmodprog="${CHMODPROG-chmod}"
chownprog="${CHOWNPROG-chown}"
chgrpprog="${CHGRPPROG-chgrp}"
stripprog="${STRIPPROG-strip}"
rmprog="${RMPROG-rm}"
mkdirprog="${MKDIRPROG-mkdir}"
transformbasename=""
transform_arg=""
instcmd="$mvprog"
chmodcmd="$chmodprog 0755"
chowncmd=""
chgrpcmd=""
stripcmd=""
rmcmd="$rmprog -f"
mvcmd="$mvprog"
src=""
dst=""
dir_arg=""
while [ x"$1" != x ]; do
case $1 in
-c) instcmd="$cpprog"
shift
continue;;
-d) dir_arg=true
shift
continue;;
-m) chmodcmd="$chmodprog $2"
shift
shift
continue;;
-o) chowncmd="$chownprog $2"
shift
shift
continue;;
-g) chgrpcmd="$chgrpprog $2"
shift
shift
continue;;
-s) stripcmd="$stripprog"
shift
continue;;
-t=*) transformarg=`echo $1 | sed 's/-t=//'`
shift
continue;;
-b=*) transformbasename=`echo $1 | sed 's/-b=//'`
shift
continue;;
*) if [ x"$src" = x ]
then
src=$1
else
# this colon is to work around a 386BSD /bin/sh bug
:
dst=$1
fi
shift
continue;;
esac
done
if [ x"$src" = x ]
then
echo "install: no input file specified"
exit 1
else
true
fi
if [ x"$dir_arg" != x ]; then
dst=$src
src=""
if [ -d $dst ]; then
instcmd=:
else
instcmd=mkdir
fi
else
# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
# might cause directories to be created, which would be especially bad
# if $src (and thus $dsttmp) contains '*'.
if [ -f $src -o -d $src ]
then
true
else
echo "install: $src does not exist"
exit 1
fi
if [ x"$dst" = x ]
then
echo "install: no destination specified"
exit 1
else
true
fi
# If destination is a directory, append the input filename; if your system
# does not like double slashes in filenames, you may need to add some logic
if [ -d $dst ]
then
dst="$dst"/`basename $src`
else
true
fi
fi
## this sed command emulates the dirname command
dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
# Make sure that the destination directory exists.
# this part is taken from Noah Friedman's mkinstalldirs script
# Skip lots of stat calls in the usual case.
if [ ! -d "$dstdir" ]; then
defaultIFS='
'
IFS="${IFS-${defaultIFS}}"
oIFS="${IFS}"
# Some sh's can't handle IFS=/ for some reason.
IFS='%'
set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'`
IFS="${oIFS}"
pathcomp=''
while [ $# -ne 0 ] ; do
pathcomp="${pathcomp}${1}"
shift
if [ ! -d "${pathcomp}" ] ;
then
$mkdirprog "${pathcomp}"
else
true
fi
pathcomp="${pathcomp}/"
done
fi
if [ x"$dir_arg" != x ]
then
$doit $instcmd $dst &&
if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi &&
if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi &&
if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi &&
if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi
else
# If we're going to rename the final executable, determine the name now.
if [ x"$transformarg" = x ]
then
dstfile=`basename $dst`
else
dstfile=`basename $dst $transformbasename |
sed $transformarg`$transformbasename
fi
# don't allow the sed command to completely eliminate the filename
if [ x"$dstfile" = x ]
then
dstfile=`basename $dst`
else
true
fi
# Make a temp file name in the proper directory.
dsttmp=$dstdir/#inst.$$#
# Move or copy the file name to the temp name
$doit $instcmd $src $dsttmp &&
trap "rm -f ${dsttmp}" 0 &&
# and set any options; do chmod last to preserve setuid bits
# If any of these fail, we abort the whole thing. If we want to
# ignore errors from any of these, just make sure not to ignore
# errors from the above "$doit $instcmd $src $dsttmp" command.
if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi &&
if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi &&
if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi &&
if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi &&
# Now rename the file to the real destination.
$doit $rmcmd -f $dstdir/$dstfile &&
$doit $mvcmd $dsttmp $dstdir/$dstfile
fi &&
exit 0
#! /bin/sh
# mkinstalldirs --- make directory hierarchy
# Author: Noah Friedman <friedman@prep.ai.mit.edu>
# Created: 1993-05-16
# Public domain
# $Id: mkinstalldirs,v 1.1.1.1 2000/11/19 13:34:41 nph Exp $
errstatus=0
for file
do
set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
shift
pathcomp=
for d
do
pathcomp="$pathcomp$d"
case "$pathcomp" in
-* ) pathcomp=./$pathcomp ;;
esac
if test ! -d "$pathcomp"; then
echo "mkdir $pathcomp" 1>&2
mkdir "$pathcomp" || lasterr=$?
if test ! -d "$pathcomp"; then
errstatus=$lasterr
fi
fi
pathcomp="$pathcomp/"
done
done
exit $errstatus
# mkinstalldirs ends here
/Makefile.in/1.2/Wed Jul 4 21:05:09 2001//
/config.h/1.1.1.1/Sun Nov 19 13:34:41 2000//
/config.h.in/1.1.1.1/Sun Nov 19 13:34:41 2000//
/configure/1.1.1.1/Sun Nov 19 13:34:41 2000//
/configure.in/1.1.1.1/Sun Nov 19 13:34:41 2000//
/ripperX_plugin-8hz-mp3.c/1.1.1.1/Sun Nov 19 13:34:41 2000//
/ripperX_plugin-bladeenc.c/1.1.1.1/Sun Nov 19 13:34:41 2000//
/ripperX_plugin-cdparanoia.c/1.1.1.1/Sun Nov 19 13:34:41 2000//
/ripperX_plugin-encode.c/1.1.1.1/Sun Nov 19 13:34:41 2000//
/ripperX_plugin-gogo.c/1.1.1.2/Wed Jul 4 20:53:17 2001//
/ripperX_plugin-l3enc.c/1.1.1.1/Sun Nov 19 13:34:41 2000//
/ripperX_plugin-lame.c/1.2/Wed Jul 4 21:03:13 2001//
/ripperX_plugin-mp3enc.c/1.1.1.1/Sun Nov 19 13:34:41 2000//
/ripperX_plugin-oggenc.c/1.1.1.1/Wed Jul 4 20:53:20 2001//
/ripperX_plugin-xingmp3enc.c/1.1.1.1/Sun Nov 19 13:34:41 2000//
/ripperX_plugin_tester.c/1.1.1.1/Sun Nov 19 13:34:41 2000//
D
:pserver:joske@cvs.ripperx.sourceforge.net:/cvsroot/ripperx
SHELL = /bin/sh
VPATH = @srcdir@
top_srcdir = @top_srcdir@
srcdir = @srcdir@
prefix = @prefix@
exec_prefix = @exec_prefix@
bindir = @bindir@
infodir = @infodir@
libdir = @libdir@
mandir = @mandir@
CC = @CC@
CFLAGS = @CFLAGS@
LDFLAGS = @LDFLAGS@ @LIBS@
INSTALL = @INSTALL@