dvd_udf.c File Reference

Go to the source code of this file.

Classes

struct  Partition
struct  AD
struct  extent_ad
struct  avdp_t
struct  pvd_t
struct  lbudf
struct  icbmap
struct  udf_cache

Enumerations

enum  UDFCacheType {
  PartitionCache, RootICBCache, LBUDFCache, MapCache,
  AVDPCache, PVDCache
}

Functions

static int DVDReadLBUDF (dvd_reader_t *device, uint32_t lb_number, size_t block_count, unsigned char *data, int encrypted)
void FreeUDFCache (void *cache)
static int GetUDFCache (dvd_reader_t *device, UDFCacheType type, uint32_t nr, void *data)
static int SetUDFCache (dvd_reader_t *device, UDFCacheType type, uint32_t nr, void *data)
static int Unicodedecode (uint8_t *data, int len, char *target)
static int UDFDescriptor (uint8_t *data, uint16_t *TagID)
static int UDFExtentAD (uint8_t *data, uint32_t *Length, uint32_t *Location)
static int UDFShortAD (uint8_t *data, struct AD *ad, struct Partition *partition)
static int UDFLongAD (uint8_t *data, struct AD *ad)
static int UDFExtAD (uint8_t *data, struct AD *ad)
static int UDFICB (uint8_t *data, uint8_t *FileType, uint16_t *Flags)
static int UDFPartition (uint8_t *data, uint16_t *Flags, uint16_t *Number, char *Contents, uint32_t *Start, uint32_t *Length)
static int UDFLogVolume (uint8_t *data, char *VolumeDescriptor)
 Reads the volume descriptor and checks the parameters.
static int UDFFileEntry (uint8_t *data, uint8_t *FileType, struct Partition *partition, struct AD *ad)
static int UDFFileIdentifier (uint8_t *data, uint8_t *FileCharacteristics, char *FileName, struct AD *FileICB)
static int UDFMapICB (dvd_reader_t *device, struct AD ICB, uint8_t *FileType, struct Partition *partition, struct AD *File)
 Maps ICB to FileAD ICB: Location of ICB of directory to scan FileType: Type of the file File: Location of file the ICB is pointing to return 1 on success, 0 on error;.
static int UDFScanDir (dvd_reader_t *device, struct AD Dir, char *FileName, struct Partition *partition, struct AD *FileICB, int cache_file_info)
 Dir: Location of directory to scan FileName: Name of file to look for FileICB: Location of ICB of the found file return 1 on success, 0 on error;.
static int UDFGetAVDP (dvd_reader_t *device, struct avdp_t *avdp)
static int UDFFindPartition (dvd_reader_t *device, int partnum, struct Partition *part)
 Looks for partition on the disc.
uint32_t UDFFindFile (dvd_reader_t *device, char *filename, uint32_t *filesize)
 Looks for a file on the UDF disc/imagefile and returns the block number where it begins, or 0 if it is not found.
static int UDFGetDescriptor (dvd_reader_t *device, int id, uint8_t *descriptor, int bufsize)
 Gets a Descriptor .
static int UDFGetPVD (dvd_reader_t *device, struct pvd_t *pvd)
int UDFGetVolumeIdentifier (dvd_reader_t *device, char *volid, unsigned int volid_size)
 Gets the Volume Identifier string, in 8bit unicode (latin-1) volid, place to put the string volid_size, size of the buffer volid points to returns the size of buffer needed for all data.
int UDFGetVolumeSetIdentifier (dvd_reader_t *device, uint8_t *volsetid, unsigned int volsetid_size)
 Gets the Volume Set Identifier, as a 128-byte dstring (not decoded) WARNING This is not a null terminated string volsetid, place to put the data volsetid_size, size of the buffer volsetid points to the buffer should be >=128 bytes to store the whole volumesetidentifier returns the size of the available volsetid information (128) or 0 on error.

Enumeration Type Documentation

Enumerator:
PartitionCache 
RootICBCache 
LBUDFCache 
MapCache 
AVDPCache 
PVDCache 

Definition at line 135 of file dvd_udf.c.


Function Documentation

static int DVDReadLBUDF ( dvd_reader_t device,
uint32_t  lb_number,
size_t  block_count,
unsigned char *  data,
int  encrypted 
) [static]
void FreeUDFCache ( void *  cache  ) 

Definition at line 139 of file dvd_udf.c.

Referenced by DVDClose().

static int GetUDFCache ( dvd_reader_t device,
UDFCacheType  type,
uint32_t  nr,
void *  data 
) [static]

Definition at line 157 of file dvd_udf.c.

Referenced by UDFFindFile(), UDFGetAVDP(), UDFGetPVD(), UDFMapICB(), and UDFScanDir().

static int SetUDFCache ( dvd_reader_t device,
UDFCacheType  type,
uint32_t  nr,
void *  data 
) [static]

Definition at line 219 of file dvd_udf.c.

Referenced by UDFFindFile(), UDFGetAVDP(), UDFGetPVD(), UDFMapICB(), and UDFScanDir().

static int Unicodedecode ( uint8_t data,
int  len,
char *  target 
) [static]

Definition at line 329 of file dvd_udf.c.

Referenced by UDFFileIdentifier(), UDFGetVolumeIdentifier(), and UDFLogVolume().

static int UDFDescriptor ( uint8_t data,
uint16_t TagID 
) [static]
static int UDFExtentAD ( uint8_t data,
uint32_t Length,
uint32_t Location 
) [static]

Definition at line 352 of file dvd_udf.c.

Referenced by UDFGetAVDP().

static int UDFShortAD ( uint8_t data,
struct AD ad,
struct Partition partition 
) [static]

Definition at line 359 of file dvd_udf.c.

Referenced by UDFFileEntry().

static int UDFLongAD ( uint8_t data,
struct AD ad 
) [static]

Definition at line 370 of file dvd_udf.c.

Referenced by UDFFileEntry(), UDFFileIdentifier(), and UDFFindFile().

static int UDFExtAD ( uint8_t data,
struct AD ad 
) [static]

Definition at line 381 of file dvd_udf.c.

Referenced by UDFFileEntry().

static int UDFICB ( uint8_t data,
uint8_t FileType,
uint16_t Flags 
) [static]

Definition at line 392 of file dvd_udf.c.

Referenced by UDFFileEntry().

static int UDFPartition ( uint8_t data,
uint16_t Flags,
uint16_t Number,
char *  Contents,
uint32_t Start,
uint32_t Length 
) [static]

Definition at line 400 of file dvd_udf.c.

Referenced by UDFFindPartition().

static int UDFLogVolume ( uint8_t data,
char *  VolumeDescriptor 
) [static]

Reads the volume descriptor and checks the parameters.

Returns 0 on OK, 1 on error.

Definition at line 415 of file dvd_udf.c.

Referenced by UDFFindPartition().

static int UDFFileEntry ( uint8_t data,
uint8_t FileType,
struct Partition partition,
struct AD ad 
) [static]

Definition at line 426 of file dvd_udf.c.

Referenced by UDFMapICB().

static int UDFFileIdentifier ( uint8_t data,
uint8_t FileCharacteristics,
char *  FileName,
struct AD FileICB 
) [static]

Definition at line 484 of file dvd_udf.c.

Referenced by UDFScanDir().

static int UDFMapICB ( dvd_reader_t device,
struct AD  ICB,
uint8_t FileType,
struct Partition partition,
struct AD File 
) [static]

Maps ICB to FileAD ICB: Location of ICB of directory to scan FileType: Type of the file File: Location of file the ICB is pointing to return 1 on success, 0 on error;.

Definition at line 507 of file dvd_udf.c.

Referenced by UDFFindFile(), and UDFScanDir().

static int UDFScanDir ( dvd_reader_t device,
struct AD  Dir,
char *  FileName,
struct Partition partition,
struct AD FileICB,
int  cache_file_info 
) [static]

Dir: Location of directory to scan FileName: Name of file to look for FileICB: Location of ICB of the found file return 1 on success, 0 on error;.

Definition at line 549 of file dvd_udf.c.

Referenced by UDFFindFile().

static int UDFGetAVDP ( dvd_reader_t device,
struct avdp_t avdp 
) [static]

Definition at line 660 of file dvd_udf.c.

Referenced by UDFFindPartition(), and UDFGetDescriptor().

static int UDFFindPartition ( dvd_reader_t device,
int  partnum,
struct Partition part 
) [static]

Looks for partition on the disc.

Returns 1 if partition found, 0 on error. partnum: Number of the partition, starting at 0. part: structure to fill with the partition information

Definition at line 728 of file dvd_udf.c.

Referenced by UDFFindFile().

uint32_t UDFFindFile ( dvd_reader_t device,
char *  filename,
uint32_t size 
)

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 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 the file in bytes.

Definition at line 787 of file dvd_udf.c.

Referenced by DVDFileStat(), DVDFileStatVOBUDF(), DVDOpenFileUDF(), DVDOpenVOBUDF(), and initAllCSSKeys().

static int UDFGetDescriptor ( dvd_reader_t device,
int  id,
uint8_t descriptor,
int  bufsize 
) [static]

Gets a Descriptor .

Returns 1 if descriptor found, 0 on error. id, tagid of descriptor bufsize, size of BlockBuf (must be >= DVD_VIDEO_LB_LEN).

Definition at line 874 of file dvd_udf.c.

Referenced by UDFGetPVD().

static int UDFGetPVD ( dvd_reader_t device,
struct pvd_t pvd 
) [static]

Definition at line 924 of file dvd_udf.c.

Referenced by UDFGetVolumeIdentifier(), and UDFGetVolumeSetIdentifier().

int UDFGetVolumeIdentifier ( dvd_reader_t device,
char *  volid,
unsigned int  volid_size 
)

Gets the Volume Identifier string, in 8bit unicode (latin-1) volid, place to put the string volid_size, size of the buffer volid points to returns the size of buffer needed for all data.

Definition at line 946 of file dvd_udf.c.

Referenced by DVDUDFVolumeInfo().

int UDFGetVolumeSetIdentifier ( dvd_reader_t device,
uint8_t volsetid,
unsigned int  volsetid_size 
)

Gets the Volume Set Identifier, as a 128-byte dstring (not decoded) WARNING This is not a null terminated string volsetid, place to put the data volsetid_size, size of the buffer volsetid points to the buffer should be >=128 bytes to store the whole volumesetidentifier returns the size of the available volsetid information (128) or 0 on error.

Definition at line 976 of file dvd_udf.c.

Referenced by DVDUDFVolumeInfo().

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends
Generated on Mon May 28 06:41:47 2012 for MythTV by  doxygen 1.6.3