const unsigned reg_s8_button_mult = 0x400;
// Maximum number of PGCs in a domain that can be linked to.
- // dvdauthor uses some menu numbers for special purposes,
- // resulting in a practical limit of 119 per domain.
- const unsigned domain_pgcs_max = 119;
+ const unsigned domain_pgcs_max = 127;
// Maximum number of titles on a disc. (Also the maximum number of
// titlesets per disc.)
oss << "exceeded DVD limit: " << limit_type << " > " << limit;
throw std::length_error(oss.str());
}
+
+ // dvdauthor uses some menu numbers to represent entry points -
+ // distinct from the actual numbers of the menus assigned as those
+ // entry points - resulting in a practical limit of 119 per
+ // domain. This seems to be an oddity of the parser that could be
+ // fixed, but for now we'll have to work with it.
+ const unsigned dvdauthor_anonymous_menus_max = dvd::domain_pgcs_max - 8;
}
dvd_generator::dvd_generator(const video::frame_params & frame_params,
{
pgc_ref next_menu(menu_pgc, menus_.size());
- if (next_menu.index == dvd::domain_pgcs_max)
- throw_length_error("number of menus", dvd::domain_pgcs_max);
+ if (next_menu.index == dvdauthor_anonymous_menus_max)
+ throw_length_error("number of menus", dvdauthor_anonymous_menus_max);
menus_.resize(next_menu.index + 1);
return next_menu;