Warning, /multimedia/kaffeine/README.md is written in an unsupported language. File is not indexed.

0001 Installing Kaffeine
0002 ===================
0003 
0004 Installing Prerequisites
0005 ------------------------
0006 
0007 The following tools are needed to build Kaffeine:
0008 
0009 * GNU c++
0010 * GNU make
0011 * cmake >= 2.8
0012 * cmake ECM (extra-cmake-modules)
0013 
0014 The following development headers are needed (recommended versions):
0015 
0016 * Qt >= 5.4
0017 * KF5 >= 5.11
0018 * libX11
0019 * libXss
0020 * libqt-sql-sqlite
0021 * libvlc
0022 * libdvbv5
0023 
0024 If you also want language translations you also need:
0025 
0026 * gettext
0027 
0028 If you also want the Kaffeine Handbook, you also need:
0029 
0030 * KF5DocTools
0031 
0032 For runtime translations of the ISO 639 language codes, you also need:
0033 
0034 * iso-codes
0035 
0036 Debian and Ubuntu
0037 -----------------
0038 
0039 The needed packages for Debian/Ubuntu should be installed with:
0040 
0041     apt-get install kdelibs5-dev libvlc-dev libxss-dev vlc \
0042                    libkf5coreaddons-dev libkf5i18n-dev libqt5x11extras5-dev \
0043                    libkf5windowsystem-dev \
0044                    libkf5solid-dev libkf5widgetsaddons-dev kio-dev \
0045                    qt5-default libdvbv5-dev \
0046                    cmake extra-cmake-modules make g++ gettext
0047 
0048 And, to build the optional Kaffeine Handbook documentation:
0049 
0050     apt-get install kdoctools-dev
0051 
0052 PS.: The above was tested with Debian SID and Ubuntu Xenial (16.04).
0053      Other versions may have different requirements.
0054 
0055 Fedora
0056 ------
0057 
0058 On Fedora, you need a repository that provides VLC.
0059 
0060 For stable fedora releases, you could use the rpmfusion repository.
0061 For Fedora 22 and later, it can be installed with:
0062 
0063         sudo dnf install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
0064 
0065 See <http://rpmfusion.org/Configuration/> for more details.
0066 
0067 For Fedora rawhide and beta releases, you could use, instead the
0068 Unitedrpms repository: <https://unitedrpms.github.io/>. Please read
0069 at <https://github.com/UnitedRPMs/unitedrpms.github.io/blob/master/README.md>
0070 for instructions about how to set up.
0071 
0072 Once the repository with VLC is set, install the needed packages
0073 with:
0074 
0075     dnf install  kf5-kcoreaddons-devel libXScrnSaver-devel \
0076                  qt5-qtx11extras-devel libdvbv5 \
0077                  kf5-kwindowsystem-devel kf5-solid-devel kf5-kio-devel \
0078                  kf5-kdbusaddons-devel kf5-ki18n-devel vlc-devel gettext-devel \
0079                  cmake extra-cmake-modules make gcc-c++ gettext
0080 
0081 And, to build the Kaffeine Handbook documentation:
0082 
0083     dnf install kf5-kdoctools-devel
0084 
0085 openSUSE
0086 --------
0087 
0088 If you run openSUSE Tumbleweed, you can find an up-to-date package with the
0089 latest state of git in the KDE:Unstable:Extra repository.
0090 
0091     zypper ar obs://KDE:Unstable:Extra KDE_Unstable_Extra # add repository
0092     zypper in -r KDE_Unstable_Extra kaffeine
0093 
0094 If you are using openSUSE Leap or openSUSE 13.2, you will need to compile from
0095 sources instead.  You need to be using at least OpenSUSE version 13.2, in order to have
0096 KF5 and Qt 5.5 at their repositories.
0097 
0098 The first step is to install the needed dependencies:
0099 
0100     zypper install extra-cmake-modules vlc-devel make gcc gcc-g++ cmake \
0101            libqt5-qtbase-devel libqt5-qtx11extras-devel \
0102            kdbusaddons-devel solid-devel kio-devel ki18n-devel
0103 
0104 If you're running OpenSUSE version 13.2, you'll need to compile the
0105 libdvbv5 by hand, as it is not provided there. OpenSUSE Leap
0106 (version 42.1) seem to have it already packaged as libdvbv5-devel.
0107 
0108 Before compiling libdvbv5, some packages are needed:
0109 
0110     zypper install autoconf automake libjpeg-devel
0111 
0112 Compiling libdvbv5 (as normal user):
0113 
0114     wget https://linuxtv.org/downloads/v4l-utils/v4l-utils-1.10.0.tar.bz2
0115     tar xvf v4l-utils-1.10.0.tar.bz2
0116     cd v4l-utils
0117     ./bootstrap.sh && ./configure && make
0118 
0119 Installing the library (as root):
0120 
0121     make install
0122 
0123 And, to build the optional Kaffeine Handbook documentation:
0124 
0125     zypper install kdoctools-devel
0126 
0127 PS.: The above was tested with openSUSE 13.2.
0128      Other versions may have different requirements.
0129 
0130 Gentoo
0131 ------
0132 
0133 Kaffeine is already packaged on Gentoo. Installing it is as
0134 simple as:
0135 
0136     emerge kaffeine
0137 
0138 Arch Linux
0139 ----------
0140 
0141 Kaffeine is already packaged on Arch Linux. Installing it is as
0142 simple as:
0143 
0144     pacman -S kaffeine
0145 
0146 How to build Kaffeine
0147 =====================
0148 
0149 Create an empty build directory and do the following steps:
0150 
0151     $ cmake <path/to/kaffeine> <options>
0152     $ make
0153 
0154 Where `path/to/kaffeine` is usually the current dir, e. g., the
0155 following command is usually enough:
0156 
0157     $ cmake . && make
0158 
0159 Useful `options` include:
0160 
0161 * -DCMAKE_BUILD_TYPE=<type> (Debug or Release)
0162 * -DCMAKE_INSTALL_PREFIX=<path> (installation prefix for Kaffeine, e.g. /usr)
0163 * -DBUILD_TOOLS=1 (also compile some tools needed by developers)
0164 
0165 You may also use `ccmake` if you want to see all Kaffeine's build
0166 options, and set them using an interactive interface.
0167 
0168 For further information look for generic KF5 / cmake instructions.
0169 
0170 The install should be done as root user with:
0171 
0172     # make install
0173 
0174 How to produce a Debian/Ubuntu package
0175 ======================================
0176 
0177 If you want to create a Debian or Ubuntu package from Kaffeine's sources,
0178 you need to install the needed tools with:
0179 
0180     apt-get install fakeroot dpkg-dev pkg-kde-tools debhelper
0181 
0182 And run the following commands:
0183 
0184     rm -rf deb-build  # Just in case it were created before
0185 
0186     git clone https://salsa.debian.org/qt-kde-team/extras/kaffeine.git deb-build && \
0187     cd deb-build && \
0188     rsync -ua --exclude '.git*' --exclude deb-build .. . && \
0189     rm CMakeCache.txt && \
0190     cat Changelog |grep Version|head -1|perl -ne 'if (m/Version\s*(\S+)/) { print "kaffeine ($1-1) unstable; urgency=medium\n\n  * New upstream release.\n" }' >debian/changelog && \
0191     echo " -- root <root@localhost>  $(date -R)" >>debian/changelog && \
0192     fakeroot debian/rules binary && \
0193     cd ..
0194 
0195 This will produce both binary and debug packages, like:
0196 
0197         kaffeine_*_amd64.deb  kaffeine-dbgsym_*_amd64.ddeb
0198 
0199 Installing it is as simple as:
0200 
0201         sudo dpkg -i kaffeine_*_amd64.deb
0202 
0203 Running Kaffeine from Docker
0204 ============================
0205 
0206 It is now possible to run kaffeine from Docker without installing it
0207 on your machine by using Docker. You need to have Docker already
0208 installed and configured.
0209 
0210 Installing Docker
0211 -----------------
0212 
0213 The prodedures for installing Docker vary from Distribution. It usually
0214 involves using the distro package manager to install it from the
0215 usual repositories:
0216 
0217         sudo dnf install docker                         # Fedora
0218         sudo apt install docker.io                      # Debian/Ubuntu
0219         sudo zypper install docker docker-compose       # SUSE
0220         sudo emerge app-emulation/docker                # Gentoo
0221         sudo pacman -S docker                           # Arch Linux
0222 
0223 (some distros like Gentoo may require additional steps)
0224 
0225 Then add the current user into a docker group, in order to allow
0226 itr to run the docker command without sudo:
0227 
0228         sudo groupadd docker            # if the docker group doesn't exist yet
0229         sudo gpasswd -a $USER docker
0230         newgrp docker                   # or close the session and re-open
0231 
0232 Finally, ask systemd to enable dockerd at boot time and to (re)start it:
0233 
0234         sudo systemctl enable docker
0235         sudo systemctl restart docker
0236 
0237 In case of doubts, please seek at the Internet for a guide especific
0238 for the distro you're using.
0239 
0240 Running Kaffeine's docker image
0241 -------------------------------
0242 
0243 Once you have docker installed, you can download the Kaffeine's
0244 Docker image from:
0245 
0246 - <https://cloud.docker.com/u/maurochehab/repository/docker/maurochehab/kaffeine/general>
0247 
0248 This can easily be done by running:
0249 
0250         docker pull maurochehab/kaffeine
0251 
0252 Note: docker pull will also update the image to the newest one, in
0253 case you have download it already.
0254 
0255 The updated instructions about how to download and use the Docker
0256 image it will be pointed there.
0257 
0258 Please notice that Docker works by running an image created from the
0259 Dockerfile packaged with Kaffeine. Such image is executed inside
0260 a container, so it needs permission to open files, sockets and
0261 devices from the host machine.
0262 
0263 Getting the right mapping for volumes, groups and devices is tricky.
0264 So, we have a script that should hopefully do what it is expected
0265 (tested with Docker version 1.13):
0266 
0267         ./kaffeine-docker.sh
0268 
0269 There are some limitations when running Kaffeine via a docker
0270 container:
0271 
0272 1) The container runs with a non-root user (user ID is 1000). This
0273    is a requirement, as libVlc refuses to run as root. The user ID
0274    1000 is usually the default for the first user on most modern
0275    distros. If your user is different, the container won't get the
0276    right permissions to read files from your home dir and will fail.
0277    So, if you use a different user ID, you may need to re-generate
0278    the container locally.
0279 
0280 2) In order to avoid legal discussions, the docker image hosted at
0281    docker.io doesn't contain the packages that are needed for DVD
0282    navigation and for decrypt DVD streams. If you need such features,
0283    you need to add the packages `libdvdread4` and `libdvdnav` to
0284    the Dockerfile and re-generate the container locally.
0285 
0286 3) As the device map happens before starting the container,
0287    Kaffeine's capability of auto-detecting device hot-plug won't
0288    work.
0289 
0290 Generating the Kaffeine container locally
0291 -----------------------------------------
0292 
0293 Building a Kaffeine's container should be as easy as running this command:
0294 
0295         docker build -t "mykaffeine" .
0296 
0297 It should take a while for it to download the base image and the
0298 needed packages, before starting build the container.
0299 
0300 When using a local container, you need to tell the script to use the
0301 new docker image you created. You do that by passing one parameeter to
0302 the `kernel-docker.sh` script with the name of the image you created, e. g.:
0303 
0304         ./kaffeine-docker.sh "mykaffeine"
0305 
0306 Known video output issues
0307 =========================
0308 
0309 There are a few known issues related to video output that may require
0310 some special setup for Kaffeine to work on certain environments.
0311 
0312 Remote Access and Kaffeine
0313 --------------------------
0314 
0315 Accessing Kaffeine remotely via X11/ssh/vnc can be a problem, as Qt5 will
0316 try, by default, to use hardware acceleration and DRI3.
0317 
0318 There is a known bug, present on Fedora 23 to 25, and likely on other distros,
0319 at mesa-libGL/dri-drivers that cause it to wait forever when it is started
0320 from a X11 section. Such bug causes Kaffeine windows to not open:
0321 
0322 * <https://bugzilla.redhat.com/show_bug.cgi?id=1174257>
0323 
0324 A workaround is to start Kaffeine with:
0325 
0326     LIBGL_DRI3_DISABLE=1 kaffeine
0327 
0328 Another solution is to use a vnc server.
0329 
0330 Changing the libVLC output plugin
0331 ---------------------------------
0332 
0333 By default, libVLC will try to use hardware acceleration on the machine with
0334 Kaffeine, with obviously with won't work via remote access. It may also not
0335 detect properly the best video output plugin for some hardware settings.
0336 
0337 For such scenarios, you may try to change the arguments passed to libVLC via
0338 the `Settings` -->  `Configure Kaffeine` -->  `libVLC`, changing the libVLC
0339 arguments to:
0340 
0341     --no-video-title-show -V xcb_glx
0342 
0343 or:
0344 
0345     --no-video-title-show -V xcb_xv
0346 
0347 and re-start Kaffeine.
0348 
0349 Setting VDPAU acceleration
0350 --------------------------
0351 
0352 By default, libVlc will try to use vdpau hardware acceleration in order to
0353 decode the video stream at GPU. However, sometimes it may not get the right
0354 acceleration module, trying to always use NVidia module, even when the
0355 hardware is AMD or Intel. That happens, for example on Fedora 25 and 26, as
0356 reported at:
0357 
0358 * <https://bugzilla.redhat.com/show_bug.cgi?id=1305699>
0359 * <https://bugs.kde.org/show_bug.cgi?id=376893>
0360 
0361 For Radeon GPU, the vdpau driver can be forced with:
0362 
0363     export VDPAU_DRIVER=r600
0364 
0365 The VA-GL driver can be used for Intel GPUs. It can be forced with:
0366 
0367     export VDPAU_DRIVER=va_gl
0368 
0369 Note: you may need to install mesa-vdpau-drivers and/or libvdpau-va-gl
0370 packages for vdpau to work.
0371 
0372 Please notice that, depending on your hardware, for example, if your
0373 GPU vdpau driver can't decode the compression standard used by the
0374 broadcasters, it could be better to disable VDPAU backend.
0375 That can be done by passing an invalid driver name, like:
0376 
0377     export VDPAU_DRIVER=none
0378 
0379 Using xmltv for EPG data
0380 ========================
0381 
0382 As described at Kaffeine's documentation, xmltv files are now supported.
0383 
0384 In order to use it, you need to have a xmltv grabber. For example, you
0385 may use the tv_grab_eu_dotmedia grabber, from xmltv project.
0386 
0387 Kaffeine's internal logic will map the channels obtained by the grabber
0388 into the channel names it has stored internally. The Kaffeine names
0389 can be obtained with the following command:
0390 
0391     $ echo 'select name from Channels;' | sqlite3 ~/.local/share/kaffeine/sqlite.db
0392 
0393 At the xmltv file format, the channel names can be obtained with:
0394 
0395     $ grep display-name some_file.xmltv
0396 
0397 If the names don't match, you'll need to use an external script to do the
0398 map. There's an example about how to do it at:
0399 
0400     tools/map_xmltv_channels.sh
0401 
0402 Please notice that you need to have `xmlstarlet` installed for it to work.
0403 
0404 Assuming that you modified the script for your needs and copied to your
0405 `~/bin` directory, a typical usage of obtaining the xmltv tables would be to
0406 have a script like this running on a shell console:
0407 
0408     $ while :; do tv_grab_eu_dotmedia > eu_dotmedia.xmltv; \
0409     ~/bin/map_xmltv_channels.sh eu_dotmedia.xmltv eu_dotmedia-new.xmltv; \
0410     sleep 3600; done
0411 
0412 And configure Kaffeine to use the `eu_dotmedia-new.xmltv` file produced by
0413 the script (or whatever other name you use), disabling EPG MPEG-TS table
0414 reads.
0415 
0416 Please also notice that as soon as Kaffeine detects a change on a file, it
0417 will re-read. So, even if you don't need to do any map, you should
0418 first generate the xmltv file and then move it to the right place, e. g:
0419 
0420     $ while :; do tv_grab_eu_dotmedia > eu_dotmedia.xmltv; \
0421     mv eu_dotmedia.xmltv eu_dotmedia-new.xmltv; \
0422     sleep 3600; done
0423 
0424 For more details, please read Kaffeine's manual.
0425 
0426 Homepage
0427 ========
0428 
0429 <https://www.kde.org/applications/multimedia/kaffeine/>
0430 
0431 Authors
0432 =======
0433 
0434 Maintainer since KF5/Qt5 port (version 2.x):
0435 
0436 * Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
0437 
0438 Former maintainers:
0439 
0440 * Lasse Lindqvist <lasse.k.lindqvist@gmail.com>
0441 * Christoph Pfister
0442 * Christophe Thommeret
0443 * Jürgen Kofler
0444 
0445 Thanks to various contributors, translators, testers ...