bitreader.h   bitreader.h 
#ifndef BITREADER_H_INCLUDED
#define BITREADER_H_INCLUDED
/* /*
* Copyright (C) 2000, 2001, 2002 H * Copyright (C) 2000, 2001, 2002 Håkan Hjort <d95hjort@dtek.chalmers.se>.
*
* This file is part of libdvdread.
* *
* This program is free software; you can redistribute it and/or modify * libdvdread is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * libdvdread is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License along
* along with this program; if not, write to the Free Software * with libdvdread; if not, write to the Free Software Foundation, Inc.,
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
A
*/ */
#ifndef LIBDVDREAD_BITREADER_H
#define LIBDVDREAD_BITREADER_H
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
typedef struct { typedef struct {
uint8_t *start; uint8_t *start;
uint32_t byte_position; uint32_t byte_position;
uint32_t bit_position; uint32_t bit_position;
uint8_t byte; uint8_t byte;
} getbits_state_t; } getbits_state_t;
int dvdread_getbits_init(getbits_state_t *state, uint8_t *start); int dvdread_getbits_init(getbits_state_t *state, uint8_t *start);
uint32_t dvdread_getbits(getbits_state_t *state, uint32_t number_of_bits); uint32_t dvdread_getbits(getbits_state_t *state, uint32_t number_of_bits);
#ifdef __cplusplus #ifdef __cplusplus
}; };
#endif #endif
#endif /* BITREADER_H_INCLUDED */ #endif /* LIBDVDREAD_BITREADER_H */
 End of changes. 7 change blocks. 
10 lines changed or deleted 11 lines changed or added


 dvd_reader.h   dvd_reader.h 
#ifndef DVD_READER_H_INCLUDED
#define DVD_READER_H_INCLUDED
/* /*
* Copyright (C) 2001, 2002 Billy Biggs <vektor@dumbterm.net>, * Copyright (C) 2001, 2002 Billy Biggs <vektor@dumbterm.net>,
* H * Håkan Hjort <d95hjort@dtek.chalmers.se>,
* Bj * Björn Englund <d4bjorn@dtek.chalmers.se>
*
* This file is part of libdvdread.
* *
* This program is free software; you can redistribute it and/or modify * libdvdread is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or (at * the Free Software Foundation; either version 2 of the License, or
* your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, but * libdvdread is distributed in the hope that it will be useful,
* WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License along
* along with this program; if not, write to the Free Software * with libdvdread; if not, write to the Free Software Foundation, Inc.,
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
A
*/ */
#ifndef LIBDVDREAD_DVD_READER_H
#define LIBDVDREAD_DVD_READER_H
#ifdef _MSC_VER #ifdef _MSC_VER
#include <config.h> #include <config.h>
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#endif #endif
#include <sys/types.h> #include <sys/types.h>
#include <inttypes.h> #include <inttypes.h>
skipping to change at line 71 skipping to change at line 73
* Opaque type that is used as a handle for one instance of an opened DVD. * Opaque type that is used as a handle for one instance of an opened DVD.
*/ */
typedef struct dvd_reader_s dvd_reader_t; typedef struct dvd_reader_s dvd_reader_t;
/** /**
* Opaque type for a file read handle, much like a normal fd or FILE *. * Opaque type for a file read handle, much like a normal fd or FILE *.
*/ */
typedef struct dvd_file_s dvd_file_t; typedef struct dvd_file_s dvd_file_t;
/** /**
* Public type that is used to provide statistics on a handle.
*/
typedef struct {
off_t size; /**< Total size of file in bytes */
int nr_parts; /**< Number of file parts */
off_t parts_size[9]; /**< Size of each part in bytes */
} dvd_stat_t;
/**
* Opens a block device of a DVD-ROM file, or an image file, or a directory * Opens a block device of a DVD-ROM file, or an image file, or a directory
* name for a mounted DVD or HD copy of a DVD. * name for a mounted DVD or HD copy of a DVD.
* *
* If the given file is a block device, or is the mountpoint for a block * If the given file is a block device, or is the mountpoint for a block
* device, then that device is used for CSS authentication using libdvdcss. * device, then that device is used for CSS authentication using libdvdcss.
* If no device is available, then no CSS authentication is performed, * If no device is available, then no CSS authentication is performed,
* and we hope that the image is decrypted. * and we hope that the image is decrypted.
* *
* If the path given is a directory, then the files in that directory may b e * If the path given is a directory, then the files in that directory may b e
* in any one of these formats: * in any one of these formats:
skipping to change at line 113 skipping to change at line 124
void DVDClose( dvd_reader_t * ); void DVDClose( dvd_reader_t * );
/** /**
* *
*/ */
typedef enum { typedef enum {
DVD_READ_INFO_FILE, /**< VIDEO_TS.IFO or VTS_XX_0.IFO (title) */ DVD_READ_INFO_FILE, /**< VIDEO_TS.IFO or VTS_XX_0.IFO (title) */
DVD_READ_INFO_BACKUP_FILE, /**< VIDEO_TS.BUP or VTS_XX_0.BUP (title) */ DVD_READ_INFO_BACKUP_FILE, /**< VIDEO_TS.BUP or VTS_XX_0.BUP (title) */
DVD_READ_MENU_VOBS, /**< VIDEO_TS.VOB or VTS_XX_0.VOB (title) */ DVD_READ_MENU_VOBS, /**< VIDEO_TS.VOB or VTS_XX_0.VOB (title) */
DVD_READ_TITLE_VOBS /**< VTS_XX_[1-9].VOB (title). All files in DVD_READ_TITLE_VOBS /**< VTS_XX_[1-9].VOB (title). All files in
the title set are opened and read as a the title set are opened and read as a
single file. */ single file. */
} dvd_read_domain_t; } dvd_read_domain_t;
/** /**
* Stats a file on the DVD given the title number and domain.
* The information about the file is stored in a dvd_stat_t
* which contains information about the size of the file and
* the number of parts in case of a multipart file and the respective
* sizes of the parts.
* A multipart file is for instance VTS_02_1.VOB, VTS_02_2.VOB, VTS_02_3.VO
B
* The size of VTS_02_1.VOB will be stored in stat->parts_size[0],
* VTS_02_2.VOB in stat->parts_size[1], ...
* The total size (sum of all parts) is stored in stat->size and
* stat->nr_parts will hold the number of parts.
* Only DVD_READ_TITLE_VOBS (VTS_??_[1-9].VOB) can be multipart files.
*
* This function is only of use if you want to get the size of each file
* in the filesystem. These sizes are not needed to use any other
* functions in libdvdread.
*
* @param dvd A dvd read handle.
* @param titlenum Which Video Title Set should be used, VIDEO_TS is 0.
* @param domain Which domain.
* @param stat Pointer to where the result is stored.
* @return If successful 0, otherwise -1.
*
* int DVDFileStat(dvd, titlenum, domain, stat);
*/
int DVDFileStat(dvd_reader_t *, int, dvd_read_domain_t, dvd_stat_t *);
/**
* Opens a file on the DVD given the title number and domain. * Opens a file on the DVD given the title number and domain.
* *
* If the title number is 0, the video manager information is opened * If the title number is 0, the video manager information is opened
* (VIDEO_TS.[IFO,BUP,VOB]). Returns a file structure which may be * (VIDEO_TS.[IFO,BUP,VOB]). Returns a file structure which may be
* used for reads, or 0 if the file was not found. * used for reads, or 0 if the file was not found.
* *
* @param dvd A dvd read handle. * @param dvd A dvd read handle.
* @param titlenum Which Video Title Set should be used, VIDEO_TS is 0. * @param titlenum Which Video Title Set should be used, VIDEO_TS is 0.
* @param domain Which domain. * @param domain Which domain.
* @return If successful a a file read handle is returned, otherwise 0. * @return If successful a a file read handle is returned, otherwise 0.
skipping to change at line 230 skipping to change at line 268
* If the VolumeIdentifier is truncated because of this * If the VolumeIdentifier is truncated because of this
* it will still be null terminated. * it will still be null terminated.
* @param volsetid The buffer to put the VolumeSetIdentifier into. * @param volsetid The buffer to put the VolumeSetIdentifier into.
* The VolumeIdentifier is 128 bytes as * The VolumeIdentifier is 128 bytes as
* stored in the UDF PrimaryVolumeDescriptor. * stored in the UDF PrimaryVolumeDescriptor.
* Note that this is not a null terminated string. * Note that this is not a null terminated string.
* @param volsetid_size At most volsetid_size bytes will be copied to volse tid. * @param volsetid_size At most volsetid_size bytes will be copied to volse tid.
* @return 0 on success, -1 on error. * @return 0 on success, -1 on error.
*/ */
int DVDUDFVolumeInfo( dvd_reader_t *, char *, unsigned int, int DVDUDFVolumeInfo( dvd_reader_t *, char *, unsigned int,
unsigned char *, unsigned int ); unsigned char *, unsigned int );
int DVDFileSeekForce( dvd_file_t *, int offset, int force_size); int DVDFileSeekForce( dvd_file_t *, int offset, int force_size);
/** /**
* Get the ISO9660 VolumeIdentifier and VolumeSetIdentifier * Get the ISO9660 VolumeIdentifier and VolumeSetIdentifier
* *
* * Only use this function as fallback if DVDUDFVolumeInfo returns 0 * * * Only use this function as fallback if DVDUDFVolumeInfo returns 0 *
* * this will happen on a disc mastered only with a iso9660 filesystem * * * this will happen on a disc mastered only with a iso9660 filesystem *
* * All video DVD discs have UDF filesystem * * * All video DVD discs have UDF filesystem *
* *
skipping to change at line 256 skipping to change at line 294
* If the VolumeIdentifier is truncated because of this * If the VolumeIdentifier is truncated because of this
* it will still be null terminated. * it will still be null terminated.
* @param volsetid The buffer to put the VolumeSetIdentifier into. * @param volsetid The buffer to put the VolumeSetIdentifier into.
* The VolumeIdentifier is 128 bytes as * The VolumeIdentifier is 128 bytes as
* stored in the ISO9660 PrimaryVolumeDescriptor. * stored in the ISO9660 PrimaryVolumeDescriptor.
* Note that this is not a null terminated string. * Note that this is not a null terminated string.
* @param volsetid_size At most volsetid_size bytes will be copied to volse tid. * @param volsetid_size At most volsetid_size bytes will be copied to volse tid.
* @return 0 on success, -1 on error. * @return 0 on success, -1 on error.
*/ */
int DVDISOVolumeInfo( dvd_reader_t *, char *, unsigned int, int DVDISOVolumeInfo( dvd_reader_t *, char *, unsigned int,
unsigned char *, unsigned int ); unsigned char *, unsigned int );
/** /**
* Sets the level of caching that is done when reading from a device * Sets the level of caching that is done when reading from a device
* *
* @param dvd A read handle to get the disc ID from * @param dvd A read handle to get the disc ID from
* @param level The level of caching wanted. * @param level The level of caching wanted.
* -1 - returns the current setting. * -1 - returns the current setting.
* 0 - UDF Cache turned off. * 0 - UDF Cache turned off.
* 1 - (default level) Pointers to IFO files and some data fro m * 1 - (default level) Pointers to IFO files and some data fro m
* PrimaryVolumeDescriptor are cached. * PrimaryVolumeDescriptor are cached.
* *
* @return The level of caching. * @return The level of caching.
*/ */
int DVDUDFCacheLevel( dvd_reader_t *, int ); int DVDUDFCacheLevel( dvd_reader_t *, int );
#ifdef __cplusplus #ifdef __cplusplus
}; };
#endif #endif
#endif /* DVD_READER_H_INCLUDED */ #endif /* LIBDVDREAD_DVD_READER_H */
 End of changes. 12 change blocks. 
21 lines changed or deleted 59 lines changed or added


 dvd_udf.h   dvd_udf.h 
#ifndef DVD_UDF_H_INCLUDED
#define DVD_UDF_H_INCLUDED
/* /*
* This code is based on dvdudf by: * This code is based on dvdudf by:
* Christian Wolff <scarabaeus@convergence.de>. * Christian Wolff <scarabaeus@convergence.de>.
* *
* Modifications by: * Modifications by:
* Billy Biggs <vektor@dumbterm.net>. * Billy Biggs <vektor@dumbterm.net>.
* Bj * Björn Englund <d4bjorn@dtek.chalmers.se>.
* *
* dvdudf: parse and read the UDF volume information of a DVD Video * dvdudf: parse and read the UDF volume information of a DVD Video
* Copyright (C) 1999 Christian Wolff for convergence integrated media * Copyright (C) 1999 Christian Wolff for convergence integrated media
* GmbH The author can be reached at scarabaeus@convergence.de, the * GmbH The author can be reached at scarabaeus@convergence.de, the
* project's page is at http://linuxtv.org/dvd/ * project's page is at http://linuxtv.org/dvd/
* *
* This program is free software; you can redistribute it and/or modify * This file is part of libdvdread.
*
* libdvdread is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or (at * the Free Software Foundation; either version 2 of the License, or
* your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, but * libdvdread is distributed in the hope that it will be useful,
* WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License along
* along with this program; if not, write to the Free Software * with libdvdread; if not, write to the Free Software Foundation, Inc.,
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
* 02111-1307, USA. Or, point your browser to
* http://www.gnu.org/copyleft/gpl.html
*/ */
#ifndef LIBDVDREAD_DVD_UDF_H
#define LIBDVDREAD_DVD_UDF_H
#include <inttypes.h> #include <inttypes.h>
#include "dvd_reader.h" #include "dvdread/dvd_reader.h"
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
/** /**
* Looks for a file on the UDF disc/imagefile and returns the block number * Looks for a file on the UDF disc/imagefile and returns the block number
* where it begins, or 0 if it is not found. The filename should be an * where it begins, or 0 if it is not found. The filename should be an
* absolute pathname on the UDF filesystem, starting with '/'. For example , * absolute pathname on the UDF filesystem, starting with '/'. For example ,
* '/VIDEO_TS/VTS_01_1.IFO'. On success, filesize will be set to the size of * '/VIDEO_TS/VTS_01_1.IFO'. On success, filesize will be set to the size of
* the file in bytes. * the file in bytes.
*/ */
uint32_t UDFFindFile( dvd_reader_t *device, char *filename, uint32_t *size ); uint32_t UDFFindFile( dvd_reader_t *device, char *filename, uint32_t *size );
void FreeUDFCache(void *cache); void FreeUDFCache(void *cache);
int UDFGetVolumeIdentifier(dvd_reader_t *device, int UDFGetVolumeIdentifier(dvd_reader_t *device,
char *volid, unsigned int volid_size); char *volid, unsigned int volid_size);
int UDFGetVolumeSetIdentifier(dvd_reader_t *device, int UDFGetVolumeSetIdentifier(dvd_reader_t *device,
uint8_t *volsetid, unsigned int volsetid_size) ; uint8_t *volsetid, unsigned int volsetid_size );
void *GetUDFCacheHandle(dvd_reader_t *device); void *GetUDFCacheHandle(dvd_reader_t *device);
void SetUDFCacheHandle(dvd_reader_t *device, void *cache); void SetUDFCacheHandle(dvd_reader_t *device, void *cache);
#ifdef __cplusplus #ifdef __cplusplus
}; };
#endif #endif
#endif /* DVD_UDF_H_INCLUDED */ #endif /* LIBDVDREAD_DVD_UDF_H */
 End of changes. 10 change blocks. 
20 lines changed or deleted 20 lines changed or added


 ifo_print.h   ifo_print.h 
/* /*
* This program is free software; you can redistribute it and/or modify * This file is part of libdvdread.
*
* libdvdread is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * libdvdread is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License along
* along with this program; if not, write to the Free Software * with libdvdread; if not, write to the Free Software Foundation, Inc.,
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, U * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
SA
*
* $Id: ifo_print.h 1135 2008-09-06 21:55:51Z rathann $
*
*/ */
#ifndef IFO_PRINT_H_INCLUDED #ifndef LIBDVDREAD_IFO_PRINT_H
#define IFO_PRINT_H_INCLUDED #define LIBDVDREAD_IFO_PRINT_H
#include <inttypes.h> #include <inttypes.h>
#include "ifo_types.h" #include "ifo_types.h"
void ifo_print(dvd_reader_t *dvd, int title); void ifo_print(dvd_reader_t *dvd, int title);
void dvdread_print_time(dvd_time_t *dtime); void dvdread_print_time(dvd_time_t *dtime);
#endif /* IFO_PRINT_H_INCLUDED */ #endif /* LIBDVDREAD_IFO_PRINT_H */
/*
* $Log$
* Revision 1.1 2004/01/11 21:43:13 mroi
* big build system changes
* * cleaned up all Makefiles and added a Makefile.common
* * added relchk script
* * moved libdvdread files to a dvdread subdir
* * moved DVD VM to a vm subdir
* * removed unused code in read_cache.c
*
* Revision 1.4 2004/01/01 15:13:13 jcdutton
* Put ifo_print.c and .h back in.
*
* Revision 1.2 2003/04/28 15:17:17 jcdutton
* Update ifodump to work with new libdvdnav cvs, instead of needing libdvd
read.
*
* Revision 1.1.1.1 2002/08/28 09:48:35 jcdutton
* Initial import into CVS.
*
*
*
*/
 End of changes. 5 change blocks. 
11 lines changed or deleted 9 lines changed or added


 ifo_read.h   ifo_read.h 
#ifndef IFO_READ_H_INCLUDED
#define IFO_READ_H_INCLUDED
/* /*
* Copyright (C) 2000, 2001, 2002 Bj * Copyright (C) 2000, 2001, 2002 Björn Englund <d4bjorn@dtek.chalmers.se>,
* H * Håkan Hjort <d95hjort@dtek.chalmers.se>
*
* This file is part of libdvdread.
* *
* This program is free software; you can redistribute it and/or modify * libdvdread is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * libdvdread is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License along
* along with this program; if not, write to the Free Software * with libdvdread; if not, write to the Free Software Foundation, Inc.,
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
A
*/ */
#ifndef LIBDVDREAD_IFO_READ_H
#define LIBDVDREAD_IFO_READ_H
#include "ifo_types.h" #include "ifo_types.h"
#include "dvd_reader.h" #include "dvdread/dvd_reader.h"
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
/** /**
* handle = ifoOpen(dvd, title); * handle = ifoOpen(dvd, title);
* *
* Opens an IFO and reads in all the data for the IFO file corresponding to the * Opens an IFO and reads in all the data for the IFO file corresponding to the
* given title. If title 0 is given, the video manager IFO file is read. * given title. If title 0 is given, the video manager IFO file is read.
skipping to change at line 227 skipping to change at line 229
void ifoFree_VTS_TMAPT(ifo_handle_t *); void ifoFree_VTS_TMAPT(ifo_handle_t *);
void ifoFree_C_ADT(ifo_handle_t *); void ifoFree_C_ADT(ifo_handle_t *);
void ifoFree_TITLE_C_ADT(ifo_handle_t *); void ifoFree_TITLE_C_ADT(ifo_handle_t *);
void ifoFree_VOBU_ADMAP(ifo_handle_t *); void ifoFree_VOBU_ADMAP(ifo_handle_t *);
void ifoFree_TITLE_VOBU_ADMAP(ifo_handle_t *); void ifoFree_TITLE_VOBU_ADMAP(ifo_handle_t *);
void ifoFree_TXTDT_MGI(ifo_handle_t *); void ifoFree_TXTDT_MGI(ifo_handle_t *);
#ifdef __cplusplus #ifdef __cplusplus
}; };
#endif #endif
#endif /* IFO_READ_H_INCLUDED */ #endif /* LIBDVDREAD_IFO_READ_H */
 End of changes. 8 change blocks. 
12 lines changed or deleted 13 lines changed or added


 ifo_types.h   ifo_types.h 
#ifndef IFO_TYPES_H_INCLUDED
#define IFO_TYPES_H_INCLUDED
/* /*
* Copyright (C) 2000, 2001 Bj * Copyright (C) 2000, 2001 Björn Englund <d4bjorn@dtek.chalmers.se>,
* H * Håkan Hjort <d95hjort@dtek.chalmers.se>
*
* This file is part of libdvdread.
* *
* This program is free software; you can redistribute it and/or modify * libdvdread is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * libdvdread is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License along
* along with this program; if not, write to the Free Software * with libdvdread; if not, write to the Free Software Foundation, Inc.,
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
A
*/ */
#ifndef LIBDVDREAD_IFO_TYPES_H
#define LIBDVDREAD_IFO_TYPES_H
#include <inttypes.h> #include <inttypes.h>
#include "dvd_reader.h" #include "dvdread/dvd_reader.h"
#undef ATTRIBUTE_PACKED #undef ATTRIBUTE_PACKED
#undef PRAGMA_PACK_BEGIN #undef PRAGMA_PACK_BEGIN
#undef PRAGMA_PACK_END #undef PRAGMA_PACK_END
#if defined(__GNUC__) #if defined(__GNUC__)
#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95) #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95)
#define ATTRIBUTE_PACKED __attribute__ ((packed)) #define ATTRIBUTE_PACKED __attribute__ ((packed))
#define PRAGMA_PACK 0 #define PRAGMA_PACK 0
#endif #endif
skipping to change at line 119 skipping to change at line 121
unsigned char channel_assignment : 3; unsigned char channel_assignment : 3;
unsigned char version : 2; unsigned char version : 2;
unsigned char mc_intro : 1; /* probably 0: true, 1:false */ unsigned char mc_intro : 1; /* probably 0: true, 1:false */
unsigned char mode : 1; /* Karaoke mode 0: solo 1: duet */ unsigned char mode : 1; /* Karaoke mode 0: solo 1: duet */
} karaoke; } karaoke;
struct ATTRIBUTE_PACKED { struct ATTRIBUTE_PACKED {
unsigned char unknown5 : 4; unsigned char unknown5 : 4;
unsigned char dolby_encoded : 1; /* suitable for surround decodi ng */ unsigned char dolby_encoded : 1; /* suitable for surround decodi ng */
unsigned char unknown6 : 3; unsigned char unknown6 : 3;
} surround; } surround;
} app_info; } ATTRIBUTE_PACKED app_info;
} ATTRIBUTE_PACKED audio_attr_t; } ATTRIBUTE_PACKED audio_attr_t;
/** /**
* MultiChannel Extension * MultiChannel Extension
*/ */
typedef struct { typedef struct {
unsigned int zero1 : 7; unsigned int zero1 : 7;
unsigned int ach0_gme : 1; unsigned int ach0_gme : 1;
unsigned int zero2 : 7; unsigned int zero2 : 7;
skipping to change at line 204 skipping to change at line 206
/** /**
* Cell Playback Information. * Cell Playback Information.
*/ */
typedef struct { typedef struct {
unsigned int block_mode : 2; unsigned int block_mode : 2;
unsigned int block_type : 2; unsigned int block_type : 2;
unsigned int seamless_play : 1; unsigned int seamless_play : 1;
unsigned int interleaved : 1; unsigned int interleaved : 1;
unsigned int stc_discontinuity: 1; unsigned int stc_discontinuity: 1;
unsigned int seamless_angle : 1; unsigned int seamless_angle : 1;
unsigned int playback_mode : 1; /**< When set, enter StillMode after each VOBU */ unsigned int playback_mode : 1; /**< When set, enter StillMode after each VOBU */
unsigned int restricted : 1; /**< ?? drop out of fastforward? */ unsigned int restricted : 1; /**< ?? drop out of fastforward? */
unsigned int unknown2 : 6; unsigned int unknown2 : 6;
uint8_t still_time; uint8_t still_time;
uint8_t cell_cmd_nr; uint8_t cell_cmd_nr;
dvd_time_t playback_time; dvd_time_t playback_time;
uint32_t first_sector; uint32_t first_sector;
uint32_t first_ilvu_end_sector; uint32_t first_ilvu_end_sector;
uint32_t last_vobu_start_sector; uint32_t last_vobu_start_sector;
uint32_t last_sector; uint32_t last_sector;
skipping to change at line 463 skipping to change at line 466
uint16_t zero_1; uint16_t zero_1;
uint32_t last_byte; uint32_t last_byte;
title_info_t *title; title_info_t *title;
} ATTRIBUTE_PACKED tt_srpt_t; } ATTRIBUTE_PACKED tt_srpt_t;
#define TT_SRPT_SIZE 8U #define TT_SRPT_SIZE 8U
/** /**
* Parental Management Information Unit Table. * Parental Management Information Unit Table.
* Level 1 (US: G), ..., 7 (US: NC-17), 8 * Level 1 (US: G), ..., 7 (US: NC-17), 8
*/ */
typedef uint16_t pf_level_t[8]; #define PTL_MAIT_NUM_LEVEL 8
typedef uint16_t pf_level_t[PTL_MAIT_NUM_LEVEL];
/** /**
* Parental Management Information Unit Table. * Parental Management Information Unit Table.
*/ */
typedef struct { typedef struct {
uint16_t country_code; uint16_t country_code;
uint16_t zero_1; uint16_t zero_1;
uint16_t pf_ptl_mai_start_byte; uint16_t pf_ptl_mai_start_byte;
uint16_t zero_2; uint16_t zero_2;
pf_level_t *pf_ptl_mai; /* table of (nr_of_vtss + 1), video_ts is first * / pf_level_t *pf_ptl_mai; /* table of (nr_of_vtss + 1), video_ts is first * /
skipping to change at line 731 skipping to change at line 735
/* VTSI */ /* VTSI */
vtsi_mat_t *vtsi_mat; vtsi_mat_t *vtsi_mat;
vts_ptt_srpt_t *vts_ptt_srpt; vts_ptt_srpt_t *vts_ptt_srpt;
pgcit_t *vts_pgcit; pgcit_t *vts_pgcit;
vts_tmapt_t *vts_tmapt; vts_tmapt_t *vts_tmapt;
c_adt_t *vts_c_adt; c_adt_t *vts_c_adt;
vobu_admap_t *vts_vobu_admap; vobu_admap_t *vts_vobu_admap;
} ifo_handle_t; } ifo_handle_t;
#endif /* IFO_TYPES_H_INCLUDED */ #endif /* LIBDVDREAD_IFO_TYPES_H */
 End of changes. 11 change blocks. 
14 lines changed or deleted 17 lines changed or added


 nav_print.h   nav_print.h 
#ifndef NAV_PRINT_H_INCLUDED
#define NAV_PRINT_H_INCLUDED
/* /*
* Copyright (C) 2001, 2002 Billy Biggs <vektor@dumbterm.net>, * Copyright (C) 2001, 2002 Billy Biggs <vektor@dumbterm.net>,
* H * Håkan Hjort <d95hjort@dtek.chalmers.se>
*
* This file is part of libdvdread.
* *
* This program is free software; you can redistribute it and/or modify * libdvdread is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or (at * the Free Software Foundation; either version 2 of the License, or
* your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, but * libdvdread is distributed in the hope that it will be useful,
* WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License along
* along with this program; if not, write to the Free Software * with libdvdread; if not, write to the Free Software Foundation, Inc.,
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
A
*/ */
#ifndef LIBDVDREAD_NAV_PRINT_H
#define LIBDVDREAD_NAV_PRINT_H
#include "nav_types.h" #include "nav_types.h"
/** /**
* Pretty printing of the NAV packets, PCI and DSI structs. * Pretty printing of the NAV packets, PCI and DSI structs.
*/ */
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
skipping to change at line 50 skipping to change at line 52
/** /**
* Prints information contained in the DSI to stdout. * Prints information contained in the DSI to stdout.
* *
* @param dsi Pointer to the DSI data structure to be printed. * @param dsi Pointer to the DSI data structure to be printed.
*/ */
void navPrint_DSI(dsi_t *); void navPrint_DSI(dsi_t *);
#ifdef __cplusplus #ifdef __cplusplus
}; };
#endif #endif
#endif /* NAV_PRINT_H_INCLUDED */ #endif /* LIBDVDREAD_NAV_PRINT_H */
 End of changes. 7 change blocks. 
16 lines changed or deleted 17 lines changed or added


 nav_read.h   nav_read.h 
#ifndef NAV_READ_H_INCLUDED
#define NAV_READ_H_INCLUDED
/* /*
* Copyright (C) 2000, 2001, 2002 H * Copyright (C) 2000, 2001, 2002 Håkan Hjort <d95hjort@dtek.chalmers.se>.
*
* This file is part of libdvdread.
* *
* This program is free software; you can redistribute it and/or modify * libdvdread is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * libdvdread is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License along
* along with this program; if not, write to the Free Software * with libdvdread; if not, write to the Free Software Foundation, Inc.,
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
A
*/ */
#ifndef LIBDVDREAD_NAV_READ_H
#define LIBDVDREAD_NAV_READ_H
#include "nav_types.h" #include "nav_types.h"
/** /**
* Parsing of NAV data, PCI and DSI parts. * Parsing of NAV data, PCI and DSI parts.
*/ */
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
skipping to change at line 51 skipping to change at line 53
* Reads the DSI packet data pointed to into dsi struct. * Reads the DSI packet data pointed to into dsi struct.
* *
* @param dsi Pointer to the DSI data structure to be filled in. * @param dsi Pointer to the DSI data structure to be filled in.
* @param bufffer Pointer to the buffer of the on disc DSI data. * @param bufffer Pointer to the buffer of the on disc DSI data.
*/ */
void navRead_DSI(dsi_t *, unsigned char *); void navRead_DSI(dsi_t *, unsigned char *);
#ifdef __cplusplus #ifdef __cplusplus
}; };
#endif #endif
#endif /* NAV_READ_H_INCLUDED */ #endif /* LIBDVDREAD_NAV_READ_H */
 End of changes. 7 change blocks. 
10 lines changed or deleted 11 lines changed or added


 nav_types.h   nav_types.h 
#ifndef NAV_TYPES_H_INCLUDED
#define NAV_TYPES_H_INCLUDED
/* /*
* Copyright (C) 2000, 2001, 2002 H * Copyright (C) 2000, 2001, 2002 Håkan Hjort <d95hjort@dtek.chalmers.se>
* *
* The data structures in this file should represent the layout of the * The data structures in this file should represent the layout of the
* pci and dsi packets as they are stored in the stream. Information * pci and dsi packets as they are stored in the stream. Information
* found by reading the source to VOBDUMP is the base for the structure * found by reading the source to VOBDUMP is the base for the structure
* and names of these data types. * and names of these data types.
* *
* VOBDUMP: a program for examining DVD .VOB files. * VOBDUMP: a program for examining DVD .VOB files.
* Copyright 1998, 1999 Eric Smith <eric@brouhaha.com> * Copyright 1998, 1999 Eric Smith <eric@brouhaha.com>
* *
* VOBDUMP is free software; you can redistribute it and/or modify it * VOBDUMP is free software; you can redistribute it and/or modify it
skipping to change at line 27 skipping to change at line 24
* published by the Free Software Foundation. Note that I am not * published by the Free Software Foundation. Note that I am not
* granting permission to redistribute or modify VOBDUMP under the terms * granting permission to redistribute or modify VOBDUMP under the terms
* of any later version of the General Public License. * of any later version of the General Public License.
* *
* This program is distributed in the hope that it will be useful (or at * This program is distributed in the hope that it will be useful (or at
* least amusing), but WITHOUT ANY WARRANTY; without even the implied * least amusing), but WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
* the GNU General Public License for more details. * the GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software Foundation,
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
* USA
*/ */
#ifndef LIBDVDREAD_NAV_TYPES_H
#define LIBDVDREAD_NAV_TYPES_H
#include <inttypes.h> #include <inttypes.h>
#include "ifo_types.h" /* only dvd_time_t, vm_cmd_t and user_ops_t */ #include "ifo_types.h" /* only dvd_time_t, vm_cmd_t and user_ops_t */
/* The length including the substream id byte. */ /* The length including the substream id byte. */
#define PCI_BYTES 0x3d4 #define PCI_BYTES 0x3d4
#define DSI_BYTES 0x3fa #define DSI_BYTES 0x3fa
#define PS2_PCI_SUBSTREAM_ID 0x00 #define PS2_PCI_SUBSTREAM_ID 0x00
#define PS2_DSI_SUBSTREAM_ID 0x01 #define PS2_DSI_SUBSTREAM_ID 0x01
skipping to change at line 192 skipping to change at line 191
uint32_t vob_v_e_e_ptm; /**< video end ptm in vob */ uint32_t vob_v_e_e_ptm; /**< video end ptm in vob */
struct { struct {
uint32_t stp_ptm1; uint32_t stp_ptm1;
uint32_t stp_ptm2; uint32_t stp_ptm2;
uint32_t gap_len1; uint32_t gap_len1;
uint32_t gap_len2; uint32_t gap_len2;
} vob_a[8]; } vob_a[8];
} ATTRIBUTE_PACKED sml_pbi_t; } ATTRIBUTE_PACKED sml_pbi_t;
/** /**
* Seamless Angle Infromation for one angle * Seamless Angle Information for one angle
*/ */
typedef struct { typedef struct {
uint32_t address; /**< offset to next ILVU, high bit is before/after */ uint32_t address; /**< offset to next ILVU, high bit is before/after */
uint16_t size; /**< byte size of the ILVU pointed to by address */ uint16_t size; /**< byte size of the ILVU pointed to by address */
} ATTRIBUTE_PACKED sml_agl_data_t; } ATTRIBUTE_PACKED sml_agl_data_t;
/** /**
* Seamless Angle Infromation * Seamless Angle Information
*/ */
typedef struct { typedef struct {
sml_agl_data_t data[9]; sml_agl_data_t data[9];
} ATTRIBUTE_PACKED sml_agli_t; } ATTRIBUTE_PACKED sml_agli_t;
/** /**
* VOBU Search Information * VOBU Search Information
*/ */
typedef struct { typedef struct {
uint32_t next_video; /**< Next vobu that contains video */ uint32_t next_video; /**< Next vobu that contains video */
skipping to change at line 244 skipping to change at line 243
sml_agli_t sml_agli; sml_agli_t sml_agli;
vobu_sri_t vobu_sri; vobu_sri_t vobu_sri;
synci_t synci; synci_t synci;
uint8_t zero1[471]; uint8_t zero1[471];
} ATTRIBUTE_PACKED dsi_t; } ATTRIBUTE_PACKED dsi_t;
#if PRAGMA_PACK #if PRAGMA_PACK
#pragma pack() #pragma pack()
#endif #endif
#endif /* NAV_TYPES_H_INCLUDED */ #endif /* LIBDVDREAD_NAV_TYPES_H */
 End of changes. 8 change blocks. 
11 lines changed or deleted 10 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/