Tree [62d1b4] / src /
History



File Date Author Commit
.cvsignore 2002-07-06 mroi mroi [86f56e] .cvsignore convenience files
FELLOWSHIP.map 2002-09-17 jcdutton jcdutton [1e04ae] Adding "Personalizing DVD Viewing" files from <...
Makefile.am 2003-03-29 mroi mroi [e74302] * only install the headers that really are inte...
README.MAP 2002-09-17 jcdutton jcdutton [1e04ae] Adding "Personalizing DVD Viewing" files from <...
decoder.c 2003-03-27 mroi mroi [631b11] reorganize mutual header inclusion to fix warni...
decoder.h 2003-03-27 mroi mroi [631b11] reorganize mutual header inclusion to fix warni...
dvd_types.h 2002-09-04 jcdutton jcdutton [d97827] Add a new API function, to allow for more flexi...
dvdnav.c 2003-03-31 mroi mroi [54aab8] update position on HOP_CHANNEL, do not rely on ...
dvdnav.h 2003-03-29 mroi mroi [e74302] * only install the headers that really are inte...
dvdnav_events.h 2003-03-25 mroi mroi [c3029a] - new event on cell changes to report program a...
dvdnav_internal.h.in 2003-03-27 mroi mroi [631b11] reorganize mutual header inclusion to fix warni...
highlight.c 2003-03-27 mroi mroi [631b11] reorganize mutual header inclusion to fix warni...
navigation.c 2003-03-30 mroi mroi [9b23f2] one additional sanity check on the part number
read_cache.c 2003-02-20 mroi mroi [e9428b] big libdvdnav cleanup, quoting the ChangeLog:
read_cache.h 2002-07-12 mroi mroi [bd7b34] use new memcopy'less read ahead cache
remap.c 2003-02-20 mroi mroi [e9428b] big libdvdnav cleanup, quoting the ChangeLog:
remap.h 2003-02-20 mroi mroi [e9428b] big libdvdnav cleanup, quoting the ChangeLog:
searching.c 2003-03-27 mroi mroi [631b11] reorganize mutual header inclusion to fix warni...
settings.c 2003-03-27 mroi mroi [631b11] reorganize mutual header inclusion to fix warni...
vm.c 2003-03-29 mroi mroi [d23cac] dvd_read_name can be static and does not need t...
vm.h 2003-03-27 mroi mroi [631b11] reorganize mutual header inclusion to fix warni...
vmcmd.c 2003-03-27 mroi mroi [631b11] reorganize mutual header inclusion to fix warni...
vmcmd.h 2003-03-27 mroi mroi [631b11] reorganize mutual header inclusion to fix warni...

Read Me

Contents

WHAT ARE MAP FILES
HOWTO
FINDING MAP FILES
WHOM TO BLAME

WHAT ARE MAP FILES
==================

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)
 debug
 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 FELLOWSHIP.map ~/.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.


HOWTO
=====

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/FELLOWSHIP.map

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.


WHERE TO FIND MAP FILES
=======================

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.


WHOM TO BLAME
=============

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

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.