2.0.5 - 02/04/2008
 * BUGFIX
   * set_video_codec_opts(): corrected direct_pred option. Thanks to Grozdan's
   eyes again :-D

2.0.4 - 01/04/2008
 * BUGFIX
   * ripdvd: don't call print_cmd() from main menu, wait until all params are
   parsed
   * encode(): created a TURBO variable to use when in 2-pass mode
   * set_video_codec_opts(): added different TURBO values depending on the
   codec. Thanks to Grozdan's "fine eyes" ;-)
   * print_cmd(): added a call to the check_parameters() function and removed
   the local check for audio id
 * MODIFICATIONS:
   * set_video_codec_opts(): improved x264 codec options. Thanks to Grozdan
   for the advice
 * INFORMATIONS:
   * about MPlayer: I've upgraded from 1.0rc1 to 1.0rc2-4.2.3 not so long ago.
   Some options or filters have been changed between these releases and you
   might (or maybe I will ;p) experience side effects into ripdvd. If you do,
   please tell me so I can correct this as soon as possible
   * about RipDVD: I'm actually feeling that ripdvd has become too complex and
   too wide to evolve in a such limited language like bash (which is great
   anyway :-D). That's why I've started to rewrite it from scratch in python
   and I probably won't add anymore features into actual ripdvd. If everything
   goes ok with python, then I'll probably be able to upload the first release
   of pyRipDVD within a month (maybe two ...), including the few missing
   features users have requested. Of course, small improvements and bugfix
   will still be coded into ripdvd in order to make it better before python
   comes ! ;)

2.0.3 - 31/03/2008
 * BUGFIX
   * ripdvd: fixed wrong actions with option -r
   * update_config(): fixed possible bogus substitutions
   * extract_dvd_infos(): fixed possible bogus "identify" commands (it seems
   Mplayer 1.0rc2 doesn't stop when using an unexistant video driver, while
   1.0rc1 did)
 * MODIFICATIONS
   * set_video_codec_opts(): improved codec options. Many thanks to Grozdan
   Nikolov for the discussions about all this, even if we don't agree on
   everything (yet ;-p)
 * OTHER
   * Changelog: apologies to Aleksey for scratching his name ;)

2.0.2 - 26/03/2008
 * MODIFICAITONS
   * set_video_codec_opts(): xvid is no longer default video codec
 * BUGFIX
   * modify_conf(): corrected option 7, display of 7.2, added forgotten
   "break" commands into the "case" statements and a call to set_vid_opts()
   function. Option 8, audio and video menus were messed up, disable cartoon
   mode if x264 is selected. Option 12: cartoon mode is only available for
   xvid codec, cartoon and deinterlace options to display are chosen from
   previous value, call set_video_codec_opts() after modifications
   * set_conf(): don't ask for audio and video codecs if they are already set
   * ripdvd: suppressed call to test_deps() before calling set_conf()
   * install.sh: corrected for bash autocompletion support. Thanks to Martin
   Matusiak again ;)

2.0.1 - 19/03/2008
 * SECURITY FIX
   * ripdvd.Slackbuild: added a chown to root.root when creating the package
   to avoid security break when creating the package as normal user, or
   installing the package I created. Thanks to Aleksey for testing and
   reporting
 * BUGFIX
   * set_aud_opts(): removed abitrate option for flac audio codec. As flac
   automatically adapts its bitrate to the input. Thanks to Grozdan Nikolov
   for pointing out
 * MODIFICATIONS
   * general: AUD_FORMAT variable has been renamed to ACODEC
   * set_video_codec_opts(): added some options to the x264 video codec,
   essentially b-frames support, and chroma motion estimation support. Thanks
   to Grozdan Nikolov. Removed the fall-back to xvid by default (see
   set_conf() modifications below)
   * set_aud_opts(): removed the fall-back to mp3 by default (see set_conf()
   modifications below)
   * set_conf(): added ACODEC and VCODEC variables to the configuration file.
   The user will have to choose default audio and video codecs using the new
   select_*_codec() functions
   * modify_conf(): replaced audio and video codec menus by a call to the new
   select_*_codec() functions. Replaced the aspect modification call to the
   print_aspect_list() function by a "select" menu
   * set_audio_id(): if no audio id is found on the track, use 128 as default
   id. Removed the call to the error() function
   * set_sub_id(): if no subtitle id is found on the track, don't use
   subtitles. Removed the call to the error() function
   * ripdvd: check for dependencies is now run each time ripdvd is launched
 * NEW FUNCTIONS
   * select_audio_codec(): menu driven audio codec selection
   * select_video_codec(): menu driven video codec selection
 * CLEAN UP
   * warning_obsolote(): removed
   * print_aspect_list(): removed
   * language files: removed all duplicates


2.0.0 - 13/03/2008
 * SHELL INTEGRATION
   * bash autocompletion: the new file opt/ripdvd_completion contains the bash
   script that can work with bash autocompletion for ripdvd. When the user
   types "ripdvd -" in a console and then hit the TAB key, he'll get a full
   list of available options. If he proceeds by adding some letters, let's say
   "ripdvd --d" and then hit TAB key again, he'll get only a list of ripdvd's
   options beginning with a "d". This only works if bash-autocompletion is
   installed. The script will be copied to /etc/bash_completion.d/ripdvd which
   is the default directory, there is no harm in copying the file, even if the
   bash-completion package is not installed on your distribution
   * read autocompletion: autocompletion support has been added each
   time a directory is requested (destination directory or dump directory) so
   the users are now able to use the TAB key to autocomplete dirnames. This is
   *not* the same thing as bash autocompletion (see above). This
   autocompletion is integrated into the bash "read" function, meanwhile the
   "other" needs a bench of scripts and functions
 * MODIFICATIONS
   * install.sh, ripdvd.Slackbuild: added support for installation of the
   bash_completion script file
   * ripdvd: renamed command line options (--aud -> --alang, --aud-btr ->
   --abtr, --aud-format -> --acodec, --aud-id -> --aid, --sub -> --slang,
   --sub-id -> --sid, --sub-out-file -> --sfile, --btr -> --vbtr, --read-infos
   -> --re-read, --skip-first-minute -> --skip-one). This makes ripdvd more
   like mencoder and mplayer. Removed --user-menu option (was obsolete since
   1.8.0). Added --vcodec command line option which allows to choose between
   xvid and x264 video codec for encoding. Removed version test for deleting
   old config file .ripdvdrc. When --help, --version or --test is called, do
   not end with end_app().
   * set_video_codec_opts(): x264 is now functional through the --vcodec
   command line option. Careful with laptops for this codec, as it needs more
   CPU power to run, it will cause laptops to overheat. I suggest to fix
   the CPU to the lower frequency, you'll maybe loose a little time but you'll
   preserve your laptop's health. Desktop users don't have to worry about this
   as their CPU might not use cpufreq and is surely much more cooled than on
   laptops. Multi-core and multi-CPUs users will surely be happy to use x264
   because it really uses the multi threading, not like xvid unfortunately
   * set_aud_opts(): added AAC and FLAC audio codecs support. As FLAC is a
   lossless audio codec, the final filesize will be more important as it was
   requested (nearly 35% bigger). There is actually no way to compute the
   video bitrate according to the filesize when using FLAC, but the users who
   really want to use it might want so ask for a size 35% lower (more or less)
   * select_crop_mode(): improved the case statement
   * modify_conf(): completely reorganized the options, some have been merged,
   others have been moved. I tried to make some logic into the first menu and
   added submenus (2 -> 5, 3 -> 6, 4 -> 7, 5 -> 11, 6 -> 9, 7 -> 4, 8 -> 2, 9
   -> 3, 10 merged with new 6, 11 -> 8, 12 -> 10, 13 -> 12, 14 -> 13, 15
   merged with new 9, 16 -> 14, 17 -> 15, 18 merged with new 12). Modified
   option 12 to "Codec changes" (audio and video), also added support for new
   AAC and FLAC audio codecs. Modified option 7 to allow the user to change
   the filesize or the video bitrate. Modified option 2 to fall back to
   predifined output directory by default. Each option must start with an
   "echo" statement to make the output more readable. Replaced all "echo -n
   bla; read VAL" by "read -p bla VAL". Modified option 8 by adding video
   codec modification support (xvid or x264)
 * BUGFIX
   * calc_video_bitrate(): don't try to compute bitrate if it was given as
   command line option
 * INFORMATIONS
   * locales, man: updated
   * TODO: removed x264 and AAC requests
 * NOTE: this is a major release. I think the new improvements and supports
 are enough to say that ripdvd has entered a new era ;). Now on, I'll try to
 improve the user interface, making it more flexible and easier to use

1.14.9 - 05/03/2008 (NOT RELEASED)
 * MODIFICATIONS
   * ripdvd: added a call to set_vid_opts() before preview()
   * encode(): moved subtitles options to set_sub_opts(). Cleaned up the call
   to set_vide_opts(). Also corrected a bug into the PASS_OPTS variable name
   * preview(): cleaned up hard coded subtitles options and call
   to set_vid_opts()
   * print_cmd(): cleaned up hard coded subtitles options
   * set_sub_opts(): added subtitles options from encode(). Also added
   -spualign and -spugauss options with hard coded default values
   * set_aud_opts(): changed the if/then/else code to a case/esac code. This
   should help for further output audio supports
   * set_video_codec_opts(): added the :autoaspect option to the xvid options.
   Also added x264 codec support. Not usable yet, but coming soon :)
   * use_deinterlace(), use_telecine(): changed the INTERLACING variable to
   INTERLAC and also changed the value from "interlaced" to "interlac" to fit
   the differences between x264 and xvid codecs
   * print_header(): added informations about video and audio codecs. Only
   display cartoon/movie mode with xvid video codec. Also added some colors
   * print_bpp(): added some colors
   * print_movie_res(): added some colors
   * automatic(): moved the call to the set_vid_opts() function from preview()
 * BUGFIX
   * print_cmd(): removed the call to the set_codecenc_opts() function

1.14.8 - 04/03/2008
 * MODIFICATIONS
   * ripdvd: removed ERROR_LOG variable
   * core(): removed code for logging errors output from mencoder
   * end_app(): ask a question before deleting ISO dump
   * print_dvd_infos(): completely modified the output of the function. It now
   displays a nice array, much easier to read. Audio and subtitle languages
   are also cleaned from doubloons to avoid display overflow
   * extract_dvd_infos(): this function now only prints the track list being
   processed, rather than a long list of lines showing two "[OK]" words. There
   is no need here for displaying too much things
 * BUGFIX
   * use_telecine(): previous bugfix not totally corrected
 * INFORMATIONS
   * locales: updates and clean ups
   * man page: updates and clean ups

1.14.7 - 16/02/2008
 * NEW FUNCTIONS
   * use_deinterlace(): moved the deinterlace code from modify_conf() to this
   new function
   * set_video_codec_opts(): renamed set_xvidenc_opts() in prevision of the
   future use of x264 codec. Actually, only xvid is available, but x264 will
   come soon ;)
 * FUNCTIONS CHANGES
   * modify_conf(): added a call to the use_deinterlace() function in option
   18
   * preview(), encode(), split_output(), print_cmd(): added nice support 
   * automatic(): eject dvd when ISO dump is used
   * set_vid_opts(): renamed the XVIDENC_OPT variable to CODECENC_OPT, in
   prevision of the future use of x264 codec
 * NEW COMMAND LINE OPTION
   * --deinterlace: activate the deinterlace filter from command line
   * --nice NICE: nice value for mencoder command. The highest value, the less
   priority mencoder will get. NICE is an integer value that starts at -20 en
   ends at 19, but negative values are only available for superuser. Default
   value is 0
 * BUG FIX
   * use_deinterlace(): fall back to 23.976 for input FPS only if telecine was
   activated before
   * automatic(): mark dvd device as not ejectable when using ISO dump
   * check_dvd_dev(): corrected the eject test
   * use_telecine(): wrong order for the display of the question
   * end_app(): corrected the dump dirname
 * INFORMATIONS
   * ripdvd.1 (man page): updated for --deinterlace and --nice option
   * ripdvd.Slackbuild: fixed dependencies into slack-desc display
   * TODO: cleaned "nice" todo line

1.14.6 - 14/02/2008
- modified the automatic() function. Replaced all complicated "if" tests by
"case" tests. Also added a question to delete the ISO file if not using it
after dumping the dvd to the hard drive
- added a new option in the modify_conf() function. Now on, deinterlace is
available through option 18. The same option allows to deactivate the
deinterlace filter. Deinterlace and Telecine can't be used altogether, because
telecine implies FPS modification, so confirmation is requested to use
deinterlace and reset telecine options
- modified the set_vf_opts() function by adding deinterlace filter into the
filter chain
- updated the language files
- updated the TODO and AUTHOR files
- updated the man page

1.14.5 - 13/02/2008
- updated the Slackbuild by adding pv as optional dependency. Thanks to Martin
Matusiak for pointing out this :)
- corrected the calc_bpp() function that failed because a variable used here
was renamed before
- modified the automatic() function to ask for dumping dvd to hard drive only
if the input device is a block device or a directory. A block device means a
"real" dvd reader and a directory means a mount point that may not be mounted
from an ISO file
- updated the TODO file (packager request ;p)

1.14.4 - 12/02/2008
- modified the automatic() and end_app() functions. Added a new option in the
automatic mode to dump the dvd to the hard drive and use the ISO from this
dump rather than the dvd disc. Be aware that the dump may fail and that the
ISO may not be "good". That's why a "safety" question is finally asked after
dumping is done. Be also aware that the ISO file will need at least 4.9GB of
free space in addition of the rip's free space. And keep in mind too that it
can cost at most 14.7GB !! So ... you've been warned ;)
- modified the set_conf() and update_conf() functions. The program pv is now
marked as a dependency (not required). Pv is used to dump the dvd to the hard
drive and print a nice display on the console. If pv is not present, then we
fall back to our old friend dd which unfortunately displays nothing ;(
- updated the language files
- updated the TODO file

1.14.3 - 27/01/2008
- cleaned up some awk/sed/grep code here and there to avoid useless use of
redondant commands. This should improve the whole process of informations
printing on console, and help myself for code maintenance ;)
- added the -nocache option to all mplayer commands, so that there is no need
to wait for the cache to be fulled up to begin to play. This should improve
all the parts that need mplayer
- added the select_crop_mode() function. This function ask the user for the
mode of cropping he wants: automatic or manual
- modified the 13th option of the modify_conf() function to allow the user to
set manual crop values
- updated the language files
- updated the TODO file

1.14.2 - 21/01/2008
- added the --scan (shortened -s) command line option. This allows the user to
read all useful informations about the dvd: tracks, audio and subtitles. This
can be used to check what's on the dvd without having to run it
- added the print_dvd_infos() function that prints the informations of the
dvd, according to the new --scan option
- modified the fps_autodetect() function. Added the 24fps (FILM) frame rate
support and some clean ups. Also added support for the -fps option
- added the use_telecine() function that asks the user if he wants Pullup or
Telecine filters to be used with NTSC and Progressive NTSC
- modified the set_vf_opts() function. Added softskip and harddup filters to
make the new telecine filter work. Also added the pullup and telecine filters
support. Many thanks to Grozdan Nikolov for his help on this part :)
- updated the language files
- updated the man page
- updated the TODO file

1.14.1 - 18/12/2007
- removed avimerge and avisplit binary files from source package
- renamed the language files from <lang>/<lang>.lng to <lang>/ripdvd.lng so
that, as they install into the locale directory, there can't be any hesitation
about what they are
- modified the install.sh script. Added the --localedir and --libdir options,
removed the installation of avimerge and avisplit. Thanks to Martin Matusiak,
and hope he'll be able to create a cleaner ebuild with this ;)
- updated the man page's date (forgot to do it in 1.14.0)
- modified the ripdvd.Slackbuild script. Removed avimerge and avisplit
installation and moved the language files from /usr/share/ripdvd/locale to
/usr/share/locale, to be fully compatible with the treepath 
- changed the default value of LOCALE_DIR from /usr/share/ripdvd/locale to
/usr/share/locale into the ripdvd script
- updated the TODO file
- updated the language files (forgot to tell this in 1.14.0)

1.14.0 - 14/12/2007
- merged testing and stable branches, as there have been no complaints about
the new bivx option and I've been testing it myself. If you want a complete
explanation about this new option, take a look at the 1.13.0 testing Changelog
- corrected all tail +N commands by tail -n +N commands. Thanks to Martin
Matusiak for the hint
- added mp3 dump and single audio movie deletion after merging of second audio
track into the bivx movie, at the end of the merge_second_audio() function
- cleaned up some ugly code for second audio usage
- added the --second-audio command line option to make bivx also work from
command line and not only interactive mode
- added the get_alang_from_aid() function that retreives the string lang
(e.g.: en, fr etc ...) depending on the real audio id
- modified the dump_audio_track() function to work when encoding in chapter
mode and to not dump again if ac3 or mp3 dump file is already present
- modified the merge_second_audio() function. The languages of the audio
tracks are now added to the movie title, like this: title_aud[l1-l2].avi
- corrected the aspect_autodetect() function to work when the --aspect command
line option is used
- updated the TODO file
- updated the man page

1.12.4 - 30/10/2007
- modified the parse_chapter_opt() function. If chapter mode is selected, the
output title of the movie is now suffixed by "_[X-Y]" where X is the starting
chapter number and Y the ending chapter number. This can be useful when
encoding parts of the same movie
- corrected the modify_conf() function that made a call to a non-existant
function when selecting chapter mode. This caused the chapter mode to bug ...
sorry about that ...
- updated the TODO file

1.12.3 - 23/10/2007
- corrected a bug in the ripdvd script that didn't compute the audio track
when the user provided the audio language using --aud. Sorry about that ...
- updated the language files

1.12.2 - 21/10/2007
- updated the ripdvd.desktop file to match the new freedesktop.org
specifications. Thanks to Franceso for the hint :)
- added the --skip command line option. This option takes a int parameter that
is the number of seconds to skip at the beginning of the movie before
encoding. For example, --skip 90 will skip 90 seconds ...
- modified the --skip-first-minute option to work most alike the --skip option
with its parameter equal to 65
- modified the modify_conf(), encode() and print_cmd() functions to match the
new --skip option and the modified --skip-first-minute option
- updated the language files
- updated the TODO file
- updated the man page

1.12.1 - 02/10/2007
- corrected a bug in the print_audio_ids() function that didn't print audio
ids but subtitle ids. Sorry about that ...
- corrected the set_audio_id() and set_sub_id() functions that didn't worked
very great
- updated the print_audio_ids() and print_audio_list() functions to print the
input audio format (ac3, dts, mpeg1, ogm, lpcm, rm). Some audio formats are
really rare on dvds, so you'll probably only see ac3, dts and mpeg1
- added the print_audio_format() function that prints the input audio format
for given track and id
- added the calc_audio_id_from_format() function that computes the real audio
stream id depending on which input audio format is used
- modified and corrected all the functions that needed to use the new
calc_audio_id_from_format() function (list is too long to be printed here ;p)
- modified the print_header() function to now print the *real* audio id for
compatibility with mencoder's command line, in addition of the audio id from
the list
- corrected a bug in the calc_bpp() function that didn't used the width value
provided by the user to compute BPP and real resolution (the width was used in
the encoding part, this bug only concerns informations printed)
- corrected the ripdvd script. When using command line --btr option, a call to
the calc_video_bitrate() was done and this shouldn't happen. Also corrected a
handwriting bug when calling the calc_time_chap() function
- corrected the guess_crop_values() function to try the hard way when crop
values aren't right, negative for example ... This part of code is a bit
tricky, hope it'll do what I want :)
- corrected the seconds_to_time() function to really print time in the
HH:MM:SS format and not H:M:S (when H, M or S < 10)
- modified the preview() function to preview the selected chapter when
encoding in chapter mode. Also added a message to print the selected chapter
that is going to be encoded
- updated the TODO file (user request: include bivx)

1.12.0 - 25/09/2007
- modified ripdvd.Slackbuild file to make the Slackware package go into /usr
rather than /usr/local
- added the --chapter command line option. This option takes one parameter
which can be a number (the chapter's number to encode) or a string like this:
2-6 (encode from chapter 2 to chapter 6), or like this: 2-end (from chapter 2
to end of movie)
- added the parse_chapter_opt() function which is called from the --chapter
command line option, and parses the given parameter
- added the set_chapter_opts() function which sets up the chapter encoding
options
- added the print_chap_list() function that prints the chapter list for the
selected track
- added a call to the unlock_dvd() function at the beginning of the ripdvd
script and at the beginning of the user_menu() function
- renamed the user_menu() function to automatic()
- corrected all the calls to the user_menu() function to calls to the
automatic() function
- added the get_nb_of_tracks() function that computes the number of dvd tracks
present on the dvd media
- modified the modify_conf() function to call the print_chap_list() with the
track number as parameter
- added the get_number_of_chaps() function that computes the number of
chapters for a given track (as parameter)
- added the time_to_seconds() function that computes a time length into
seconds from a formatted time like HH:MM:SS
- added the seconds_to_time() function that computes a time formatted like
HH:MM:SS from a time length in seconds
- added the extract_dvd_infos() function that creates a unique "config"
directory into the $HOME/.ripdvd directory. This directory will contain all
informations about the dvd tracks (audio, subtitles, chapters, video
configuration etc ...). These informations will then be used by all the other
functions that formerly used the lsdvd and mplayer -identify commands. These
informations are created once and for all, because a dvd has got a single and
unique disc ID, when the users will try to re-encode the same dvd, there will
be no need to retrieve the informations again (except if the user has deleted
the directory containing the informations ...)
- modified all the function that used the lsdvd or mplayer -identify commands
to cat/grep/awk the configuration files created by the extract_dvd_infos()
function
- disabled alias expansion to avoid problems
- added a small command at the beginning of the ripdvd script that blacken the
screen's background and another small command at the very end of the end_app()
function that removes this blackening. This allows ripdvd to be fully run with
a black background, which is better for your eyes with all colors that are
used ;)
- added a call to the clear function at the beginning of the ripdvd script,
after the blackening of the screen, and after the "de blackening" in the
end_app() function
- added a display at the beginning of the screen, like this: "~= Ripdvd
vX.XX.X =~", just to display something while the dvd drive starts to spin up
- added the --read-info command line option. This option can be shortened to
-r and will delete all "old" dvd informations previously read by ripdvd and
rewrite them from scratch, then exit
- modified the extract_dvd_infos() to match the --read-info option
- added the calc_total_time_chap() function that computes the movie's length
when encoding in chapter mode
- modified the ripdvd script and the 16th modify_conf() option to use the
result of calc_total_time_chap() when encoding in chapter mode
- modified the core() and print_cmd() functions to start encoding at 1'05"
when "skip first minute" is used, rather than 1'00". This is better because
the -ss option of mencoder is not very precise and intends to start 5" before
the time given
- corrected the print_cmd() function to work properly
- updated/corrected the language files
- updated/corrected the man page
- updated the TODO file

1.10.2 - 12/09/2007
- added the print_aspect_list() function that prints a list of available video
aspects to choose. This is more user friendly in case the user wants to change
it
- modified the modify_conf() function by adding a call to the
print_aspect_list() in option 6. Also rewrote how this option works to fit
this new function
- modified the encode() and print_cmd() functions. As it has become too
complicated to manage file splitting within the main encoding function, file
splitting has been moved to a new function. File splitting now runs after
encoding. This requires twice the size of the output movie in the destination
directory but will give better results. This also fixes a "broken-dvd" issue
- added the split_output() function that splits the output movie file into
pieces
- corrected the encode() and print_cmd() function that failed using 2pass
option, due to the new set_xvidenc_opts() function
- corrected the calc_bpp() function to work properly when no cropped values
are provided
- updated/corrected the language files
- updated/corrected the man page

1.10.1 - 19/08/2007
- corrected the set_vf_opts() function by removing the dering/deblock filters
and adding denoise filter instead. Dering and deblock are useless when
encoding from a DVD, while denoise can be usefull by not encoding movie's
noise and then saving space. Thanks to Grozdan for the advice !
- modified the guess_crop_values() function. The "hardcore" way of detecting
crop values is now run with a 3 seconds long video, rather than 10 which was
really too long. Also moved the call to the original_size_autodetect()
function from this place to the ripdvd script, to avoid failure when using
manual crop values
- modified the user_menu() function by adding a call to the
original_size_autodetect() function
- corrected the print_crop_values() function. If crop values are provided using
the --crop W:H:CW:CH command line option, then the CROPPED_WIDTH and
CROPPED_HEIGHT values were empty (but the crop values are ok, though). Now on,
a test is first run and if one is empty, these two variables are set using the
command line values
- updated the language files

1.10.0 - 15/08/2007
- corrected the print_crop_values() function to now print the movie resolution
according to the video aspect (4/3, 16/9 etc ...) and the unscaled movie
resolution (useful for manual crop values)
- modified the guess_crop_values() function by adding 2 variables,
CROPPED_WIDTH and CROPPED_HEIGHT that contain the unscaled cropped values for
width and height
- modified the calc_bpp() function to compute bpp with the real width and
height. These "real" values are computed using orignal width and height,
cropped width and height, original aspect ratio and output aspect ratio. This
*is* the real bpp value, previous values printed in release 1.8.1 was not the
good one !
- renamed the set_video_size() function to original_size_autodetect(). Also
prefixed the variables WIDTH and HEIGHT by ORIGINAL to be more explicit
- modified the print_header() function to print the bpp value. This was in the
first time in the calc_bpp() function and shouldn't have been there.
- modified the print_bpp() function to remove the score that was not really a
good thing
- added the calc_scaling_val() function that computes the scaling values
according to a starting width (cropped or original), the height related to
this width and the real aspect ratio. The starting width is first corrected to
be dividable by 16. Then a for loop is run from this starting width to 560
decreasing the step by 16 and computing the bpp. A select menu is printed with
all these values so that the user can choose the best scale values he wants
- modified the modify_conf() function to provide a new option (n15) that
allows the user to choose new scaling values
- modified the calc_bpp() function to use the scaling values if they exist
- modified the ripdvd script by renaming the WIDTH variable from --width
command line option to USER_WIDTH
- modified the set_vf_opts() to use the scaled width chosen from
calc_scaling_val(). Also added a test to see whether the user has set up a
personnal width with --width option directly from the command line. This value
is overrided by the automatic scaling stuff if the user has chosen one of the
scaling values from calc_scaling_val()
- added the print_movie_res() function that prints the real movie's scale and
the real aspect ratio (which will be printed as X,YYY/1)
- modified the print_header() function to call the print_movie_res() function
after print_bpp()
- modified the user_menu() function by removing the autocrop question
- modified the preview() function by adding an option to the menu that allows
the user to rerun preview one more time. This can be useful in case of movies
with subtitles and no dialogs in the last preview, just to be sure that the
subtitle id is the right one ... well I find this quicker than using option
"2" then option "p" in the "modify options" menu ;)
- updated the language files
- updated the man page

1.8.1 - 09/08/2007
- added the calc_bpp() function that computes the Bit Per Pixel value
according to the video bitrate, the fps, the width and the height of the
output video
- added the print_bpp() function that prints the Bit Per Pixel value and a
score with a smiley that the user will analyse according to the value of the
BPP. I assume here that bpp does not depend on the video type (black&white,
"dark colors" movie, action movie with a lot of lights etc ...). So be very
careful with those smileys !
- modified the set_vid_opts() function by adding a call to the calc_bpp
- modified the fps_autodetect() function. It seems that using the -ofps option
is not as easy as I thought. While with PAL/SECAM video, it works fine, NTSC
and Progressive NTSC can give some trouble when they're malformed. So I added
a warning and a simple question. In former releases, I'll start to add
Pulldown Reversal/Inverse Telecine and Hard Telecine/3:2 Pulldown, but I need
to first understand what it's really doing, when it's needed and how to use it
;). Thanks to Grozdan for his help on this
- corrected the check_dvd_dev() function to use the return code of eject from
$? rather than directly from the eject command
- corrected the set_vf_opts() function that didn't get the right scale
informations with WIDTH and HEIGHT, WIDTH is still used, but for HEIGHT, I
fall back on mencoder's autodetection cause it's much better.
Something else with that: Mencoder computes the height using the fixed width
and the movie aspect (16/9 most of the time) so movie's size is already set up
to the right scale, but, if the scale isn't right, Mplayer fixes the height
to compute the width when you watch the movie !! (and this is weird cause
you'll watch a movie with a width higher than you wanted it)
- added the aspect_autodetect() function that perform video aspect
autodetection (this function is not actually used by ripdvd, but it might be
useful in a not so far future ;D)
- updated the language files
- NOTE: the --aspect option is not working anymore due to the set_video_size()
and set_vf_opts(). In think the next release will correct all this, all I need
is to find a good way to compute crop values onto scaled WIDTH and HEIGHT. In
fact, autocrop seems to always be performed onto unscaled WIDTH and HEIGHT.
- NOTE: I'm also thinking in removing the question about autocrop in the
--automatic mode. If somebody complains about this, please, tell me before I
do !
- NOTE: we're coming slowly to a great improvement in ripdvd that will include
autodetection of the best size (width/height) for the output movie, using BPP.

1.8.0 - 05/08/2007
- merged testing code from version 1.7.2, including "skip 1st minute" code,
options and all stuff recording to this
- --user-menu option has been made "obsolete". While it is still ok to use it,
I find this name a bit awkward. This option is now known as --automatic
- modified the find_dvd_reader() function so that if no dvd device is found, a
question asks the user to enter it by himself. This seems not so much, but in
fact, it greatly impacts the automatic mode (remember this is the new "user
menu" mode ;p). This allows the user to use loopback device in automatic mode.
Mount the ISO file onto a loopback device (i.e.: mount -o loop dvd.iso
/mnt/loop), remove any dvd from your readers and then answer this new question
with the path of the mount point "/mnt/loop". Here you are ! :)
- added a test in the user_interrupt() function, so that no file is asked for
deletion if the movie name is empty
- added the fps_autodetect() function that tries to autodetect input FPS and
to configure the output FPS with this value
- added the set_vf_opt() and set_vid_opt() functions that set the video
filters and final video options
- modified the preview(), encode() and print_cmd() function to use these new
functions
- improved the guess_crop_values() function, so that if the first attempt
fails, ripdvd tries a harder way to guess the cropping values. At the very
end, if no values are found, ripdvd assumes them as 0 (so that there is no
failure)
- added the set_video_size() function that guesses the video width and height
from the dvd's informations
- modified the set_conf() and clean_conf() functions so that they don't need
the WIDTH variable anymore (according to the set_video_size() function)
- modified the set_vf_opts() function to scale using the WIDTH and HEIGHT
variables from the set_video_size() or guess_crop_values() functions
- corrected the print_track_list() function that didn't use the DVD_DEV
variable to retrieve the track list and used the default device from lsdvd.
Sorry about that !
- updated the xripdvd script and the ripdvd.Desktop file
- updated the language files and the man page
- NOTE: I'm actually working on a hard code about bpp (Bit Per Pixel) and how
to use it in "ripdvd's way". As you might know, the higher the bpp, the better
the quality of the video. In order to increase the bpp, there are 2 things
that can be done: increase the bitrate (and obtain a bigger file), or decrease
the video size (width/height). The point is that a bpp is not really a fixed
thing, it greatly depends on the video type (e.g.: black&white movie will give
a pretty good quality with bpp=0.1 while an "action" movie might need bpp>0.2)

1.6.3 - 27/07/2007
- added the check_dvd_dev() function that checks if the dvd device given with
--dvd-dev option is ejectable. If not so, the function displays a message and
auto-activates the --no-eject option
- added a call to the check_dvd_dev() after the DVD_DEV variable is set
- modified the set_sub_opts() function to allow users to cancel the previous
subtitles selection. Now on, users can select the option n3 to change the
subtitles id and leave it blank (or type 0), rather than a number.
- added autocrop into the user_menu() function, so that autocrop is performed
automatically if the user wants it
- updated the language files

1.6.2 - 19/06/2007
- corrected the create_dest_dir() function, so the variable is put between
quotes. Big thanks to Arghbis for all his bug reports !
- updated the language files, more precisely the translations of the --help
option output, which was not as clear as it should be about --aud/--aud-id,
--sub/--sub-id and --aud-format. Thanks to Arghbis for the advice
- corrected the --dest-dir option to work ... forgot the ";" after the call to
the create_dest_dir() function ... too bad :(
- updated the man page (same thing as above)
- NOTE: A great tutorial has been created by Fafane84 and is now available on
ripdvd's official wiki. It will explain you how to use ripdvd, step by step,
with small videos. This tutorial is actually French only, but I don't doubt
that even "frenchophobiacs" will appreciate this beautiful work :)
- NOTE: As some might have seen, I'm actually working on an official website
(hosted by googlepages). This is under heavy but slow progress (as has been
ripdvd's progress this week ... busy busy busy :/). I'll try to make it really
interactive with sourceforge news, wiki and download so I'll not have to
update the website every day. If anyone wants to give me a hand with this,
I'll really be greatful :)
- NOTE: The whole ripdvd download sections on sourceforge.net has been
modified. As we only discussed this point at ripdvd's official topic on
hardware.fr's forum, I think this needs some explanations. Due to the number
of packages available (and I'll never be greatfull enough to Franceso and
Grozdan who really do amazing work with the .deb and .rpm packages), and the
way ripdvd now works (stable/testing), the download section seemed a bit
messed up (cause I created it as ripdvd was only available as "stable"). Now
on, you'll find sections like this:
	- source stable
		- 1.6.2
			- ripdvd-1.6.2.tar.gz
	- source testing
		- 1.7.1
			- ripdvd-1.7.1.tar.gz
	- packages stable
		- 1.6.2
			- .tgz and Slackbuild for Slackware
			- .rpm for Fedora
			- .rpm for SuSE
			- .deb and other stuff for Debian/Ubuntu
	- packages testing
		- 1.7.1
			- .tgz and Slackbuild for Slackware
			- .rpm for Fedora
			- .rpm for SuSE
			- .deb and other stuff for Debian/Ubuntu

For binary packages, each packager will have to "edit/modify" the actual
release, and never "create" a new release for his packages (as this will hide
the actual files available). As I always upload Slackware stuff as I upload a
new source release, the "binary" visible will always be the right one.
If (who knows ?) a package has to be released again for a specified
distribution, the packager will have to "edit/modify" and (of course) post a
"news" to tell the whole world of the new files. If he wants, the packager
might delete the "old/bad" package, or not ...
Hope you'll like this and don't give up using ripdvd ;^)

1.6.1 - 11/06/2007
- corrected the dvd_dev_find() function that didn't work on computers with
more than one cdrom device. Sorry for the mistake, hope this works fine now.
Thanks fo Fafane84 for the bug report. Anyway, if the first part of this
function fails with /proc/sys/dev/cdrom/info parsing due to another mistake of
mine (hope not !), the parsing of the /dev directory is performed, so ripdvd
can be used
- updated the source package, now on the ripdvd.Slackbuild file is placed into
the opt/ directory rather than share/. Thanks to Mushroom for pointing this
out (I promise I'll try to find a minute to take a look at your frog one day
;p)
- NOTE: I've also got bad news for those who asked for ogg/vorbis audio output.
Mencoder actually does *not* provides ogg/vorbis encoding for audio tracks. Of
course, mplayer can read videos with ogg/vorbis audio, but that's all :/.
Adding ogg/vorbis audio output is actually impossible in the way I designed
ripdvd, cause it will force me to extract audio in an external file, then use
oggenc to encode it into ogg/vorbis and the remux it into the movie. I can do
it, but the spirit of ripdvd will be lost :(. If you really *need* ogg/vorbis
audio output, I suggest you take a look at the ogmrip software (Free and
OpenSource dvd->ogm encoder)

1.6.0 - 31/05/2007
- moved the 2-passes option from the user_menu() function to the set_conf()
function. Now on, 2-passes question is delt into the config file once and for
all, but this option can still be changed into the modify_conf() function
- updated the language files
- NOTE: this release is assumed to be stable ... it *should* be stable ;)

1.5.6 - 30/05/2007
- rewrote the user_interrupt() function ... I don't like the way it's coded
now, but it works
- rewrote the print_movie_size() function, which was buggy and awful
- corrected a bug in the set_aud_opts() function. Thanks to Grozdan for the
bug report
- modified the "beta" part of the dvd_dev_find() function. The first code was
a bit ugly and didn't work for computers with more than one CDROM device.
Thanks to Fafane84 for the bug report
- corrected some small bugs here and there
- modified the install.sh script that now allows the use of the "DESTDIR="
parameter. It can be useful for testers or packagers. Thanks to Mushroom (hope
you're happy mate ;p)
- updated the language files

1.5.5 - 24/05/2007
- NOTE: I've got an answer from Grozdan (RPM Packager of ripdvd) about cartoon
mode, here is his mail: "Cartoon mode doesn't have any impact on final file
size of the encode. Cartoon mode means that the encoder (Xvid in this case)
will select a different motion estimation which is better suited to find the
best motion vector in a flat color mode (as cartoons use flat colors as
opposed of real movies where the different colors blend in each others)."
- modified the dvd_dev_find() function to check for the
/proc/sys/dev/cdrom/info file which contains useful informations about DVD
readers devices
- modified the install.sh and ripdvd.Slackbuild scripts to launch the sed
command for PREFIX on the installed ripdvd script, rather than on the source
file (big thanks to fafane84 who detected the bug and to Franceso who found
what I did wrong)
- slightly modified the find_dvd_reader() function ... forgot to add \n at the
end of "echolor" commands
- modified the ripdvd script. As I read my code about version checking, I
thougth that I was drunk when I wrote this off. Well, after this was settled,
I rewrote it and it looks better now ;)
- NOTE: multithread utility is now a closed question, threads are used by XviD
to compute motion estimation, but mencoder seems to stay a monocore program.
As multithread is useful for XviD, I'll consider this part as stable
- NOTE: hardware autodetection from the /dev/ parsing seems to work fine, so I
also can consider this as stable, need to see how the /proc part looks like on
other systems than Slackware
- NOTE: there are some small annoying things that need to be fixed: the file
deletion code that I don't like, 2-passes question that, I think, should go
into the config file, UTF-8 support (I really don't know how I handle this :/)
etc ... When all this is done (maybe I'll forgot the UTF issue), ripdvd will
go out as 1.6.0 stable release :)
- NOTE: I'm thinking of creating a testing/unstable branch for ripdvd.
Versions will live the same way as the linux kernel does:
<MAJOR>.<RELEASE>.<MINOR>
MAJOR will stand for the major version ... 1 is good now, and will be for a
long time I think
RELEASE will stand for stable or unstable, odd number will mean unstable while
even number will mean stable. This is good, cause the actual number is 5 and
ripdvd is unstable, and the next will be 6 and (I hope ^_^), stable
MINOR will stand for the release number of the stable/unstable release,
actually the sixth unstable release (yep, 5=6th cause 0=first !)

1.5.4 - 22/05/2007
- modified the unlock_dvd() function so the call to find_dvd_reader() is only
performed if the dvd device is empty, else use the existing value that says we
already have found the device ...
- finding more than one available dvd device in the find_dvd_reader() is no
longer critical. We just display a warning and continue with the last good
device found. As this function is still beta and fafane84 sent me bug reports
about things that shouldn't happen, I found this better for everybody ;)
- modified the dvd_dev_find() function. Big thanks to fafane84 for is bug
report about this, he helped me to spot something I might have ignored for a
while. NOTE (for the future): always use "sort" before "uniq" !!!
- added the --cartoon option that allows the user to use the specific XviD
cartoon mode (for cartoons only)
- added the set_cartoon_opts() function that sets/unsets the cartoon mode
- added the set_xvidenc_opts() function that sets all the XviD encoding
options
- modified the preview(), encode() and print_cmd() functions to use the new
set_xvidenc_opts() function rather than the long variable list for XviD
encoding options
- modified the modify_conf() function that now allows the user to set/unset
cartoon mode
- modified the modify_conf() function to print menu items more like the other
menus: 1) rather than 1. (looks better)
- modified the print_header() function to add a print of the movie type (film
or cartoon) at the end
- updated the language, TODO and manpage files
- NOTE: about cartoon mode, I really don't know the impact this can have on
the final output size, so if you do encode some cartoons with ripdvd just
tell me how it goes and I'll try to fix the bitrate or stuff like that

1.5.3 - 16/05/2007
- corrected a *huge* bug in the user_menu() function. To check for the number
of audio tracks, I typed "get_nb_of_subs" rather than "get_nb_of_audio". Verry
sorry about that
- added the dvd_dev_find() function that parses the /dev/ directory to find
all suitable devices for dvd readers
- modified the set_conf() function to use the new dvd_dev_find() function. Now
on, a dvd devices list is set in the config file, rather than a single device
taken from the user's input
- added the find_dvd_reader() that parses the DVD_DEV_LIST variable (set from
the dvd_dev_find() function) and try to find the right dvd reader
- added a call to the find_dvd_reader() in the unlock_dvd() function, before
unlocking
- updated the print_cmd() function, that was a bit old
- added a display of the movie's length in the user_menu() function, before
asking the size. That may be useful to set up directly to more than 700 Mo for
very long films
- updated the install.sh script. Now on, install.sh can take arguments from
the command line, in order to change the installation prefix directory and
some other directories. Be aware of what you are doing if you change the
default values, I will not be responsible of the horrible mess you'll do by
passing strange arguments to this script. By the way, big thanks to Mushroom
for his cooker script ;)
- replaced all the $((...)) commands by $[...] commands, and all the `...`
commands by $(...) commands. This is better for the programmer's eyes and it
seem the lastest version of bash got some issues with these "old" commands
- added the --no-preview option to the getopt options list ... it was
forgotten at first time. My mistake ...
- updated the language and TODO files
- updated the AUTHORS file

1.5.2 - 13/05/2007
- some cleanups and updates related to previous changes
- added multithreads support (automatic detection of the number of CPUs), I
didn't get great improvements whith my Core2 Duo, neither saw the use of the 2
cores simultaneously. By the way, this seems not to lower the encoding
performances, so I think there is no harm to keep this (warn me if you got
issues with this !)
- added a reset of the cropping options in the modify_conf() function when the
track to encode is changed
- added automatic bitrate in the calc_video_bitrate() function when it is
>16000. This does not give very good results, but is always better than the
poor bitrate calculated from size (thanks to fafane84 for pointing this
out)
- added a question to delete partially encoded file(s) in the user_interrupt()
function (thanks to fafane84 again)
- added the check_parameters() function that checks for title and audio track
not to be empty
- added a "sanity check" of command line options using the check_parameters()
function (thanks to fafane84 one more time)
- added the get_nb_of_audio() function that gives the number of audio tracks
available
- modified the user_menu() function to use the get_nb_of_audio() function. Now
on, if there is only 1 audio track, it is automatically selected
- modified the preview() function tu use the "select" buildin command of bash,
which is better than me to create menus ;)
- renamed INSTALL.en and README.en files to INSTALL and README (thanks to
Mushroom for pointing this out)
- modified the ripdvd.Slackbuild to put man pages into /usr/local/man rather
than /usr/local/share/man
- updated the language and TODO files
- updated the AUTHORS file

1.5.1 - 18/04/2007
- added usage of getopt in the parameters parsing, to avoir users mistakes
- modified all command line options so they now begin with '--' rather than a
single '-'. This had to be done to fit the use of getopt
- added the --autocrop option. The explanations of the --crop option in the
1.5.0 changelog was not good, the --crop option didn't perform auto-cropping,
but did cropping by using the users' value. This new option corrects this
mistake ... By the way, if both --crop W:H:X:Y and --autocrop are given,
autocrop will override the crop values given. Unless you're sure of what
you're doing, it's better to use auto-crop ;)
- corrected a bug in the preview() and encode() functions, that made the
external subtitles filenames go wrong when there were spaces in the movie
filename
- changed the preview filename from ${NAME_MOVIE}-tmp.avi to ${NAME_MOVIE}.avi
to avoid issues when subtitles are put into external files
- corrected a bug into the options choices that called the crop functions
before getting the track and length from the dvd
- updated the language files, the man page, the xripdvd script and the
ripdvd.desktop file
- updated the install.sh script. As the SlackBuild is now available to
download, there is no more need of the Slackware package creation here

1.5.0.1 - 01/04/2007
- corrected a bug in the encode() function that causes the encode part not to
use the crop values ... shame on me

1.5.0 - 29/03/2007
- modified the modify_conf() function by merging in one the two options for
"in movie"/"in file" subtitles, so the user has no choice and can't be
mistaken: if subs are in, you can only put them out and "vice-versa" ;)
- added the -crop command line option, which allows the user to ask ripdvd to
perform auto-cropping for the movie. This means erase black bands on the
top/bottom and on the right/left (if needed). This avoids to encode those
black bands in the movie and then, gain quality
- modified the user_menu() function, according to the new -crop option
- added the guess_crop_values() and set_crop_opts() functions, according to
the new -crop option (both command line and user menu option)
- added the unlock_dvd() function, which retreives all CSS keys. This is not
needed when libdvdcss is installed on the system, so we run it just in case.
- added the update_conf() function, it is called every time ripdvd is run to
update the config file, just in case pathes for mplayer or lsdvd have change
- updated the test_deps() function to check if Xvid ;-), AC3 and mp3 support
are available in mencoder
- updated the language and TODO files
- updated the man page

1.4.1 - 20/03/2007
- removed the video aspect option from the "user menu" list as it seems
outplaced there
- modified the print_header() function so that each parameter is now printed
on its own line, rather than in one whole line
- slightly improved the test_deps() output
- updated the language files

1.4.0 - 28/02/2007
- renamed the -audio-btr option into -aud-btr to normalize the audio options
- added the -aud-format option that allows to choose between mp3 and ac3
formats
- added the -set_aud_opts() function to set up the audio option, according to
the new -aud-format option. mp3 is still default, ac3 provides 5.1 output and
surround effect
- added an option for the new audio format choice in the modify_conf()
function
- modified the print_cmd(), preview() and encode() functions to use the new
${AUD_OPTS} option rather than the hardcoded options
- updated the READMEs and man page with Franceso's description of ripdvd,
which is much more clear than mine ;)

1.3.2 - 18/02/2007
- added the -print-cmd option and the print_cmd() function that allows the
users to obtain the mencoder command to encode the dvd without doing it.
- corrected a very small bug in the "2 passes" logfile name
- added the -sub-out-file option. This option gets no parameter, but just
tells ripdvd (and though, mencoder) to put subtitles into a separate subfile,
which basename will be the same as the movie's. The generated file will be
into VobSub format, so in order to see it with mplayer, users must use the
-vobsub option (see the man page), NOT the -sub option !!
- modified the modify_conf() function so that the users can choose whether or
not they want to integrate subtitles into the movie file
- modified the modify_conf() function to make it easier to maitain (add
options for example). Now on, the "encode" is acessible with the "e" option
and the "preview" with the "p" option
- corrected a small bug in the check_free_space() function, the DEST_DIR
variable must be placed between double quotes ...
- updated the language files
- updated the man page

1.3.1 - 07/02/2007
- added the get_nb_of_subs() function that gives the number of sub ids on the
dvd. This is useful for the user_menu() and modify_conf() functions in
avoiding the question of subtitles if not needed.
- updated the user_menu() and modify_conf() using a call to the
get_nb_of_subs() function
- created a new icon for menus (big thanx to Mushroom from slackfr.org, he's
the designer of this icon)
- updated the language files
- updated the man page, as the -user-menu seems to be the most used option, it
is now default in the man
- created a man page for xripdvd (link to the ripdvd man page in the
install.sh script)
- updated the TODO, INSTALL and README files

1.3.0 - 23/01/2007
- added the end_app() function. This function aims to close cleanly ripdvd, by
asking the user to push [ENTER] and then exit
- strongly modified the output of encoding in the encode() function. This is
almost due to my will to reduce this output to less than 80 characters, in
order to fit into every console, in every resolution (all consoles are at less
80 characters wide). Now on, the "in movie time" is printed compared to the
"whole movie time", the size of the output is printed right after the
percentage, there is no more "Time remaining" string, just the time, and the
Video and Audio bitrates are now regrouped in the same way than mencoder does.
The shell variables are also no more statically linked in the awk command by
using the -v option, but more dynamically by using the "'"${var}"'" combo
- removed all the -v options from other awk commands, using the same stratagem
than in the encode() functions, in the message.rdl library
- modified the ripdvd.desktop file, using the "Terminal=true" and the
"Exec=ripdvd -user-menu" options. This allows KDE, Gnome and Xfce to force the
console to the user's console, not to xterm, which is default in xripdvd. Big
thanks to Franceso for the advice
- added the /opt/kde/share/icons location for ripdvd icon (for KDE on
Slackware) in the install.sh script. In order to keep a small package, the
"KDE" icon is in fact a link to the "classical" icon
- moved the ripdvd.desktop category from "Application" to
"Application/AudioVideo" as it seems better here than in the middle of nowhere
- corrected some small bugs here and there (my mistake, when I test something,
I change the code and sometimes forget to remake it as it should be ;^))
- updated the language files

1.2.2 - 21/01/2007
- modified the user_menu() function: if movie size is > 700 Mo, a question
about number of file split was asked. By default the answer was 1 that caused
the program to run the encode() function with the split option activated. Now
on, the default option is "" (means blank), in order to avoid the activation
of the split option.
- modified the encode() function: the errors from mencoder are now printed
dynamicaly to the error logfile. In case of errors in the encoding (or
Ctrl+C), the user might want to have a look at this logfile.
- added .desktop files for KDE, Gnome and Xfce menus integration
- added the icon file

1.2.1 - 01/01/2007
- Happy new year !! ;)
- added the delete_2pass_logfile() function, I think the name is explicit
enought
- added a call to the delete_2pass_logfile() at the end of encoding, when in
2-passes mode

1.2.0 - 27/12/2006
- added the -no-eject option to avoid dvd ejection at the end of encoding
- modified the eject_dvd() function to fit the new -no-eject option
- mencoder's output is now piped to awk only, no more sed/grep around. With
this new feature, encoding errors can be captured and printed to some log file
- config file is now placed in ${HOME}/.ripdvd/config rather than
${HOME}/.ripdvdrc. This also allows me to put the 2-pass logfile in
${HOME}/.ripdvd/2pass.log and encoding errors in ${HOME}/.ripdvd/errors.log
- added a small script to remove old config/log files for releases under 1.2.0
- updated TODO file
- updated language files
- updated the README and INSTALL files

1.1.5 - 20/12/2006
- renamed the modify_conf_and_rerun_preview() function in modify_conf()
- added the print_audio_list() and print_sub_list() functions that print the
whole audio and sub id lists
- added the print_track_list() function that prints the track list and their
length
- in the user_menu() function, removed hard code for audio and sub list, added
a call to the print_audio_list() and print_sub_list() functions.
- in the modify_conf() function, added the output from print_audio_list() and
print_sub_list() functions for audio and sub modification. Removed audio
bitrate modification, as 128 seems to be a good default value and advanced
users will have used the option from command line. Also removed audio and sub
language modification, as this can be done using the audio and sub id
modification more easily. Added a call to the print_track_list() when the user
needs to modify the track to encode.
- added the create_dest_dir() function
- when using a non-default destination directory, first create it if it does
not exist by calling the create_dest_dir() function

1.1.4 - 19/12/2006
- replaced width option by split option in the user_menu() function. I
think that n00bs users will more like it ... ;)
- added a test for split question to be shown only if required movie size is
greater than 700 Mo in the user_menu() function. I think that if the user
requires 700 Mo of output size, it's not to cut it into more than one piece of
700 Mo ...
- added some explanations about video aspect in the language files, for the
user_menu() function again
- replaced default xvid subfilters by deblocking (horizontal and vertical) +
deringing (de by ha:200:0/va/dr). These values are taken from xvidenc. After
some tests, results are very good, but encoding speed is reduced (not
harmless, around 2 or 3 fps less)
- updated README.en, finished README.fr translation, created INSTALL.fr,
renamed INSTALL to INSTALL.en
- updated install.sh

1.1.3 - 18/12/2006
- added number of passes option in the modify_conf_and_rerun_preview()
function and in the user_menu() function
- added a clean_conf() function to fit the -c option much better. I wanted
this option to really be a reconfig option, not only delete config file and
rewrite.
- test_deps() is now run before set_conf() if it's the first time ripdvd is
launched
- added a install/ginstall test for the install.sh script. As it seems that
ginstall is not present on SuSE and Debian (thanks to Grozdan and Franceso for
this), it's better to check before starting. "install" must be present as it
is a part of the coreutils package !!
- added a "Press [ENTER] to exit ..." at the end of the xripdvd script, in
order to keep the xterm window alive after encoding is over, and at the end of
the error() function, for the same reason
- updated .lng language files

1.1.2 - 11/12/2006
- added vhq=2 in the xvid encoding options
- corrected a small bug in the preview() function. -channels is better than
-channel in mencoder options ;)
- updated the man page
- added a "suid root test" in the install.sh script. If the user is not root
while running the script without parameters, then cast him away and claim for
root privileges ...
- corrected a *huge* bug in the install.sh script !!! No install was done
because of this !!! How come users haven't send a bug report to me about this
!!!! >:(

1.1.1 - 05/12/2006
- mencoder options has been improved by adding -spuaa (for subtitles), :aq and
:vol (lame options), resample, -srate and -channels (audio filters) and -sws
(software scaler algorithm). Big thanks to Grozdan Nikolov, core hacker for
the xvidenc project (http://sourceforge.net/projects/xvidenc).
This does not reduce encoding speed, but give better results for output files

1.1.0 - 03/12/2006
- the preview is now done randomly in the first 1/3 of the movie, rather than
always at the same time, in the middle.
- added the -two-pass option which allows to do two passes rather than only
one. With this, the output will look better, but the encoding will take twice
the time of the "one pass". It might be useful for movies with a lot of fire,
water, snow, thunders, flashes etc ... 
This have been tested but not against the -split option, it should work, but
who knows ? ;) See the TODO file
This option needs to be added to the user_menu() function, see the TODO file
- modified the encode() function to match the new -two-pass option
- modified the print_final() function to match the new -two-pass option
- updated the .lng files
- updated the TODO file

1.0.2 - 26/11/2006
- user_menu() function has been upgraded again. The title of the movie is now
guessed from the dvd and the user is asked to keep it or not.
- a call to exit 0 has been added at the end of the encode() function, as the
program didn't exit after it when using -user-menu option
- added the print_audio_ids() and print_sub_ids() functions. As The same code
was used for the -user-menu option and the small menu for audio and sub
retreival when more than 1 id exists for the same language ... a simple
function is better ;)
- updated the .lng files
- updated the TODO file

1.0.1 - 23/11/2006
- user_menu() function has been upgraded. Now, the user have to choose audio
and subtitles language from a list (taken from lsdvd). This is more like the
spirit of this function, as language shortcuts aren't always easy to find ...
- updated the .lng files
- in the preview() function, removed the call of print_final() and eject_dvd()
after the call of encode(), as these 2 calls are also present in the encode()
function ...
- creation of a xripdvd script, which is only a call of "ripdvd -user-menu"
inside a new xterm command. This allows ripdvd to become a "click program", or
a "menu program" (this will also allow desktop integration for users who might
need it)

1.0.0 - 22/11/2006
- Translated what needed to be translated
- Slightly modified the usage() output
- Updated the .lng language files
- Updated the TODO file
- Final release, champaign !! For now on, I'll try to add some useful things
in order to make ripdvd more and more "user friendly", but powerful enough for
"advanced users" who might need geeks options ;^).

1.0.0rc2 - 22/11/2006
- Light modification of the language selection. A variable is created,
containing the language file name, and we just source it after. This is useful
for the error() and the user_interrupt() functions as some other variables are
passed as parameters and need to source again the language file. Thanks to
Franceso for the idea !
- The script is now more modular, as "ripdvd libs" has been created. They only
contain all the bash functions: config.rdl, core.rdl and messages.rdl
These libs are sourced at the beginning of the script, in order to activate
all the functions
- Light modification of the setting of the video bitrate, using the :- shell
ability

1.0.0rc1 - 14/11/2006
- Added the -user-menu option. Now on, the user can use this if he doesn't
want to type in awful command-line options. He'll be asked very simple
questions (movie name, audio language, subtitles language, movie size, movie
width, dvd track and video aspect). After that, options are set according to
the answers (after a few checks) and the preview is launched.
- Added user_menu(), print_final(), check_free_space(), set_video_track(),
set_dvd_length() functions, according to the modifications from -user-menu
option
- Updated and added the man page from Franceso to the source tree, very big
thanks again to him for this great job !!
- Updated the install.sh script in order to include this man page
- Updated the TODO file
- This is release candidate 1 for ripdvd 1.0.0 !! As you can see, I now need
to translate all the new features that have been added since 0.9.0

0.9.2 patch 2 - 14/11/2006
- Added a language test on $LANG variable in addition of $LC_ALL as it seems
the $LC_ALL variable is not present on every linux system. Thanks a lot to
Charles for pointing this out !!

0.9.2 patch 1 - 13/11/2006
- Added a LOCALE_DIR variable used for language file importation. As locales
needs to be stored in /usr/share on Debian systems and /usr/local/share on
Slackware systems, it's better to have a variable here. Thanks a lot to
Franceso for pointing this out and for the patch !!

0.9.2 - 10/11/2006
- Added the aspect, audio bitrate, destination directory and track options to
the modify_conf_and_rerun_preview() function
- Modified the output of the questions in the modify_conf_and_rerun_preview()
function by adding some "previous <option> was <value>" to make them more
useful
- Added a question to the user when more than one audio/subtitle id is found
for a specified language. When this happens, the output from lsdvd is shown as
a choice for the user who must answer the question. Then, its parameters are
taken for the preview and if they're not correct, he might change them.
- Updated the TODO file

0.9.1 - 09/11/2006
- Added default movie name "Movie encoded by ripdvd on <date>"
- Added the movie size and the split options to the
modify_conf_and_rerun_preview() function
- Replaced movie width by movie size in the print_header() function (more
useful to get the requested size than the width)
- Added the number of split files (or not) in the print_header() function
- Modified the -no-preview option, if it is used, then directly run encode(),
if not, run preview() and call encode() from it rather than after it
- Added the -aspect option and the set_aspect_opts() function
- Updated the .lng languages files
- Updated the TODO file

0.9.0 - 08/11/2006
- Added the rerun option in the preview. If the preview seems bad, you can now
modify some options (movie name, audio and subtitles languages, audio and
subtitles ids) and rerun preview to check if that's better. More options to
modify will be added later, translation is not yet done, see the TODO file.
- Added the modify_conf_and_rerun_preview(), set_audio_id(), set_sub_id() and
set_sub_opts() functions according to the new preview function
- Modified the preview() function to fit the new "rerun" option
- Definitly corrected a nasty bug in the error() function due to the
translation files
- Updated the .lng languages files

0.8.3 - 05/11/2006
- Removed avifix from dependencies and the avifix pass after encoding and from
configuration file as it didn't solve the problem
- Corrected a small bug in the retreiving of the audio id when the user uses
the -aud-id option rather than the -aud option
- Corrected the print_movie_size() function
- Added the -no-preview option
- Added the -track option
- Added the -audio-btr option
- Added fflush() to the awk command in encoding, in order to empty the buffer
and speed up the output
- Deleted the -info option ... THAT was the cause of the broken index !! >:[
- Updated the .lng languages files
- Updated the TODO file

0.8.2 - 04/11/2006
- Corrected some malformed output from the error() function, due to variables
in the translation, seemed to be bad ...
- Added the print_movie_size() function in replacement of the failing du -sm
command
- Updated .lng languages files
- Updated the TODO file
- Corrected a small error in the slack-desc in the install.sh script, that's
ripdvd and not dvdrip ...  woops ;)

0.8.1 - 28/10/2006
- Added avifix to configuration file and dependencies check
- Added the fix_index() function and fixation of index after encoding is
complete
- Modified the output of the movie final size at the end of encoding, as du
doesn't like the * form in the name of the movie(s), so we just compute the
size "by hand"
- Added the calcul_size() to fit the new movie size calculation

0.8.0 - 27/10/2006
- Created README.en and README.fr to fit the language support
- Updated the install.sh script to install the new README.* files rather than
the old README file
- Renamed DVD_LEN_MIN variable to DVD_LEN_SEC which is best for the length of
the longest track in *seconds* ...
- Modified the -split option, rather than the split size, the user must
provide the number of splits
- Completely modified the encode() function: now, split is done "on the fly"
using -ss and -endpos from mencoder rather than encoding the entire movie and
splitting after (wich causes the audio chunks problem). If the -split option
is not used, then -ss and -endpos are not used. If the -split option is used,
the -ss and -endpos points are calculated from the number of splits required
- Modified the dependencies check and configuration file, tcprobe, transcode
and avisplit are no longer needed
- Modified the space check, twice the movie size is no longer needed !!
- Updated TODO file
- Updated .lng languages files
- Modified the output of the movie size at the end of encoding, now
calculating it as the sum of all splits if any
- Updated the user_interrupt() function to fit the new encode() function, if the
user hits Ctrl+C while encoding, we must delete all the splits if any
- Added the eject_dvd() function at the end of encoding

0.7.0 - 26/10/2006
- Added language support for English and French
- Modified the install.sh script to fit the language support (messages for
language xx will be placed in /usr/local/share/ripdvd/locale/xx)
- Added time of final end in the output

0.6.1 - 26/10/2006
- Added TODO file
- Modified the install.sh script to fit the new TODO file
- Modified the equalize() function, now the frames/chunks test is performed in
it rather than before
- As it seems to issue seeking problems, the transcode pass has been
"downgraded" for splitting only. I hope to solve this soon (see TODO file)

0.6.0 - 24/10/2006
- Added preview of the movie before encoding. The preview is a 20s movie,
taken at 1/3 of the film, encoded as the final movie will be, then displayed
via mplayer
- Added the preview() function
- Added mplayer to the configuration file
- Added some FAQs in the README file
- Updated INSTALL file
- Updated AUTHORS file

0.5.2 - 24/10/2006
- Added -info option in the mencoder command
- Huge commands (tcprobe, transcode and mencoder) are now splitted into
multiple lines that make them more readable and understandable 

0.5.1 - 23/10/2006
- Corrected a small bug in transcode's output
- Added output of final movie size at the end of transcoding
- Added the encode() function
- Added the equalize() function

0.5.0 - 22/10/2006
- Added tcprobe (from transcode package) in configuration file
- Added transcode as required, no longer optional
- Added video frames VS audio chunks test (using tcprobe) at the end of
encoding. If they're not equal, then perform transcode command in order to
make them equal.
- Modified space check, twice movie size is now required, even if not splitting
- Made transcode's output more human readable
- Added slack-required in the Slackware package creation in install.sh

0.4.6 - 22/10/2006
- Added some colors in the output and the echolor function
- Added start and end times in the output
- Added output of movie size at the end of encoding

0.4.5 - 21/10/2006
- Corrected a nasty bug in install.sh script when creating Slackware
package, must chmod 755 the temporary directory, otherwise / will be chmod 700
when installing :(
- Modified sed and awk commands in mencoder's output in order to print
floating fps rather than integer (looks more real ;D)

0.4.4 - 20/10/2006
- Added --configure option
- Added /dev/null output redirection for lsdvd commands in order to avoid
awful prints from libdvdread
- Modified -split option, now split size must be provided (default was 700Mo),
- Added space check before starting (space is twice movie size in case of split)
- Corrected a small bug while parsing -dev-dvd option, "shift 2" is better
than "shift" ...
- Corrected a small bug in the set_conf() function, if the user provides
parameters, it's better to use them ...

0.4.3 - 19/10/2006
- Added a grep command in the retreiving of the movie length, due to output
changes in lsdvd 0.16 (not harmless for previous lsdvd versions). Thanks a lot
to Franceso for the patch !
- Modified the awk command in the retreiving of the movie length, due to
output changes in lsdvd 0.16 (not harmless for previous lsdvd versions)
- Added error tests after each "big" command and an error function
- Added some useful comments for mostly each command

0.4.2 - 18/10/2006
- Added Slackware package creation in the install.sh script

0.4.1 - 17/10/2006
- Modified awk syntax in audio and subtitles retreival in order to transform
0X strings into X integers
- Slightly modified dependencies test and conf. file creation in order to keep
old config

0.4.0 - 16/10/2006
- Corrected a *huge* bug in audio and subtitles id retreival
- Slightly modified movie length retreival by using the -t option from lsdvd

0.3.2 - 16/10/2006
- Added dependencies test after first time run
- Added version in configuration file in order to check for new versions
installed

0.3.1 - 13/10/2006
- Correction of a small bug in the format of the "Subtitles id" string

0.3.0 - 12/10/2006
- Creation of the project architecture : AUTHORS, Changelog, COPYING, INSTALL,
install.sh and README files

0.2.3 - 06/10/2006
- Modified the echo for encoding information 
- Added a final test after encoding in order to see if everything was right

0.2.2 - 06/10/2006
- Added mencoder output's translation with a huge sed + awk command (eech
awful, but still works ...)

0.2.1 - 06/10/2006
- Added trap function in order to have a clean shutdown

0.2.0 - 04/10/2006
- Added a pipe to tr the mencoder's '\r' from output that makes the output
easier to understand now (avoid all these annoying things from mencoder).
Thanks a lot to 0x90 from Hardware.fr OSA's forum for this simple code that I
missed all this time long ;)
- Deleted the previously added read function
- Modified configuration file to make -size optional (default is 700 Mo)

0.1.1 - 03/10/2006
- Added a read function after echoing encoding informations

0.1.0 - 01/10/2006
- Added configuration file in witch are stored basics informations
- Added -conf-file option

0.0.3 - 01/10/2006
- Added -btr option

0.0.2 - 01/10/2006
- Added -width option

0.0.1 - 31/09/2006
- Added aid, sid, btr and width in the echo at the begining

0.0.0 - 31/09/2006
- First release
