namespace SabreTools.Models.DVD
{
///
public sealed class VideoManagerIFO
{
///
/// "DVDVIDEO-VMG"
///
public string? Signature { get; set; }
///
/// Last sector of VMG set (last sector of BUP)
///
public uint LastVMGSetSector { get; set; }
///
/// Last sector of IFO
///
public uint LastIFOSector { get; set; }
///
/// Version number
/// - Byte 0 - Reserved, should be 0
/// - Byte 1, Bits 7-4 - Major version number
/// - Byte 1, Bits 3-0 - Minor version number
///
public ushort VersionNumber { get; set; }
///
/// VMG category
///
/// byte1=prohibited region mask
public uint VMGCategory { get; set; }
///
/// Number of volumes
///
public ushort NumberOfVolumes { get; set; }
///
/// Volume number
///
public ushort VolumeNumber { get; set; }
///
/// Side ID
///
public byte SideID { get; set; }
///
/// Number of title sets
///
public ushort NumberOfTitleSets { get; set; }
///
/// Provider ID
///
public byte[]? ProviderID { get; set; }
///
/// VMG POS
///
public ulong VMGPOS { get; set; }
///
/// End byte address of VMGI_MAT
///
public uint InformationManagementTableEndByteAddress { get; set; }
///
/// Start address of FP_PGC (First Play program chain)
///
public uint FirstPlayProgramChainStartAddress { get; set; }
///
/// Start sector of Menu VOB
///
public uint MenuVOBStartSector { get; set; }
///
/// Sector pointer to TT_SRPT (table of titles)
///
public uint TableOfTitlesSectorPointer { get; set; }
///
/// Sector pointer to VMGM_PGCI_UT (Menu Program Chain table)
///
public uint MenuProgramChainTableSectorPointer { get; set; }
///
/// Sector pointer to VMG_PTL_MAIT (Parental Management masks)
///
public uint ParentalManagementMasksSectorPointer { get; set; }
///
/// Sector pointer to VMG_VTS_ATRT (copies of VTS audio/sub-picture attributes)
///
public uint AudioSubPictureAttributesSectorPointer { get; set; }
///
/// Sector pointer to VMG_TXTDT_MG (text data)
///
public uint TextDataSectorPointer { get; set; }
///
/// Sector pointer to VMGM_C_ADT (menu cell address table)
///
public uint MenuCellAddressTableSectorPointer { get; set; }
///
/// Sector pointer to VMGM_VOBU_ADMAP (menu VOBU address map)
///
public uint MenuVOBUAddressMapSectorPointer { get; set; }
///
/// Video attributes of VMGM_VOBS
///
public byte[]? VideoAttributes { get; set; }
///
/// Number of audio streams in VMGM_VOBS
///
public ushort NumberOfAudioStreams { get; set; }
///
/// Audio attributes of VMGM_VOBS
///
public byte[][]? AudioAttributes { get; set; }
///
/// Unknown
///
public byte[]? Unknown { get; set; }
///
/// Number of subpicture streams in VMGM_VOBS (0 or 1)
///
public ushort NumberOfSubpictureStreams { get; set; }
///
/// Subpicture attributes of VMGM_VOBS
///
public byte[]? SubpictureAttributes { get; set; }
///
/// Reserved
///
public byte[]? Reserved { get; set; }
}
}