summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'xml/htdocs/proj/en/desktop/video/vlc.xml')
-rw-r--r--xml/htdocs/proj/en/desktop/video/vlc.xml289
1 files changed, 289 insertions, 0 deletions
diff --git a/xml/htdocs/proj/en/desktop/video/vlc.xml b/xml/htdocs/proj/en/desktop/video/vlc.xml
new file mode 100644
index 00000000..a2a68db7
--- /dev/null
+++ b/xml/htdocs/proj/en/desktop/video/vlc.xml
@@ -0,0 +1,289 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE guide SYSTEM "/dtd/guide.dtd">
+<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/proj/en/desktop/video/vlc.xml,v 1.26 2009/11/12 19:40:57 aballier Exp $ -->
+
+<guide link="/proj/en/desktop/video/vlc.xml" lang="en">
+<title>vlc and related</title>
+
+<author title="Author">
+ <mail link="flameeyes@gentoo.org">Diego Pettenò</mail>
+</author>
+<author title="Contributor">
+ <mail link="aballier@gentoo.org">Alexis Ballier</mail>
+</author>
+
+<abstract>
+Maintainer notes about vlc and its relatives
+</abstract>
+
+
+<!-- The content of this document is licensed under the CC-BY-SA license -->
+<!-- See http://creativecommons.org/licenses/by-sa/2.5 -->
+<license/>
+
+<version>1.24</version>
+<date>2009-11-12</date>
+
+<chapter> <!-- vlc -->
+<title>vlc</title>
+
+<section> <!-- Introduction -->
+<title>Introduction</title>
+
+<body>
+
+<note>
+This guide was last updated for <c>vlc</c> version 1.0.3.
+</note>
+
+<p>
+<c>media-video/vlc</c> is
+<uri link="http://www.videolan.org/">VLC media player</uri>, a multimedia player
+with different interface modules, though primarily as a streaming client.
+There are no frontends a part the core <c>vlc</c> binary, but the different
+interfaces are loaded as modules.
+</p>
+
+<p>
+Because of its structure, a crash into the decoding routines means a complete
+crash of the interface, too. A careful maintenance is needed, similarly to
+<c><uri link="xine.xml">xine-lib</uri></c>.
+</p>
+
+<p>
+Its maintenance is usually simple, as it's one of the most portable solutions
+(it runs natively on Linux, Windows, OSX and FreeBSD). Related to <c>vlc</c>
+there are, though, different libraries that might be a problem to maintain,
+as they are handled differently in Portage from what the other distributions do.
+</p>
+
+</body>
+</section>
+
+<section> <!-- Patches -->
+<title>Patches</title>
+
+<body>
+
+<p>
+Patches for <c>vlc</c> are a bit different respect <c>xine-lib</c>, as they are
+sometimes exclusive to Gentoo Linux and simply can't be upstreamed at all. This
+is the case of the patches that change some libraries from builtin to plugins
+(with the assumption that Gentoo always have them as PIC libraries).
+</p>
+
+<p>
+In general there might be necessity to patch vlc when something in its
+dependencies changes, as it's usually quite good-written the internal code and
+also the <path>configure.ac</path>. In the past it needed patching to get
+wxGTK or Samba dependencies fixed.
+</p>
+
+<p>
+The bootstrap script provided with the sources should not be used to rebuild
+autotools support. While it's usually better to use the upstream-provide file,
+that bootstrap script contains also instructions to update gettext support, that
+might create confusion with the shipped version, and requires also the cvs
+command to get autopoint right. A simple <path>eautoreconf</path> call should
+be enough.
+</p>
+
+<p>
+There are two ways to send patches upstream: either via their <path>vlc-devel</path>
+<uri link="http://developers.videolan.org/lists.html">mailing list</uri> or by
+<uri link="http://wiki.videolan.org/Report_bugs">reporting a bug</uri> in the
+<uri link="https://trac.videolan.org/vlc/">Trac system</uri>.
+</p>
+
+<p>
+The patches are hosted in CVS inside <path>gentoo/src/patchsets/vlc</path>
+and are organized by version. Released patchsets are tagged with the name of the
+tarball minus the <path>.tar.bz2</path>. The directories contains also a series
+file, as they are used by quilt: just symlink the checked out directory inside
+an extracted source tree of vlc (for that version) and use <c>quilt</c> to
+manage the patches.
+</p>
+
+<note>
+Also if usually this point was never stressed out, now that patches are hosted
+on the CVS it's important that they bring a description in the header, with also
+a link to relevant bugs, both in Gentoo and upstream.
+</note>
+
+</body>
+</section>
+
+<section> <!-- External libraries and plugins -->
+<title>External libraries and plugins</title>
+
+<body>
+
+<p>
+<c>vlc</c> uses a mixed architecture for linking decoding libraries: some of
+them are linked as <e>builtin</e>, statically into the vlc binary, while others
+are built as <e>plugins</e> that gets loaded at runtime.
+</p>
+
+<p>
+As the plugins are by all means shared objects, they must be built with PIC
+enabled and can't link against static non-PIC libraries. As some libraries used
+to decode or demux (such as libmatroska and libdts) used to be static libraries
+only, the configure sometimes checks for two names for libraries, one for the
+PIC version (<path>_pic</path> or <path>_p</path>) and one for the non-PIC,
+enabling the plugin or the builtin depending on the case.
+</p>
+
+<p>
+As in Gentoo most of the libraries are patched to build the PIC shared version
+with the same name of the original one, the configure script sometimes gets
+false negatives, and builds as builtin something that could have been built as
+plugin. In those cases, it's needed to edit the <path>configure.ac</path> file
+to get the right name for the library to build as plugin.
+</p>
+
+<p>
+The use of plugins instead of builtins allows VLC to continue working also if
+one of the libraries gets broken by a changed ABI, as the plugins fails to load
+on demand, while builtins breaks the main executable file.
+</p>
+
+<p>
+Like newer versions of <c><uri link="xine.xml">xine-lib</uri></c>, <c>vlc</c>
+always uses an external copy of <c>ffmpeg</c>. This means that when a new
+version of that package is stabilized, <c>vlc</c> has to be checked against it.
+It also means that it does not suffer from problems related directly to
+<c>ffmpeg</c> code, such as security vulnerabilities.
+</p>
+
+</body>
+</section>
+
+<section> <!-- Testing versions -->
+<title>Testing versions</title>
+
+<body>
+
+<p>
+As many other projects, also <c>vlc</c> releases beta versions of the code
+before the actual final release. These beta versions are usually useful to test
+the changes to the dependencies and the code in package.mask so that problems
+can be found before unleashing the final version to users.
+</p>
+
+<p>
+Test versions are usually announced on <path>vlc-devel</path> mailing list and
+can be found at
+<uri link="http://download.videolan.org/pub/videolan/testing/">http://download.videolan.org/pub/videolan/testing/</uri>.
+The naming scheme used is X.Y.Z-testT.
+</p>
+
+<p>
+Since version 0.8.4, the ebuild carries the transformation between _beta to
+-beta versions and uses the right URL for betas without having to edit it by
+hand.
+</p>
+
+</body>
+</section>
+
+<section> <!-- useflags -->
+<title>useflags</title>
+
+<body>
+
+<p>
+As many other multimedia programs, also <c>vlc</c> have quite a lot of useflags
+to disable and enable dependencies and extra features. There are a few missing
+dependencies that are not enabled, and a few useflags that were removed for
+many reasons in the past.
+</p>
+
+<p>
+The <b>nsplugin</b> useflag is used to build the Netscape-compatible plugins
+(used by Mozilla, Firefox and Konqueror); this plugin is quite fragile, and the
+useflag (that was added after 0.8.2 release) was removed till the latter 0.8.5
+revisions, with patches to build against Firefox or Seamonkey rather than the
+old Gecko-SDK (no more supported) or XULRunner (experimental). The plugin itself
+is unsatble anyway, and if bugs are confirmed is probably simpler to remove it
+or declare it experimental.
+</p>
+
+<p>
+Most of the nsplugin's problems were fixed in 0.8.6, although the way
+to select against which package to build changed drastically (as the
+patch applied to 0.8.5 was rejected for a different approach). Since
+this version, you need to pass the XPIDL variable with the path to the
+IDL libraries for the package to link against (firefox or seamonkey)
+and the MOZILLA_CONFIG variable with the path to the
+<path>*-config</path> script, again depending on which one you want to
+link against.
+</p>
+
+<p>
+The <b>live</b> useflag enable support of live555 for RTSP support,
+provided by <c>media-plugins/live</c>. Starting from version
+2006.12.08 of this latter package, the way it is installed in the
+system is drastically changed; while previously it installed in a
+"build tree", and was linked statically, the newer versions installs
+as a normal package using lib and include directories. For this
+reason, the <path>--with-live555-tree</path> option is not passed
+anymore, in vlc 0.8.6 and later, if the newer version of live is
+present.
+</p>
+
+<table>
+ <tr>
+ <th>Useflag</th>
+ <th>Local description</th>
+ <th>Dependency</th>
+ <th>Reason for removing</th>
+ </tr>
+
+ <tr>
+ <ti>portaudio</ti>
+ <ti>PortAudio output plugin</ti>
+ <ti>&gt;=media-sound/portaudio-19</ti>
+ <ti>
+ The required version of <c>portaudio</c> is the currently experimental
+ version (19), not present in Portage and too unstable.
+ </ti>
+ </tr>
+
+ <tr>
+ <ti>tremor</ti>
+ <ti>Enables Tremor decoder support</ti>
+ <ti></ti>
+ <ti>Missing dependency</ti>
+ </tr>
+
+ <tr>
+ <ti>tarkin</ti>
+ <ti>Enables experimental tarkin codec</ti>
+ <ti></ti>
+ <ti>Missing dependency</ti>
+ </tr>
+
+ <tr>
+ <ti>cyberlink</ti>
+ <ti>Enable CyberLink UPnP stack</ti>
+ <ti></ti>
+ <ti>Missing dependency</ti>
+ </tr>
+
+ <tr>
+ <ti>libtar</ti>
+ <ti>Enables libtar support for skins2 module</ti>
+ <ti>dev-libs/libtar</ti>
+ <ti>libtar doesn't build a PIC shared library thus we disable it</ti>
+ </tr>
+
+</table>
+
+</body>
+</section>
+
+</chapter>
+
+</guide>
+
+<!-- kate: space-indent on; indent-width 2; replace-tabs on; -->