Menu

Tree [745266] master /
 History

HTTPS access


File Date Author Commit
 src 2015-09-25 Michael Scheerer Michael Scheerer [745266] code cleanup
 techdocs 2015-05-15 Michael Scheerer Michael Scheerer [95b32f] techdocs2
 AUTHORS 2015-04-24 Michael Scheerer Michael Scheerer [b63f05] Initial commit
 LICENCE 2015-04-24 Michael Scheerer Michael Scheerer [b63f05] Initial commit
 README 2015-06-12 Michael Scheerer Michael Scheerer [98db20] bugfixing broken seeking in case of mp3 and mpeg
 README.media.applet 2015-04-24 Michael Scheerer Michael Scheerer [b63f05] Initial commit
 build.xml 2015-04-24 Michael Scheerer Michael Scheerer [b63f05] Initial commit
 icon.gif 2015-04-24 Michael Scheerer Michael Scheerer [b63f05] Initial commit

Read Me

WHAT IT IS
----------

This is Doppio, a programming language independent lightweight media framework which is currently implemented as a Java and a J# version named Lightweight Java/.NET Media Framework (LJMF).
There's also a C# version in development.


Features
--------
Doppio supports currently decoding (playback) with following features:

-Non progressive, progressive download or full streaming from local or internet sources
-rewinding with picture preview in all above mentioned use cases
-internal database storing and query metadata of a media
-handle many media streams
-spectrum analysing with time and frequency representation
-equalizing
-fullscreen (Media Applet)
-selectable video scaling algorithm (Media Applet)
-dual monitor support (Media Applet)
-plugging various media formats


Media format support
---------------------

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

Trans/encoding support for running on servers is planned.


Compiling
---------

Compiling Java:
-Install Java SDK
-Delete folder src/org/ljmf/audio/dotnet
-Execute the Ant script to create a jar file

Compiling J#:
-Install .NET SDK, J# SDK and DirectSound SDK 
-Delete folder src/org/ljmf/audio/java
-Execute the J# compiler: e.g. C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\vjc.exe /o /r:"C:\WINDOWS\Microsoft.NET\Managed DirectX\v9.03.91\Microsoft.DirectX.DirectSound.dll" /t:library /out:doppio.dll /recurse:org\*.java 

Compiling C#
-Install .NET SDK and DirectSound SDK
-Execute the C# compiler: e.g. C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\csc.exe /o /r:"C:\WINDOWS\Microsoft.NET\Managed DirectX\v9.03.91\Microsoft.DirectX.DirectSound.dll" /t:library /out:doppio.dll /recurse:org\*.cs 


Installation
------------

Using the compiled framework under arbitrary Java languages:

Bind the library as a JAR into the target project.


Using the compiled framework under arbitrary .NET languages J#):

Bind the library as a DLL into the target project.
With .NET versions higher than 3.5 use this workaround - here's a C# example:

The following code needs to be called in your C# code before instantiating any classes or calling any code in a J# DLL. 
After you call this, you can then call all of your J# code. You load the library explicitly and then Windows already knows its location.

Simple example:

    using System;
    using System.IO;
    using System.Runtime.InteropServices;
    using net.windward.api.csharp;

    namespace TestNet40
    {
        class Program
        {
            [DllImport("kernel32", SetLastError = true)]
            static extern IntPtr LoadLibrary(string lpFileName);

            static void Main(string[] args)
            {
                if (Environment.Version.Major >= 4)
                {
                    string folder = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.System), @"..\Microsoft.NET\Framework\v2.0.50727");
                    folder = Path.GetFullPath(folder);
                    LoadLibrary(Path.Combine(folder, "vjsnativ.dll"));
                }

                // now call J# code
                Report.Init();
                Console.Out.WriteLine("success!");
            }
        }
    }

Shipping the .NET project:

Include the needed J# runtime into the Setup.exe:
http://www.microsoft.com/en-us/download/details.aspx?id=15468


Using the compiled framework under arbitrary .NET languages (C#):

Bind the library as a DLL into the target project.