NAME

DVD::Read::Dvd::Ifo - Access to DVD IFO file using libdvdread

SYNOPSIS

use DVD::Read::Dvd;
use DVD::Read::Dvd::Ifo;
my $dvd = DVD::Read::Dvd->new('/dev/cdrom');
my $vmg = DVD::Read::Dvd::Ifo->new($dvd, 0);
...

DESCRIPTION

This module provide a low level access DVD IFO files using libdvdread.

This module allow you to get video titles informations step by step like it is done by libdvdread.

Notice functions provided by module are really basics, then you really need to understand the dvd information to use it.

GENERICS FUNCTIONS

new($dvd, $id)

Return a new DVD::Read::Dvd::Ifo:

$dvd

A DVD::Read::Dvd object.

$id

The title number you want to get information.

If $id is 0, you'll get the VGM information. Otherwise $id is normal given by title_nr function from VGM DVD::Read::Dvd::Ifo object.

VGM FUNCTIONS

This functions will work only for DVD::Read::Dvd::Ifo object get from VGM table, eg title 0.

titles_count

Return the count of titles on the DVD

title_angles_count($title)

Get the angle count for title number $title

title_chapters_count($title)

Return the count of chapters for title number $title

title_nr($title)

Return the internal title id for title number $title.

The VGM provide the ordered list of title on DVD, which is usually different of the physical order.

Here a real example to get title 1:

my $vgm = DVD::Read::Dvd::Ifo($dvd, 0);
my $titlenr = $vgm->title_nr(1);
$chapter_count = $vgm->title_chapters_count($titlenr);
my vts = DVD::Read::Dvd::Ifo($dvd, $titlenr);

...

title_ttn($title)

Return the ttn for title number $title.

I don't know what is the 'ttn', I just know it is need in some other function. If you have explanation, mail me !

title_length($vts, $ttn)

Return the length in millisecond of title handle by $vts DVD::Read::Dvd::Ifo object get from a title > 0.

chapter_offset($vts, $title, $chapter)

Return in millisecond the chapter offset from movie start of chapter number $chapter of title number $title.

$vts is the DVD::Read::Dvd::Ifo object for title number $title.

It is unfriendly to have to give again the title number if the VTS IFO is given. I haven't find another way, but remember this module is low level access to dvdread API.

chapter_first_sector($vts, $title, $chapter)

Return first sector of chapter $chapter for title $title.

$vts is the DVD::Read::Dvd::Ifo object for title number $title.

chapter_last_sector($vts, $title, $chapter)

Return last sector of chapter $chapter for title $title.

$vts is the DVD::Read::Dvd::Ifo object for title number $title.

VTS FUNCTIONS

These function should be used over DVD::Read::Dvd::Ifo get for title number highter than 0.

They are usually prefixed by 'vts_'.

vts_ttn_count

Return the count of ttn this title.

Again, I don't know what is the ttn...

vts_video_format

Return the video format

vts_video_format_txt

Return the video format in textual form

vts_video_size

Return the width and height of the video

vts_video_mpeg_version

Return the MPEG version used

vts_video_mpeg_version_txt

Return the MPEG version in textual form

vts_video_aspect_ratio

Return the aspect ratio

vts_video_aspect_ratio_txt

Return the aspect ratio in textual form

vts_video_permitted_df

Return the 'permitted_df' value, but no sure about its meaning

vts_video_permitted_df_txt

Return the 'permitted_df' in textual form (from transcode code).

vts_video_film_mode

Return true if the video is a movie

vts_video_letterboxed

Unknown meaning...

vts_video_line21_cc_1

Unknown meaning...

vts_video_line21_cc_2

Unknown meaning...

vts_video_ntsc_cc

Unknown meaning...

vts_audios

Return the list of existing audios tracks id

vts_audio_format($id)

Return the format of audio track number $id.

vts_audio_format_txt($id)

Return the format of audio track number $id in textual form.

vts_audio_frequency($id)

Return the frequency for audio track number $id.

vts_audio_frequency_txt($id)

Return the frequency for audio track number $id in textual form.

vts_audio_language($id)

Return the language code for audio track number $id.

vts_audio_lang_extension($id)

Return the language extension for audio track number $id. In fact this is comment about track content.

vts_audio_lang_extension_txt($id)

Return the language extension for audio track number $id in textual form.

vts_audio_quantization($id)

Not sure about the meaning, should the bit count used to code sound.

vts_audio_quantization_txt($id)

Return audio quantization in textual form.

vts_audio_channel($id)

Return the channel mode for audio track number $id.

vts_audio_channel_txt($id)

Return the channel mode for audio track number $id in textual form.

vts_audio_appmode($id)

The application mode for audio track number $id. Eg, is the track for karaoke ?

vts_audio_appmode_txt($id)

The application mode for audio track number $id in textual form.

vts_audio_multichannel_extension($id)

Does the audio track number $id has multichannel extension ?

vts_subtitles

Return the list of existing subtitles tracks id

vts_subtitle_language($id)

Return the language for subtitle $id.

vts_subtitle_lang_extension($id)

Return the language extension for susbtitle number $id. This is in fact a comment about the subtitle content.

vts_subtitle_lang_extension_txt($id)

Return the language extension for susbtitle number $id in textual form.

CAVEAT

Most of C code come from mplayer and transcode (tcprobe).

Thanks authors of these modules to provide it as free software.

As this software are under another license, and this module reuse code from it, the Perl license is maybe not appropriate.

Just mail me if this is a problem.

SEE ALSO

DVD::Read::Dvd

AUTHOR

Olivier Thauvin <nanardon@nanardon.zarb.org>

COPYRIGHT AND LICENSE

Copyright (C) 2008 by Olivier Thauvin

This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.10.0 or, at your option, any later version of Perl 5 you may have available.

The libdvdread is under the GPL Licence.