Multimedia & Gaming

An open format is a file format for storing digital data, defined by a published specification usually maintained by a standards organization, and which can be used and implemented by anyone. For example, an open format can be implemented by both proprietary and free and open-source software, using the typical software licenses used by each. In contrast to open formats, closed formats are considered trade secrets. Open formats are also called free file formats if they are not encumbered by any copyrights, patents, trademarks or other restrictions (for example, if they are in the public domain) so that anyone may use them at no monetary cost for any desired purpose:

 

Imaging

  • APNG: It allows for animated PNG files that work similarly to animated GIF files.
  • AVIF: An image format using AV1 compression.
  • FLIF: Free Lossless Image Format.
  • GBR: a 2D binary vector image file format, the de facto standard in the printed circuit board (PCB) industry
  • GIF: CompuServe's Graphics Interchange Format (openly published specification, but patent-encumbered by a third party; became free when patents expired in 2004)
  • JPEG 2000: an image format standardized by ISO/IEC
  • MNG: moving pictures, based on PNG
  • OpenEXR: a high dynamic range imaging image file format, released as an open standard along with a set of software tools created by Industrial Light and Magic (ILM).
  • PNG: a raster image format standardized by ISO/IEC
  • SVG: a vector image format standardized by W3C
  • WebP: image format developed by Google
  • XPM: image file format used by the X Window System

 

Audio

  • ALAC: lossless audio codec, previously a proprietary format of Apple Inc.
  • FLAC: lossless audio codec
  • DAISY Digital Talking Book: a talking book format
  • Musepack: an audio codec
  • MP3: lossy audio codec, previously patented
  • Ogg: container for Vorbis, FLAC, Speex and Opus (audio formats) & Theora (a video format), each of which is an open format
  • Opus: a lossy audio compression format developed by the IETF. Suitable for VoIP, videoconferencing (just audio), music transmission over the Internet and streaming applications (just audio).
  • Speex: speech codec
  • Vorbis: a lossy audio compression format.
  • WavPack: "Hybrid" (lossless/lossy) audio codec

 

Video

  • Dirac: a video compression format supporting both lossless and lossy compression
  • Matroska (mkv): container for all type of multimedia formats (audio, video, images, subtitles)
  • WebM: a video/audio container format
  • Theora: a lossy video compression format.

 

List of Open-source Codecs

This is a listing of open-source codecs—that is, open-source software implementations of audio or video coding formats.

 

Audio Codecs

  • FLAC: Lossless codec developed by Xiph.Org Foundation.
  • LAME: Lossy compression (MP3 format).
  • TooLAME/TwoLAME: Lossy compression (MP2 format).
  • Musepack: Lossy compression; based on MP2 format, with many improvements.
  • Speex: Low bitrate compression, primarily voice; developed by Xiph.Org Foundation. Deprecated in favour of Opus according to www.speex.org.
  • CELT: Lossy compression for low-latency audio communication
  • libopus: A reference implementation of the Opus format, the IETF standards-track successor to CELT. (Opus support is mandatory for WebRTC implementations.)
  • libvorbis: Lossy compression, implementation of the Vorbis format; developed by Xiph.Org Foundation.
  • iLBC: Low bitrate compression, primarily voice
  • iSAC: Low bitrate compression, primarily voice; (free when using the WebRTC codebase)
  • TTA: Lossless compression
  • WavPack: Hybrid lossy/lossless
  • Bonk: Hybrid lossy/lossless; supported by fre:ac (formerly BonkEnc)
  • Apple Lossless: Lossless compression (MP4)
  • Fraunhofer FDK AAC: Lossy compression (AAC)
  • FFmpeg: codecs in the libavcodec library, e.g. AC-3, AAC, ADPCM, PCM, Apple Lossless, FLAC, WMA, Vorbis, MP2, etc.
  • FAAD2: open-source decoder for Advanced Audio Coding. There is also FAAC, the same project's encoder, but it is proprietary (but still free of charge).
  • libgsm: Lossy compression (GSM 06.10)
  • opencore-amr: Lossy compression (AMR and AMR-WB)
  • liba52: a free ATSC A/52 stream decoder (AC-3)
  • libdca: a free DTS Coherent Acoustics decoder
  • Codec2: Low bitrate compression, primarily voice

 

Video Codecs

  • x264: H.264/MPEG-4 AVC implementation. x264 is not a codec (encoder/decoder); it is just an encoder (it cannot decode video).
  • OpenH264: H.264 baseline profile encoding and decoding
  • x265: An encoder based on the High Efficiency Video Coding (HEVC/H.265) standard.
  • Xvid: MPEG-4 Part 2 codec, compatible with DivX
  • libvpx: VP8 and VP9 implementation; formerly a proprietary codec developed by On2 Technologies, released by Google under a BSD-like license in May 2010.
  • FFmpeg codecs: Codecs in the libavcodec library from the FFmpeg project (FFV1, Snow, MPEG-1, MPEG-2, MPEG-4 part 2, MSMPEG-4, WMV2, SVQ1, MJPEG, HuffYUV and others). Decoders in the libavcodec (H.264, SVQ3, WMV3, VP3, Theora, Indeo, Dirac, Lagarith and others).
  • Lagarith: Video codec designed for strong lossless compression in RGB(A) colorspace (similar to ZIP/RAR/etc.)
  • libtheora: A reference implementation of the Theora format, based on VP3, part of the Ogg Project
  • Dirac as dirac-research: a wavelet based codec created by the BBC Research, and Schrödinger, an implementation developed by David Schleef.
  • Huffyuv: Lossless codec from BenRG
  • Daala: Experimental Video codec which was under development by the Xiph.Org Foundation and finally merged into AV1.
  • Thor: Experimental royalty free video codec which was under development by Cisco Systems, and merged technologies into AV1.
  • Turing: A High Efficiency Video Coding (HEVC/H.265) encoder implemented by BBC Research.
  • libaom: Reference implementation for the royalty free AV1 video coding format by AOMedia, inheriting technologies from VP9, Daala and Thor.

 

Gstreamer

A library for constructing graphs of media-handling components. The applications it supports range from simple Ogg/Vorbis playback, audio/video streaming to complex audio (mixing) and video (non-linear editing) processing. Applications can take advantage of advances in codec and filter technology transparently. Developers can add new codecs and filters by writing a simple plugin with a clean, generic interface.

 

Communication

PCLITEOS™ uses KDE Instant Messaging Contacts as default internet messenger, There are still many other internet messengers out of box such Pidgin, Mumble, Telegram, Signal and etc.

 

KDE IM configuration is available under Programs Menu > Settings > System Settings > Instant Messaging and VoIP > Add Account, KDE IM Contacts has a few important features as follows:

  • Multi Protocol
  • Messaging
  • VoIP System
  • Video Call
  • Conference
  • Desktop Widget

 

Telepathy

 

Signal Messenger

Signal is a cross-platform encrypted messaging service developed by the Signal Foundation and Signal Messenger LLC. It uses the Internet to send one-to-one and group messages, which can include files, voice notes, images and videos. Its mobile apps can also make one-to-one voice and video calls, and the Android version can optionally function as an SMS app.

 

Signal uses standard cellular telephone numbers as identifiers and uses end-to-end encryption to secure all communications to other Signal users. The apps include mechanisms by which users can independently verify the identity of their contacts and the integrity of the data channel.

 

All Signal software is free and open-source. The clients are published under the GPLv3 license, while the server code is published under the AGPLv3 license.

 

Signal

 

Pidgin Messenger

Pidgin (formerly named Gaim) is a free and open-source multi-platform instant messaging client, based on a library named libpurple that has support for many instant messaging protocols, allowing the user to simultaneously log into various services from a single application, with a single interface for both the popular and obsolete protocols (from AOL to Discord), thus avoiding the hassle of having to deal with a new bloated, unaudited, closed-source, and different piece of software for each device and protocol. Pidgin is widely used for its Off-the-Record Messaging (OTR) plugin, which offers end-to-end encryption.

 

Off-the-Record Messaging (OTR) is a cryptographic protocol that provides encryption for instant messaging conversations. OTR uses a combination of AES symmetric-key algorithm with 128 bits key length, the Diffie–Hellman key exchange with 1536 bits group size, and the SHA-1 hash function. In addition to authentication and encryption, OTR provides forward secrecy and malleable encryption.

 

Pidgin

 

Video Gaming

PCLITE™ encourage Its users to play around with PCLITEOS™ to enjoy the taste of open source gaming as both online and offline mode.

There are many benefits by playing with PCLITEOS™:

  • Available latest Intel – Radeon – Nvidia opensource drivers or firmwares via package management.
  • Supporting NVIDIA optimus technology for discrete graphic cards to manage power usage.
  • Configured gaming utilities and application such as voice system, steam and a package contains of most popular open source video games.
  • PCLITE™ Arena online section for the clans and public players including private server.
  • Some video games screen shot running under PCLITEOS™ in online gallery.
  • The community is included of many parts such servers, matches, teams, awards, rules, sponsors.

 

Video Game

 

NVIDIA Optimus Support

Bumblebee is an effort to make NVIDIA Optimus enabled laptops work in GNU/Linux systems. These laptops are built in such a way that the NVIDIA graphics card can be used on demand so that battery life is improved and temperature is kept low.

 

It disables the discrete graphics card if no client is detected, and starts an X server making use of NVIDIA card if requested then let software GL implementations (such as VirtualGL) copy frames to the visible display that runs on the integrated graphics. The ability to use discrete graphics depends on the driver: open source nouveau and proprietary nvidia.

 

Primus is a shared library that provides OpenGL and GLX APIs and implements low-overhead local-only client-side OpenGL offloading via GLX forking, similar to VirtualGL. It intercepts GLX calls and redirects GL rendering to a secondary X display, presumably driven by a faster GPU. On swapping buffers, rendered contents are read back using a PBO and copied onto the drawable it was supposed to be rendered on in the first place.

 

Primus is currently intended to be used alongside Bumblebee and provides a drop-in replacement for optirun (i.e. "primusrun").

Diagnostic tools to manage graphic cards:

  • sudo lspci | grep VGA (Detect Multiple Graphics Cards)
  • sudo nvidia-xconfig (X Configure for NVIDIA Driver)
  • sudo optirun glxgears info (Testing Command for Bumblebee)
  • sudo cat /proc/acpi/bbswitch (Checking Status)
  • sudo tee /proc/acpi/bbswitch <<<OFF or <<<ON (Power Management)

 

Bumblebee

 

NVIDIA Settings Panel

The nvidia-settings utility is a tool for configuring the NVIDIA Linux graphics driver. It operates by communicating with the NVIDIA X driver, querying and updating state as appropriate. This communication is done with the NV-CONTROL X extension.

 

Values such as brightness and gamma, XVideo attributes, temperature, and OpenGL settings can be queried and configured via nvidia-settings.

 

Nvidia Panel

 

FreeBSD Graphics Driver

So how do you identify your processor?

If you don't know your processors name, run the following command:

% dmesg | grep CPU:
CPU: Intel(R) Core(TM) i7-4600U CPU @ 2.10GHz (2693.83-MHz K8-class CPU)

 

Decide Which Driver to Use

The numbering in the table below shows the Intel Core i3, Core i5 and Core i7 family of processors, including it's mobile and desktop parts:

 

2xxx Sandy Bridge (i915kms.ko in base)

3xxx Ivy Bridge (i915kms.ko in base)

4xxx Haswell (i915kms.ko in base)

5xxx Broadwell (i915kms.ko from ports graphics/drm-next-kmod)

6xxx Skylake (i915kms.ko from ports graphics/drm-next-kmod)

7xxx Kaby Lake (i915kms.ko from ports graphics/drm-next-kmod)

(I'm going a little deeper into, how you identify your Pentium, Celeron or Xeon processor in a minute)

 

First, for those who got one of the above processors and can't wait...

 

If your processor is supported by the i915kms.ko driver in the base system, add the following lines to /etc/rc.conf

kld_list="i915kms"

In case you have created a xorg.conf, remove it and reboot. That's it. or...

 

If your processor is supported by the i915kms.ko driver from the ports, add the following lines to /etc/rc.conf

kld_list="/boot/modules/i915kms.ko"

In case you have created a xorg.conf, remove it and reboot. That's it.

 

Example Configuration For Post Broadwell System

A common configuration is a user who has an Intel laptop with a Kabylake Intel i915 HD Graphics chip. To enable the chipset one would follow these instructions:

 

Install the drm-kmod package

# sudo pkg install drm-kmod

 

Take note of the post-install package message as it contains important information - specifically add this to your /etc/rc.conf or /etc/rc.conf.d/intel file:

 

kld_list="/boot/modules/i915kms.ko"

 

Ensure your UID is a member of the "video" group.

Restart your system; you should see the i915kms.ko get loaded and a flash on your console as we switch over to the new display driver.

Start Xorg via your usual method (i.e. startx, GDM, etc.)

Note: For systems that are able to take advantage of this updated DRM code you should not have to prepare an xorg.conf configuration file, nor should you install xf86-video-intel port. Our Xorg should autodetect the driver, and utilize the modesetting Xorg driver and glamor driver.

 

AMD Graphics

AMD based GPUs are also supported using the drm-kmod port or package. Unlike the i915 Intel graphics driver there are two separate modules available for AMD devices based on their generation. The modules are named:

  • amdgpu
  • radeonkms

 

To view the AMD graphics support matrix view this page. The Xorg project also has a great resource on decoding AMD marketing names to engineering friendly names here.

It is important to note that there is currently a conflict with both AMD drivers and the EFI frambuffer. The current workaround, when booting via UEFI on these systems, is to disable the framebuffer via /boot/loader.conf:

 

hw.syscons.disable=1

 

This will have the side effect of there being no console output until either the amdgpu or radeonkms kernel driver is loaded. Please see this Github issue for more context.

One final note - there is a patch available here that will allow you to use Vulkan, OpenCL, Xwayland and OpenMW when using Wayland.

 

AMD GPU

AMD GPU is the kernel module that can be used to support post-HD7000 or Tahiti GPUs. To enable graphics on these systems you would do the following:

 

Install the drm-kmod package

# sudo pkg install drm-kmod

 

Take note of the post-install package message as it contains important information - specifically add this to your /etc/rc.conf or /etc/rc.conf.d/amd file:

 

kld_list="/boot/modules/amdgpu.ko"

 

Ensure that your UID is a member of the "video" group.

Restart your system; you should see the amdgpu.ko get loaded and a flash on your console as we switch over to the new display driver.

Start Xorg via your usual method (i.e. startx, GDM, etc.)

 

Radeon KMS

Radeon KMS is a distinct driver intended for older AMD based GPUs that are available in pre-HD7000 or Tahiti GPUs. To enable graphics on systems with these GPUs you would do the following:

 

Install the drm-kmod package

# sudo pkg install drm-kmod

 

Take note of the post-install package message as it contains important information - specifically add this to your /etc/rc.conf or /etc/rc.conf.d/radeon file:

 

kld_list="/boot/modules/radeonkms.ko"

 

Ensure that your UID is a member of the "video" group.

Restart your system; you should see the radeonkms.ko get loaded and a flash on your console as we switch over to the new display driver.

Start Xorg via your usual method (i.e. startx, GDM, etc.)

 

FreeBSD Xorg Configs

Editing /usr/local/etc/X11/xorg.conf with Administration Privilege to:

In case of failures at boot to start graphical environment the following parameters can be helpful for the most built-in GPU Intel processors.

 

Section "ServerLayout"

Identifier "X.org Configured"

Screen 0 "Screen0" 0 0

EndSection

 

Section "Files"

ModulePath "/usr/local/lib/xorg/modules"

FontPath "/usr/local/lib/X11/fonts/misc/"

FontPath "/usr/local/lib/X11/fonts/TTF/"

FontPath "/usr/local/lib/X11/fonts/OTF/"

FontPath "/usr/local/lib/X11/fonts/Type1/"

FontPath "/usr/local/lib/X11/fonts/100dpi/"

FontPath "/usr/local/lib/X11/fonts/75dpi/"

EndSection

 

Section "Monitor"

Identifier "Monitor0"

VendorName "Monitor Vendor"

ModelName "Monitor Model"

EndSection

 

Section "Device"

Identifier "Card0"

Driver "intel"

BusID "PCI:0:2:0"

EndSection

 

Section "Screen"

Identifier "Screen0"

Device "Card0"

Monitor "Monitor0"

DefaultDepth 24

Option "TwinView" "0"

Option "SWCursor" "on"

Option "HWCursor" "off"

SubSection "Display"

Option "DynamicTwinView" "false"

Depth 24

EndSubSection

EndSection

 

Section "Extensions"

Option "Composite" "Disable"

EndSection