Menu

Home

M. Scheerer

WHAT IT IS

This is Xamp, the next generation of a high secure, skinnable and platform independent media player which based on the Doppio media framework. Parts of the GUI code of the Xamp player is loosely based on a former given up version of the open source project named jlGui (Java Sound API Player) on http://www.javazoom.net/jlgui/archives.html

Xamp was developed to be a real media player supporting various pluggable video and audio formats and is primarily intended to run as a native executable but can also run as a Java player version working with Java 1.1 VM or above.

Development goals

-Eliminating all media player related security issues and also security updates:
According to http://j00ru.vexillium.org/?p=2211 and https://en.wikipedia.org/wiki/Stagefright_(bug) exploitable security bugs in today's media frameworks are very common.
Google is working hard to solve the problem, but improves only one (forked) single part of a media framework library and states:

"Hopefully, one day we will be able to declare both project “fuzz clean” against most publicly available samples and simple mutation algorithms.
Until then, we recommend to refrain from using either of the two projects to process untrusted media files or alternatively
to use privilege separation on your PC or production environment, where absolutely required."

Xamp offers a complete 100% solution now - not once a day. To solve the problem two techniques called sandboxing and virtualization are used.
So thousands of security bugs cannot be exist any more in a media player.

-Security:
Xamp is designed to process untrusted media files.

-Performance:
A media player should require less memory during long working sessions and less CPU amount. This is accomplished through parallel computing, that means using several CPU's at once, using high performance algorithms in the decoders and a reliable memory management. Later is sometimes an issue in today's media frameworks.

-Reliability
A media player must be play any valid media source without any issues if the media format is supported. The Xamp player contains the only decoder(system) be able to pass the official Ogg test suite on: https://wiki.xiph.org/TheoraTestsuite
Also the new developed MP3 decoder (Hera) was tested with official test suits like ISO/IEC 11172 part 4. In addition this decoder supports also the rare supported free format up to a bitrate of 640KB/s. Further informations are on the pages [State of the MP3 decoder development] and [State of the Ogg Theora decoder development].

-Support of professional applications:
There are some professional high end applications which need some extra features like enhanced video navigation with significantly faster interactive search in video.
Xamp supports enhanced video navigation techniques which are outperforming existing solutions.
Video navigation is a subject of research.
See http://ngvb.net/wp-content/uploads/2014/11/hudelist_knt.pdf

-Support of open codecs:
Open codecs like Ogg are not well supported and maintained in open source players and from open codec organisations.
Xamp shows that Ogg is even better than other media container systems in case of usability and video navigation.

-Click to ready installation for end users
Because Xamp doesn't rely on other computer libraries which must be installed with the correct version, there are no installation issues for end users.
Even the compiling the sources is a "one two three" job (see below).

Features

Xamp supports currently decoding (playback) with following features:

-playing media from local files
-progressive downloading media from internet sources
-rewinding with picture preview
-represents metadata stored in a database of a media
-spectrum analysing with time and frequency representation
-equalizing
-fullscreen
-selectable video scaling algorithm
-drag and drop files and folders
-M3U and PLZ playlist support

Media format support

Ogg Sceleton (Metadata)
Ogg Comment (Metadata)
ID3 (Metadata)
Ogg Vorbis (Audio)
Wave (Audio)
Snd (Audio)
AU (Audio)
AIFF (Audio)
Ogg Theora (Video + Audio)
MP1, MP2, MP3 (Audio)
Mpeg1 (Video + Audio)
Mpeg2 (Video + Audio)

Media format comparisons

H264 versus VP8
http://www.streamingmediaglobal.com/Articles/ReadArticle.aspx?ArticleID=68594&PageNum=3
And then compare VP8 with Ogg Theora
http://www.streamingmediaglobal.com/Articles/ReadArticle.aspx?ArticleID=68594&PageNum=3

Ogg Theora vsus H264
http://jasonmillerdesign.com/Blog/Ogg_or_MP4_The_HTML5_Video_Codec_Comparison

Ogg Vorbis versus AAC
http://listening-tests.hydrogenaud.io/igorc/results.html
http://listening-test.coresv.net/results.htm

Usage

Gui usage is much like Winamp:

Start the player, drag drop media file(s) or folder(s) with files, switch the focus to the video screen with pressing on or two times the TAB-key
until the border of the video screen enlightens, press F-Key (full screen), press again TAB-key to switch the focus back to the player,
use left arrow and/or right arrow to control rewinding.

If the graphic system is not powerful enough for scaled video display, you can use the Q(uality)-Key if the video screen has the focus.

Command line usage

-j true - switches off jpeg picture decoding of image tags.

         You can increase the security of the player against trojan media sources to ensure, that the only one possible decoder written in C/C++ instead of Java is switched off.

-p true - switches on video seeking image preview.

         You can increase the video/audio seek performance with the fast seeking option!

-s true - switches on streaming mode in case of internet connection.

         You can increase the performance with the streaming option, but you cant't then seek and loop any more!

-v true - switches on verbose mode.

         Prints all available informations about the played media to the standart output!

-a small (large) - switches on the aspect ratio preserving with the options small or large.

-c Mpeg2 Mpeg4 Ogg - activates and loads ljmf plug-ins with the names Mpeg2, Mpeg4, and Ogg.

Compiling

Compiling Java:
-Install Java SDK
-Execute the Ant script to create an executable jar file
-Execute the executable jar file in the dist folder to start the player

Project Members:


Related

Wiki: State of the MP3 decoder development
Wiki: State of the Ogg Theora decoder development