Tree [4ec9b7] / src /

HTTPS access

File Date Author Commit
 dvdread 2004-09-12 mroi mroi [4ec9b7] patch from Franti¨ek to avoid symbol name clashes
 vm 2004-06-20 mroi mroi [207bb9] small indentation fix
 .cvsignore 2003-05-16 mroi mroi [fbac43] dvdnav_internal.h is an internal header, only u... 2002-09-17 jcdutton jcdutton [1e04ae] Adding "Personalizing DVD Viewing" files from <... 2004-05-19 mroi mroi [666ae3] very small build system change: automake sugges...
 README.MAP 2002-09-17 jcdutton jcdutton [1e04ae] Adding "Personalizing DVD Viewing" files from <...
 dvd_types.h 2003-04-21 mroi mroi [a20ead] * fix warnings with gcc 3.3
 dvdnav.c 2004-09-12 mroi mroi [d05e70] I added this code myself a long time ago, but n...
 dvdnav.h 2003-06-09 mroi mroi [6be959] clarify these functions
 dvdnav_events.h 2003-04-27 jcdutton jcdutton [c340d2] Modified libdvdnav to do without libdvdread.
 dvdnav_internal.h 2004-09-12 mroi mroi [4ec9b7] patch from Franti¨ek to avoid symbol name clashes
 highlight.c 2004-01-20 jcdutton jcdutton [928c26] Fix a bug. We pass pci_t as a function param, s...
 navigation.c 2004-06-20 mroi mroi [317fb9] fix some error conditions (fixes dvdnav_title_p...
 read_cache.c 2004-03-03 mroi mroi [5b8b80] porting AMD64 patches from xine (provided by Go...
 read_cache.h 2002-07-12 mroi mroi [bd7b34] use new memcopy'less read ahead cache
 remap.c 2003-08-27 mroi mroi [092172] port Daniel's changes to xine-lib cvs to minimi...
 remap.h 2003-02-20 mroi mroi [e9428b] big libdvdnav cleanup, quoting the ChangeLog:
 searching.c 2004-01-07 mroi mroi [871aeb] fix assertion failure when someone asks for the...
 settings.c 2003-12-31 jcdutton jcdutton [43a891] Some fixes to that libdvdnav compiles under cyg...

Read Me




Map files are an experimental feature that lets you customize the way
you watch DVDs.  If you are opposed to violence, are sickened by gore,
or would rather your two year old didn't ask you just yet why that 
woman in the movie was naked, you might want to create a map file.  

Map files identify sections of the movie that will be skipped during
playback.  You can skip any section you like with the only restriction
(right now) that the movie player must play at least the last VOBU 
(about a fifth of a second) of each chapter in the movie in order
to detect chapter changes correctly.  

Included with this patch is an example map file that describes most
of the potentially objectionable content in the new "The Lord of the 
Rings" DVD.  I've added a comment after each block that identifies 
what content it contains so that you can customize the file to your
preferences.  The map file looks something like this:

 # The Lord of the Rings: Fellowship of the Ring 
 # (Widescreen Theatrical Release)
 domain 8, title 1, program 1, start 0x0000, end 0x1f0a   # Introduction

 # history of middle earth
 #domain 2, title 1, program 1, start 0x9cba, end 0xcea4   # violence/war
 #domain 2, title 1, program 1, start 0xf018, end 0x1272c  # violence/war
 domain 2, title 1, program 1, start 0x11ff3, end 0x1272c # gore
 #domain 2, title 1, program 1, start 0x173f1, end 0x185d6 # violence/death

Place the map file in your .xine directory to enable the selected
cuts as follows:

    cp ~/.xine

The debug command tells the map code that you would like to see the
VOBU numbers as the movie is playing.  Comment out this line to hide
this output.  The remaining lines are all either comments or blocks.
Each block has a start and an end, and whenever Xine tries to load
a VOBU between the start and end, it will be redirected to the end
block instead.


To create your own map files you would create a new map file using the
title of the disk as the filename, and add the debug line to it.  The
map file should be placed in your '.xine' directory and have a '.map'
extension added.  For example "The Lord Of The Rings" map must be stored 
in the file ~/.xine/

After you create the file with the DEBUG line you will see output that
looks like this in window where you started Xine:

   FELLOWSHIP: domain 8, title 1, program 1, start 2205, next 22a8
   FELLOWSHIP: domain 8, title 1, program 1, start 22a8, next 234b
   FELLOWSHIP: domain 8, title 1, program 1, start 234b, next 23eb
   FELLOWSHIP: domain 8, title 1, program 1, start 23eb, next 248a

Each line represents one VOBU, and the start and end addresses match
the start and end addresses that you should place in the map file
if you want to skip that block.  If you want to skip multiple blocks
you would just add one line with the start address of the first block
to skip, and the end address of the last block to skip.  For example
to skip these four blocks you would add the following line to your
map file:

   domain 8, title 1, program 1, start 0x2205, end 0x248a # 4 blocks

Xine uses a buffered input chain so that if you pause the viewer you
won't find the same VOBU being displayed on the terminal as is 
currently on the screen.  In my testing the correct VOBU to use if
you pause exactly on the section you want to cut will be about five
or six lines above the last one printed to the screen.  Replay the
scene with the deletion to see if you caught the correct blocks.


If you create a map file for a new movie, please send it to me.  If
there is widespread interest I'll put up a site where map files can
be located and downloaded.


If the patch doesn't work for you (and you want it to) you can contact
me at ''.  

If the patch works for you and you don't want it to, remember that 
not everyone in the world has the same needs.  The freedom to censor 
movies in our own homes is quite different from the government 
interfering into libraries and other public forums to censor movies 
for us.

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

JavaScript is required for this form.

No, thanks