Mistelix a DVD Authoring Tool for GNU/Linux Desktop Systems
Total Page:16
File Type:pdf, Size:1020Kb
Mistelix A DVD authoring tool for GNU/Linux desktop systems 5th January 2009 Student: Jordi Mas i Hernàndez Tutor: Jordi Ceballos Villach This project is dedicated to the hundreds of free and open source hackers that invest their time in making all the infrastructure that made this project possible. I want also to thank to the UOC their flexibility given to me to develop a project that is based on Linux (instead of Windows), that runs of top of Mono (instead of Microsoft .Net), that is written in English and that its outputs are open source. 2/59 Table of contents 1. Introduction........................................................................................................................6 1.1 Introduction .................................................................................................................6 1.2 Objectives and scope..................................................................................................6 1.3 Open source................................................................................................................6 1.4 Project justification.......................................................................................................7 1.5 Project deliverables.....................................................................................................7 1.6 Project risks.................................................................................................................8 1.7 Project plan................................................................................................................11 1.8 Installation..................................................................................................................14 2. Technologies ...................................................................................................................17 2.1 The DVD standard.....................................................................................................17 2.2 DVD disc physical standards.....................................................................................17 2.3 DVD Video.................................................................................................................18 2.3.1 Features......................................................................................................................................18 2.3.2 Technical characteristics.............................................................................................................19 2.4 Platform .....................................................................................................................20 2.4.1 Mono...........................................................................................................................................20 2.4.2 Mono.Addins...............................................................................................................................20 2.4.3 Autoconf and automake...............................................................................................................21 2.4.4 MonoDevelop IDE.......................................................................................................................21 2.5 User interface libraries ..............................................................................................22 2.5.1 GTK.............................................................................................................................................22 2.5.2 Cairo............................................................................................................................................23 2.5.3 Glade...........................................................................................................................................23 2.5.4 Gettext.........................................................................................................................................23 2.6 Multimedia libraries....................................................................................................23 2.6.1 GStreamer...................................................................................................................................23 2.6.2 ffmpeg.........................................................................................................................................24 2.7 External tools.............................................................................................................24 2.7.1 Dvdauthor....................................................................................................................................25 2.7.2 Spumux.......................................................................................................................................25 3. System Analysis...............................................................................................................26 3.1 Uses cases................................................................................................................26 3.1.1 Creating slideshow photo DVD....................................................................................................26 3.1.2 Modifying an already existing slideshow......................................................................................26 3.1.3 Creating a DVD with recorded videos .........................................................................................27 3.1.4 Creating a DVD with slideshows and recorded videos ...............................................................27 3/59 3.1.5 A user wants to translate the application.....................................................................................28 3.1.6 A user wants to extend the application........................................................................................28 3.2 Functional requirements ...........................................................................................29 3.3 Non-functional requirements ....................................................................................29 4. Application architecture....................................................................................................31 4.1 Components description............................................................................................31 4.1.1 Library usage description............................................................................................................32 4.1.2 External tools usage description..................................................................................................32 4.2 libmistelix...................................................................................................................33 4.2.1 General overview........................................................................................................................33 4.2.2 Mistelixvideo source GStreamer pluggin.....................................................................................33 4.2.3 Communication between Mistelix and the multimedia stack........................................................34 4.3 Background process scheduler.................................................................................35 4.4 Themes......................................................................................................................36 4.5 Extending the application..........................................................................................36 4.5.1 Introduction..................................................................................................................................36 4.5.2 What can be extended.................................................................................................................36 4.5.3 Anatomy of an extension.............................................................................................................37 4.6 Translations...............................................................................................................37 5. User interface design.......................................................................................................38 5.1 User interface description..........................................................................................38 5.2 Creating a new project...............................................................................................38 5.3 Adding a slideshow....................................................................................................39 5.4 Adding videos............................................................................................................41 5.5 Selecting a theme......................................................................................................42 5.6 Authoring the menus..................................................................................................43 5.7 Building the project....................................................................................................44 5.8 Preferences................................................................................................................44 5.9 Extensions.................................................................................................................45 6. Implementation.................................................................................................................47 6.1 Project hosting...........................................................................................................47