From 4b8bff9ce93df43b120c5cf4d1476d3a435f99d3 Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Wed, 9 Aug 2006 01:42:07 +0000 Subject: [PATCH] Renamed package due to name clash. --- COPYING | 6 ++-- INSTALL | 8 ++--- Makefile | 24 +++++++-------- README | 37 ++++++++++++----------- debian/control | 8 ++--- debian/rules | 8 ++--- debian/{webdvd.docs => videolink.docs} | 0 generate_dvd.cpp | 4 +-- null_prompt_service.cpp | 2 +- webdvd.cpp => videolink.cpp | 42 +++++++++++++------------- webdvd.css => videolink.css | 0 videolink.hpp | 8 +++++ webdvd.hpp | 8 ----- 13 files changed, 79 insertions(+), 76 deletions(-) rename debian/{webdvd.docs => videolink.docs} (100%) rename webdvd.cpp => videolink.cpp (96%) rename webdvd.css => videolink.css (100%) create mode 100644 videolink.hpp delete mode 100644 webdvd.hpp diff --git a/COPYING b/COPYING index a115095..d7bc9df 100644 --- a/COPYING +++ b/COPYING @@ -1,11 +1,11 @@ -WebDVD is licenced under the GNU GPL, version 2, with the following +VideoLink is licenced under the GNU GPL, version 2, with the following additions: -A. You may combine and distribute WebDVD and derivative works with +A. You may combine and distribute VideoLink and derivative works with libraries licenced under the GNU LGPL without exercising the option to treat them as licenced under the GPL. -B. When distributing WebDVD or derivative works without source code +B. When distributing VideoLink or derivative works without source code included you must ensure that the documentation retains the notice that "this software is based in part on the work of the Independent JPEG Group", or else remove the code contained in jquant2.c to which that diff --git a/INSTALL b/INSTALL index e272e3d..61da855 100644 --- a/INSTALL +++ b/INSTALL @@ -1,8 +1,8 @@ -Building WebDVD -=============== +Building VideoLink +================== -WebDVD is written in C++ and requires a recent C++ compiler e.g. g++ -3.3. +VideoLink is written in C++ and requires a recent C++ compiler +e.g. g++ 3.3. It requires headers and libraries for Boost, gtkmm, Mozilla and expat. I have developed and tested it with Boost 1.32, gtkmm 2.2.12, Mozilla diff --git a/Makefile b/Makefile index bc26293..671ba39 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ prefix := /usr/local -webdvd_lib_dir := $(prefix)/lib/webdvd +videolink_lib_dir := $(prefix)/lib/videolink moz_include_dir := \ $(shell pkg-config --variable=prefix mozilla-gtkmozembed)/include/mozilla @@ -33,46 +33,46 @@ endif cxxsources := \ auto_proc.cpp browser_widget.cpp child_iterator.cpp generate_dvd.cpp \ link_iterator.cpp null_prompt_service.cpp pixbufs.cpp style_sheets.cpp \ - temp_file.cpp video.cpp vob_list.cpp webdvd.cpp x_frame_buffer.cpp \ + temp_file.cpp video.cpp vob_list.cpp videolink.cpp x_frame_buffer.cpp \ xml_utils.cpp xpcom_support.cpp csources := jquant2.c -webdvd : $(cxxsources:%.cpp=.objs/%.o) $(csources:%.c=.objs/%.o) +videolink : $(cxxsources:%.cpp=.objs/%.o) $(csources:%.c=.objs/%.o) $(CXX) $(LDFLAGS) -o $@ $^ clean : rm -rf .objs - rm -f webdvd *~ .\#* *.orig *.rej svn-commit*.tmp + rm -f videolink *~ .\#* *.orig *.rej svn-commit*.tmp distclean : clean rm -rf .svn install : - mkdir -p -m 755 $(prefix)/bin $(prefix)/lib/webdvd - install -m 755 -s webdvd $(prefix)/bin - install -m 644 webdvd.css $(prefix)/lib/webdvd + mkdir -p -m 755 $(prefix)/bin $(videolink_lib_dir) + install -m 755 -s videolink $(prefix)/bin + install -m 644 videolink.css $(videolink_lib_dir) .PHONY : clean distclean install .objs/browser_widget.% : CPPFLAGS += -DMOZ_LIB_DIR='"$(moz_lib_dir)"' -.objs/webdvd.% \ - : CPPFLAGS += -DWEBDVD_LIB_DIR='"$(webdvd_lib_dir)"' \ +.objs/videolink.% \ + : CPPFLAGS += -DVIDEOLINK_LIB_DIR='"$(videolink_lib_dir)"' \ -DMOZ_VERSION_MAJOR=$(moz_version_major) \ -DMOZ_VERSION_MINOR=$(moz_version_minor) \ -DMOZ_VERSION_PATCHLEVEL=$(moz_version_patchlevel) .objs/browser_widget.% .objs/generate_dvd.% .objs/pixbufs.% \ -.objs/temp_file.% .objs/vob_list.% .objs/webdvd.% \ +.objs/temp_file.% .objs/vob_list.% .objs/videolink.% \ : CPPFLAGS += $(shell pkg-config --cflags gtkmm-2.0) .objs/browser_widget.% .objs/child_iterator.% .objs/link_iterator.% \ -.objs/null_prompt_service.% .objs/style_sheets.% .objs/webdvd.% \ +.objs/null_prompt_service.% .objs/style_sheets.% .objs/videolink.% \ .objs/xpcom_support.% \ : CPPFLAGS += $(shell pkg-config --cflags mozilla-gtkmozembed) # These dig a bit deeper into Mozilla -.objs/link_iterator.% .objs/style_sheets.% .objs/webdvd.% \ +.objs/link_iterator.% .objs/style_sheets.% .objs/videolink.% \ : CPPFLAGS += $(addprefix -I$(moz_include_dir)/, \ content docshell dom gfx layout necko webshell widget) diff --git a/README b/README index e209fff..dfa4ff5 100644 --- a/README +++ b/README @@ -1,16 +1,19 @@ -WebDVD -====== +VideoLink +========= -WebDVD is intended to provide a simple way of producing DVDs with +VideoLink is intended to provide a simple way of producing DVDs with attractive and usable menus. It converts HTML pages into DVD menus by rendering them in Mozilla and reproducing their link structure. This allows you to design DVDs using familiar HTML editing tools or your favourite text editor. +Prior to version 0.8, VideoLink was called WebDVD, but that name is +also used for an extended DVD format. + Requirements ------------ -WebDVD depends on the following software: +VideoLink depends on the following software: - dvdauthor - expat 1.x @@ -91,19 +94,19 @@ Currently Preview -To get a rough preview of the menus, run "webdvd --preview menu-url" +To get a rough preview of the menus, run "videolink --preview menu-url" where menu-url is the URL or filename of the first page to show. Currently videos cannot be displayed in this preview mode. Processing -To create a DVD filesystem, run "webdvd menu-url output-dir" where +To create a DVD filesystem, run "videolink menu-url output-dir" where menu-url is the URL or filename of the top menu page and output-dir is the directory in which to create the filesystem (which should be -either nonexistent or empty). WebDVD will automatically follow links +either nonexistent or empty). VideoLink will automatically follow links to the other pages and to the video files. -By default, WebDVD now calls ffmpeg to generate MPEG-2 streams for +By default, VideoLink now calls ffmpeg to generate MPEG-2 streams for menus. If you want it to use mjpegtools as it previously did, you must add the option "--encoder mjpegtools". If you use mjpegtools 1.6.2 or earlier you must instead use "--encoder mjpegtools-old". @@ -127,12 +130,12 @@ Limitations ----------- Each page must fit within the frame - DVD players do not support -scrolling menus and WebDVD currently is not able to split them into +scrolling menus and VideoLink currently is not able to split them into multiple menus. The frame size is dictated by the video standard; see above. The exact visible area varies between TVs so the background should cover all or very nearly all the frame whereas the important content such as text must not be placed near the edge. For this -reason WebDVD applies a stylesheet to all pages that adds 60 pixels of +reason VideoLink applies a stylesheet to all pages that adds 60 pixels of padding on all sides of the body; this doesn't apply to the background. @@ -140,28 +143,28 @@ Prior to Mozilla version 1.8, which I have not yet tested, Mozilla may signal that a page is completely loaded before any background images are loaded and displayed. This results in snapshots that do not include background images. You can work around this by using -absolutely-positioned "inline" images, or attempt to build WebDVD +absolutely-positioned "inline" images, or attempt to build VideoLink against Mozilla 1.8. DVD players do not have "back" buttons, so you should generally provide links to "higher" menu pages. However, they do have a button for returning to the top menu. -WebDVD sends a "mouseover" event for each link and sets it into its +VideoLink sends a "mouseover" event for each link and sets it into its "hover" state, then records how this changes its appearance. This change is then shown when the corresponding button on the DVD menu is -highlighted. WebDVD applies a stylesheet which changes the colour of +highlighted. VideoLink applies a stylesheet which changes the colour of text links in the "hover" state, but this has no effect on image links. You must ensure that image links are highlighted in an obvious way when the mouse pointer is over them. The DVD specifications limit each menu to having no more than 36 buttons. In any case, it is poor design to have very large numbers of -buttons on a single menu. WebDVD will warn you if you use more than +buttons on a single menu. VideoLink will warn you if you use more than this number of a links on a page, and will ignore any additional ones. The DVD specification also limits the overlays that are used for -highlighting of buttons to using no more than 4 colours. WebDVD will +highlighting of buttons to using no more than 4 colours. VideoLink will reduce link highlighting to 1 transparent and 3 opaque colours using Floyd-Steinberg dithering, which is certainly good enough for anti-aliased text but may not be so good for complex highlighting. @@ -171,12 +174,12 @@ than this number of video sequences, you could arrange them as chapters of a title, so long as they use the same codecs, resolution, aspect ratio and sample rate. However, each chapter will run into the next. If this is a real problem, let me know, and I may be able to -provide a better solution in a later version of WebDVD. +provide a better solution in a later version of VideoLink. Author and copyright -------------------- -WebDVD was written by Ben Hutchings . +VideoLink was written by Ben Hutchings . Copyright 2005-2006 Ben Hutchings. This software is based in part on the work of the Independent JPEG Group. diff --git a/debian/control b/debian/control index de94297..67b3c3c 100644 --- a/debian/control +++ b/debian/control @@ -1,19 +1,19 @@ -Source: webdvd +Source: videolink Maintainer: Ben Hutchings Section: graphics Priority: extra Build-Depends: debhelper (>=4), libboost-dev, libgtkmm2.0-dev, mozilla-dev, libexpat1-dev Standards-Version: 3.6.2 -Package: webdvd +Package: videolink Architecture: any Depends: xvfb, xfonts-base, dvdauthor, ffmpeg | mjpegtools, netpbm, ${shlibs:Depends}, ${mozilla:Depends} Recommends: mkisofs Description: Converts HTML pages into DVD menus. - WebDVD is intended to provide a simple way of producing DVDs with + VideoLink is intended to provide a simple way of producing DVDs with attractive and usable menus. It converts HTML pages into DVD menus by rendering them in Mozilla and reproducing their link structure. This allows you to design DVDs using familiar HTML editing tools or your favourite text editor. . - Homepage: http://womble.decadent.org.uk/software/webdvd/ + Homepage: http://womble.decadent.org.uk/software/videolink/ diff --git a/debian/rules b/debian/rules index 2806168..b18a9a3 100755 --- a/debian/rules +++ b/debian/rules @@ -7,13 +7,13 @@ binary : binary-arch binary-indep binary-arch : build dh_testroot - make prefix=debian/webdvd/usr install + make prefix=debian/videolink/usr install dh_strip dh_shlibdeps @echo "Despite the warnings from dh_shlibdeps, this should complete dependencies:" - echo "mozilla:Depends=mozilla-browser (= $$(dpkg-query -W --showformat='$${version}' mozilla-browser))" >> debian/webdvd.substvars - mkdir -p -m755 debian/webdvd/usr/share/doc/webdvd - cp COPYING debian/webdvd/usr/share/doc/webdvd/copyright + echo "mozilla:Depends=mozilla-browser (= $$(dpkg-query -W --showformat='$${version}' mozilla-browser))" >> debian/videolink.substvars + mkdir -p -m755 debian/videolink/usr/share/doc/videolink + cp COPYING debian/videolink/usr/share/doc/videolink/copyright dh_installchangelogs dh_installdocs dh_compress diff --git a/debian/webdvd.docs b/debian/videolink.docs similarity index 100% rename from debian/webdvd.docs rename to debian/videolink.docs diff --git a/generate_dvd.cpp b/generate_dvd.cpp index 6c507b9..32ce0f2 100644 --- a/generate_dvd.cpp +++ b/generate_dvd.cpp @@ -11,7 +11,7 @@ #include "xml_utils.hpp" dvd_contents::menu::menu() - : vob_temp(new temp_file("webdvd-vob-")) + : vob_temp(new temp_file("videolink-vob-")) { vob_temp->close(); } @@ -19,7 +19,7 @@ dvd_contents::menu::menu() void generate_dvd(const dvd_contents & contents, const std::string & output_dir) { - temp_file temp("webdvd-dvdauthor-"); + temp_file temp("videolink-dvdauthor-"); temp.close(); std::ofstream file(temp.get_name().c_str()); diff --git a/null_prompt_service.cpp b/null_prompt_service.cpp index 37303c0..03355ac 100644 --- a/null_prompt_service.cpp +++ b/null_prompt_service.cpp @@ -14,7 +14,7 @@ #include #include "null_prompt_service.hpp" -#include "webdvd.hpp" +#include "videolink.hpp" #include "xpcom_support.hpp" using xpcom_support::check; diff --git a/webdvd.cpp b/videolink.cpp similarity index 96% rename from webdvd.cpp rename to videolink.cpp index 9063bce..3d2daeb 100644 --- a/webdvd.cpp +++ b/videolink.cpp @@ -154,10 +154,10 @@ namespace } - class webdvd_window : public Gtk::Window + class videolink_window : public Gtk::Window { public: - webdvd_window( + videolink_window( const video::frame_params & frame_params, const std::string & main_page_uri, const std::string & output_dir, @@ -202,7 +202,7 @@ namespace bool finished_; }; - webdvd_window::webdvd_window( + videolink_window::videolink_window( const video::frame_params & frame_params, const std::string & main_page_uri, const std::string & output_dir, @@ -210,7 +210,7 @@ namespace : frame_params_(frame_params), output_dir_(output_dir), encoder_(encoder), - stylesheet_(load_css("file://" WEBDVD_LIB_DIR "/webdvd.css")), + stylesheet_(load_css("file://" VIDEOLINK_LIB_DIR "/videolink.css")), pending_window_update_(false), pending_req_count_(0), have_tweaked_page_(false), @@ -222,19 +222,19 @@ namespace add(browser_widget_); browser_widget_.show(); Glib::signal_idle().connect( - SigC::slot(*this, &webdvd_window::on_idle)); + SigC::slot(*this, &videolink_window::on_idle)); browser_widget_.signal_net_state().connect( - SigC::slot(*this, &webdvd_window::on_net_state_change)); + SigC::slot(*this, &videolink_window::on_net_state_change)); add_menu(main_page_uri); } - bool webdvd_window::is_finished() const + bool videolink_window::is_finished() const { return finished_; } - dvd_contents::pgc_ref webdvd_window::add_menu(const std::string & uri) + dvd_contents::pgc_ref videolink_window::add_menu(const std::string & uri) { dvd_contents::pgc_ref next_menu(dvd_contents::menu_pgc, contents_.menus.size()); @@ -253,7 +253,7 @@ namespace } } - dvd_contents::pgc_ref webdvd_window::add_title(const std::string & uri) + dvd_contents::pgc_ref videolink_window::add_title(const std::string & uri) { dvd_contents::pgc_ref next_title(dvd_contents::title_pgc, contents_.titles.size()); @@ -295,7 +295,7 @@ namespace } } - void webdvd_window::load_next_page() + void videolink_window::load_next_page() { assert(!page_queue_.empty()); const std::string & uri = page_queue_.front(); @@ -304,17 +304,17 @@ namespace browser_widget_.load_uri(uri); } - bool webdvd_window::on_idle() + bool videolink_window::on_idle() { load_next_page(); return false; // don't call again thankyou } - void webdvd_window::on_net_state_change(const char * uri, + void videolink_window::on_net_state_change(const char * uri, gint flags, guint status) { # ifdef DEBUG_ON_NET_STATE_CHANGE - std::cout << "webdvd_window::on_net_state_change("; + std::cout << "videolink_window::on_net_state_change("; if (uri) std::cout << '"' << uri << '"'; else @@ -413,7 +413,7 @@ namespace } } - bool webdvd_window::process_page() + bool videolink_window::process_page() { assert(!page_queue_.empty()); @@ -477,13 +477,13 @@ namespace return true; } - void webdvd_window::save_screenshot() + void videolink_window::save_screenshot() { Glib::RefPtr window(get_window()); assert(window); window->process_updates(true); - background_temp_.reset(new temp_file("webdvd-back-")); + background_temp_.reset(new temp_file("videolink-back-")); background_temp_->close(); std::cout << "saving " << background_temp_->get_name() << std::endl; Gdk::Pixbuf::create(Glib::RefPtr(window), @@ -493,15 +493,15 @@ namespace ->save(background_temp_->get_name(), "png"); } - struct webdvd_window::page_state + struct videolink_window::page_state { page_state(nsIDOMDocument * doc, int width, int height) : diff_pixbuf(Gdk::Pixbuf::create( Gdk::COLORSPACE_RGB, true, 8, // has_alpha, bits_per_sample width, height)), - spumux_temp("webdvd-spumux-"), - links_temp("webdvd-links-"), + spumux_temp("videolink-spumux-"), + links_temp("videolink-links-"), link_num(0), links_it(doc), link_changing(false) @@ -525,7 +525,7 @@ namespace Glib::RefPtr norm_pixbuf; }; - void webdvd_window::process_links(nsIPresShell * pres_shell, + void videolink_window::process_links(nsIPresShell * pres_shell, nsIPresContext * pres_context, nsIDOMWindow * dom_window) { @@ -1040,7 +1040,7 @@ int main(int argc, char ** argv) null_prompt_service::install(); // Run the browser/converter - webdvd_window window(frame_params, menu_url, output_dir, encoder); + videolink_window window(frame_params, menu_url, output_dir, encoder); window.show(); window.signal_hide().connect(SigC::slot(&Gtk::Main::quit)); Gtk::Main::run(); diff --git a/webdvd.css b/videolink.css similarity index 100% rename from webdvd.css rename to videolink.css diff --git a/videolink.hpp b/videolink.hpp new file mode 100644 index 0000000..db3eede --- /dev/null +++ b/videolink.hpp @@ -0,0 +1,8 @@ +#ifndef INC_VIDEOLINK_HPP +#define INC_VIDEOLINK_HPP + +#include + +void fatal_error(const std::string & message); + +#endif // !INC_VIDEOLINK_HPP diff --git a/webdvd.hpp b/webdvd.hpp deleted file mode 100644 index d281814..0000000 --- a/webdvd.hpp +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef INC_WEBDVD_HPP -#define INC_WEBDVD_HPP - -#include - -void fatal_error(const std::string & message); - -#endif // !INC_WEBDVD_HPP -- 2.39.5