]> git.decadent.org.uk Git - videolink.git/blobdiff - generate_dvd.cpp
Updated for experimental version using XULRunner 1.9.
[videolink.git] / generate_dvd.cpp
index 45e9ca6d8a3f2d35583c88b763f26785baf3a6d1..d5185c2702e6fa88926800ac62c03429d6df6f86 100644 (file)
@@ -211,11 +211,15 @@ void dvd_generator::generate_menu_vob(unsigned index,
                }
            }
        }
+       // Pad vertically to even y coordinates since dvdauthor claims
+       // odd values may result in incorrect display.
+       // XXX This may cause overlappping where it wasn't previously
+       // a problem.
        spumux_file << "      <button"
            " x0='" << this_entry.area.left << "'"
-           " y0='" << this_entry.area.top << "'"
+           " y0='" << (this_entry.area.top & ~1) << "'"
            " x1='" << this_entry.area.right << "'"
-           " y1='" << this_entry.area.bottom << "'"
+           " y1='" << ((this_entry.area.bottom + 1) & ~1) << "'"
            " left='" << (i == 0 ? button_count : i) << "'"
            " right='" << 1 + (i + 1) % button_count << "'"
            " up='" << 1 + up_button << "'"
@@ -372,8 +376,9 @@ void dvd_generator::generate(const std::string & output_dir) const
        const unsigned menu_begin = titleset_num * dvdauthor_anonymous_menus_max;
        const unsigned menu_end =
            have_real_menus
-           ? std::min((titleset_num + 1) * dvdauthor_anonymous_menus_max,
-                      menus_.size())
+           ? std::min<unsigned>(
+               (titleset_num + 1) * dvdauthor_anonymous_menus_max,
+               menus_.size())
            : menu_begin + 1;
 
        for (unsigned menu_index = menu_begin;