|
Packit |
015a35 |
What is this all about?
|
|
Packit |
015a35 |
-----------------------
|
|
Packit |
015a35 |
|
|
Packit |
015a35 |
libdvdnav is a library that allows easy use of sophisticated DVD navigation
|
|
Packit |
015a35 |
features such as DVD menus, multiangle playback and even interactive DVD games.
|
|
Packit |
015a35 |
All this functionality is provided through a simple API which provides the
|
|
Packit |
015a35 |
DVD playback as a single logical stream of blocks, intermitted by special
|
|
Packit |
015a35 |
dvdnav events to report certain conditions. The main usage of libdvdnav is a
|
|
Packit |
015a35 |
loop regularly calling a function to get the next block, surrounded by
|
|
Packit |
015a35 |
additional calls to tell the library of user interaction.
|
|
Packit |
015a35 |
The whole DVD virtual machine and internal playback states are completely
|
|
Packit |
015a35 |
encapsulated.
|
|
Packit |
015a35 |
|
|
Packit |
015a35 |
Where does it come from?
|
|
Packit |
015a35 |
------------------------
|
|
Packit |
015a35 |
|
|
Packit |
015a35 |
This library is based on a lot of code and expertise from the Ogle project.
|
|
Packit |
015a35 |
Ogle was the first DVD player who implemented free DVD navigation. The
|
|
Packit |
015a35 |
libdvdnav developers wish to express their gratitude to the Ogle people
|
|
Packit |
015a35 |
for all the valuable research work they have done.
|
|
Packit |
015a35 |
|
|
Packit |
015a35 |
Initially, the dvdnav code was part of a plugin to the xine media player
|
|
Packit |
015a35 |
called xine-dvdnav. Later on, the DVD VM specific code was split
|
|
Packit |
015a35 |
from xine-dvdnav and went into the first version of libdvdnav.
|
|
Packit |
015a35 |
|
|
Packit |
015a35 |
Where is it now?
|
|
Packit |
015a35 |
----------------
|
|
Packit |
015a35 |
|
|
Packit |
015a35 |
libdvdnav is hosted on http://dvdnav.mplayerhq.hu/ .
|
|
Packit |
015a35 |
Please report bugs to the developers mailinglist at
|
|
Packit |
015a35 |
mailto:dvdnav-discuss@mplayerhq.hu .
|
|
Packit |
015a35 |
|
|
Packit |
015a35 |
We are still in beta stage, but libdvdnav is already quite usable. With
|
|
Packit |
015a35 |
regular DVD playback, there should not be any serious issues. The library
|
|
Packit |
015a35 |
also makes some limited effort to handle error situations gracefully, but
|
|
Packit |
015a35 |
there are still assertions in the code that may trigger on some DVDs. Please
|
|
Packit |
015a35 |
send a report to the developer mailinglist, if you encounter such problems.
|
|
Packit |
015a35 |
|
|
Packit |
015a35 |
How can I use it?
|
|
Packit |
015a35 |
-----------------
|
|
Packit |
015a35 |
|
|
Packit |
015a35 |
libdvdnav is completely licensed under GPL. You may use it at wish within the
|
|
Packit |
015a35 |
bounds of this license. See the file "COPYING" for a copy of the GPL.
|
|
Packit |
015a35 |
|
|
Packit |
015a35 |
Sources for documentation on libdvdnav are:
|
|
Packit |
015a35 |
* the examples directory contains a simple program using libdvdnav
|
|
Packit |
015a35 |
this one is well-commented and therefore a good starting point
|
|
Packit |
015a35 |
* the public header dvdnav.h documents the API
|
|
Packit |
015a35 |
* the public header dvdnav_events.h documents the dvdnav events
|
|
Packit |
015a35 |
* doc/library_layout contains some info on the internal working of libdvdnav
|
|
Packit |
015a35 |
|
|
Packit |
015a35 |
Sources for documentation on DVD terminology, structure and surrounding concepts:
|
|
Packit |
015a35 |
* doc/dvd_structures briefly explains DVD terms and organization
|
|
Packit |
015a35 |
* a more detailed description of DVD structures is available at
|
|
Packit |
015a35 |
http://www.mpucoder.com/dvd/
|
|
Packit |
015a35 |
* the ifo_types.h and nav_types.h headers are also interesting if you
|
|
Packit |
015a35 |
are already used to the sometimes cryptical abbreviations
|