Enum DVDValidUOPFlag
- Namespace
- VisioForge.Core.Types.MediaInfo
- Assembly
- VisioForge.Core.dll
Defines User Operation Prohibition (UOP) flags that indicate which user operations are currently prohibited during DVD playback.
[Flags]
public enum DVDValidUOPFlagFields
None = 0-
No operations are prohibited. All user operations are allowed.
This value indicates complete freedom of navigation and control. It's typically used during normal movie playback where viewers have full control over all DVD features.
PlayTitleOrAtTime = 1-
Prohibits jumping to a specific title or time position using time search functionality.
When set, prevents users from using "Go to time" features or direct title selection by number. This is often used to force sequential viewing of content.
PlayChapter = 2-
Prohibits direct chapter selection or jumping to a specific chapter by number.
Prevents users from using chapter selection menus or entering chapter numbers directly. Commonly used during credits or copyright notices to prevent skipping.
PlayTitle = 4-
Prohibits playing a different title from the current one.
When set, users cannot switch to other titles on the disc. This ensures viewers complete the current title before accessing other content like special features.
Stop = 8-
Prohibits the stop operation, forcing playback to continue.
This is rarely used as it can trap users in playback. When set, the stop button is disabled and users must wait for playback to complete or use other allowed navigation.
ReturnFromSubMenu = 16-
Prohibits returning from a submenu to the parent menu using the return/back function.
Forces users to make a selection in the current submenu rather than backing out. Often used in configuration menus where a selection is required.
PlayChapterOrAtTime = 32-
Prohibits playing from a specific chapter or time position within the current title.
Similar to PlayTitleOrAtTime but restricted to navigation within the current title. Prevents time-based seeking while allowing other forms of navigation.
PlayPrevOrReplay_Chapter = 64-
Prohibits playing the previous chapter or replaying the current chapter from the beginning.
When set, the "Previous Chapter" button is disabled. This prevents users from navigating backward through chapters or restarting the current chapter.
PlayNextChapter = 128-
Prohibits skipping to the next chapter using the "Next Chapter" function.
Commonly used during opening credits, copyright notices, or advertisements to prevent users from skipping ahead. One of the most frequently encountered UOPs.
PlayForwards = 256-
Prohibits fast forward scanning through the content.
Disables all forward scanning speeds (2x, 4x, 8x, etc.). Often used during copyright warnings and studio logos to ensure they are viewed at normal speed.
PlayBackwards = 512-
Prohibits reverse scanning or playing backward through the content.
Disables all reverse scanning speeds. Less commonly used than forward prohibition, but may be set during menus or special features where reverse playback doesn't make sense.
ShowMenuTitle = 1024-
Prohibits displaying the title menu (main menu) of the DVD.
When set, users cannot access the main DVD menu using the "Menu" or "Title" button. This forces viewers to remain in the current playback mode without menu access.
ShowMenuRoot = 2048-
Prohibits displaying the root menu (top menu) of the current title.
The root menu is typically the first menu shown when entering a title's menu system. Prohibiting this prevents users from accessing the top-level navigation of the current title.
ShowMenuSubPic = 4096-
Prohibits displaying the subpicture (subtitle) selection menu.
Prevents users from accessing subtitle options during playback. This might be used during scenes where subtitle changes could interfere with burned-in text or graphics.
ShowMenuAudio = 8192-
Prohibits displaying the audio stream selection menu.
Prevents users from changing audio tracks (language, commentary) during playback. May be used during scenes with specialized audio or when audio switching could cause issues.
ShowMenuAngle = 16384-
Prohibits displaying the angle selection menu for multi-angle scenes.
Prevents access to angle selection menus. Typically set when not in a multi-angle scene or when angle changes would disrupt the viewing experience.
ShowMenuChapter = 32768-
Prohibits displaying the chapter selection menu (scene selection).
Prevents users from accessing chapter/scene selection menus. Often used to ensure linear viewing of content or during special features without chapter divisions.
Resume = 65536-
Prohibits resuming playback from a saved position after entering a menu.
When set, the "Resume" function is disabled. Users must restart playback from the beginning or make a new selection rather than continuing from where they left off.
SelectOrActivateButton = 131072-
Prohibits selecting or activating buttons in interactive menus.
This effectively freezes menu interaction, preventing users from making selections. Rarely used, as it can leave users stuck. May be used during menu transitions.
StillOff = 262144-
Prohibits exiting from a still frame (pause) condition.
When set during a still frame, users cannot resume playback. The still frame must timeout automatically or be released by the DVD navigation programming.
PauseOn = 524288-
Prohibits pausing the playback.
Disables the pause function, forcing continuous playback. May be used during time-critical content or interactive features that shouldn't be interrupted.
SelectAudioStream = 1048576-
Prohibits changing the audio stream using the audio button or direct selection.
Prevents switching between different audio tracks (languages, commentary tracks) during playback. Unlike ShowMenuAudio, this blocks direct audio switching without menu access.
SelectSubPicStream = 2097152-
Prohibits changing the subpicture (subtitle) stream using the subtitle button.
Prevents direct subtitle track switching during playback. Users cannot cycle through available subtitle languages or turn subtitles on/off without menu access.
SelectAngle = 4194304-
Prohibits changing the viewing angle during multi-angle scenes.
Disables the angle button during multi-angle sequences. Set when angle changes are not available or would disrupt the intended viewing experience.
SelectKaraokeAudioPresentationMode = 8388608-
Prohibits changing karaoke audio presentation modes.
Specific to karaoke DVDs, this prevents users from switching between different karaoke modes (guide melody on/off, vocal assistance levels, etc.).
SelectVideoModePreference = 16777216-
Prohibits changing video presentation mode preferences.
Prevents users from changing aspect ratio preferences, pan-scan/letterbox modes, or other video presentation settings during playback.
Examples
// Check which operations are currently allowed
void CheckAllowedOperations(DVDValidUOPFlag currentUOPs)
{
// Check if user can skip to next chapter
if ((currentUOPs & DVDValidUOPFlag.PlayNextChapter) == 0)
{
Console.WriteLine("Next chapter navigation is allowed");
EnableNextChapterButton();
}
else
{
Console.WriteLine("Next chapter navigation is prohibited");
DisableNextChapterButton();
}
// Check if fast forward is allowed
if ((currentUOPs & DVDValidUOPFlag.PlayForwards) == 0)
{
EnableFastForwardButton();
}
// Check if menu access is allowed
if ((currentUOPs & DVDValidUOPFlag.ShowMenuTitle) == 0 &&
(currentUOPs & DVDValidUOPFlag.ShowMenuRoot) == 0)
{
EnableMenuButton();
}
}
// Handle typical FBI warning UOPs
void SetFBIWarningUOPs()
{
// During FBI warning, typically only Stop is allowed
DVDValidUOPFlag warningUOPs =
DVDValidUOPFlag.PlayTitleOrAtTime |
DVDValidUOPFlag.PlayChapter |
DVDValidUOPFlag.PlayTitle |
DVDValidUOPFlag.ReturnFromSubMenu |
DVDValidUOPFlag.PlayChapterOrAtTime |
DVDValidUOPFlag.PlayPrevOrReplay_Chapter |
DVDValidUOPFlag.PlayNextChapter |
DVDValidUOPFlag.PlayForwards |
DVDValidUOPFlag.PlayBackwards |
DVDValidUOPFlag.ShowMenuTitle |
DVDValidUOPFlag.ShowMenuRoot |
DVDValidUOPFlag.Resume;
// Only Stop operation is not set (allowed)
ApplyUOPs(warningUOPs);
}
Remarks
User Operation Prohibitions (UOPs) are a fundamental part of the DVD specification that allow content authors to control which operations viewers can perform at specific points during playback. These flags are stored in the DVD's navigation data and change dynamically as playback progresses.
Understanding UOP Flags:
When a flag is SET (1), the operation is PROHIBITED (not allowed).
When a flag is CLEAR (0), the operation is PERMITTED (allowed).
This might seem counterintuitive, but it follows the DVD specification's design.
Common UOP Scenarios:
- FBI Warnings/Copyright Notices: Often prohibit all operations except Stop
- Opening Credits: May prohibit fast forward and chapter skip
- Interactive Menus: Prohibit angle changes and audio switching
- Bonus Features: May prohibit returning to main menu
- Multi-angle Scenes: Allow angle switching only during specific segments
Technical Implementation:
UOP flags are stored in the Navigation Pack (NAV_PACK) of each Video Object Unit (VOBU).
The DVD player checks these flags before executing any user command and blocks operations
that are currently prohibited. This system ensures a controlled viewing experience as
intended by the content authors.
User Experience Considerations:
While UOPs provide control to content authors, excessive use can frustrate viewers.
Many DVDs are criticized for prohibiting skip operations during lengthy copyright warnings
or studio logos. Modern streaming services have largely abandoned such restrictions in
favor of better user experience.