Git Product home page Git Product logo

mhegenc's Introduction

                   MHEG-5 encoder/decoder `mhegenc`
               ===============================================
              Copyright (c) 2003 Samsung Electronics (UK) Ltd.
              Copyright (c) 2005,2007 SpongeLava Ltd.

Licence
=======
See the LICENCE file.

Installation
============
Just some simple instructions, the build system will likely be the
last thing to get sorted out.

Prerequisites
-------------
flex

  http://www.gnu.org/software/flex/flex.html

A similar scanner tool may work, but it needs to have the lookahead
feature (r/s)

bison 

  http://www.gnu.org/software/bison/bison.html

or similar. 

snacc 1.3

  http://www.fokus.gmd.de/ovma/freeware/snacc/

Only the c-lib is needed. The source distribution for mhegenc includes
the snacc-generated (and hand modified) files.

Install
-------
Installation can be a little tricky as snacc has suffered bit-rot over
the years. The last build for v0.9 on windows/cygwin went like this:
> tar -xvzf snacc-1.3.tar.gz
> cd snacc-1.3
> ./configure
Edit "makehead" and add -mno-cygwin to the CFLAGS line:
 CFLAGS                = -g -O2 -DFLEX_IN_USE -mno-cygwin
> make c-lib subtarget=install
Ignore errors from the last step so long as the library and headers
got installed.
> cd ../mhegenc
> make

Testing
-------
Regression testing is performed using the included python scripts. The
scripts use special test files that contain MHEG-5 Text notation for
an application or scene followed by the equivalent XER form of the
ASN.1 encoding. To run the test, the mhegtest.py script will use
mhegenc to encode the text to DER and then use mhegasn (see below) to
convert the XER to DER for comparison. They should be identical. If
not, the script should dump a diff between the XER encodings for easy
comparison. A similar scheme is implemented for the ASN.1 -> text
conversion. 

mhegasn is not included with the source distribution because of
copyright restrictions. It has to be rebuilt from the MHEG-5 ASN.1
definition using asn1c (http://lionet.info/asn1c). If you do have a
licence for the standard and access to the ASN.1 definition (with
extensions of course), creating mhegasn is a simple matter:
> asn1c -fnative-types -fcompound-names mheg_5_definition.asn
> gcc -I. -o mhegasn -DPDU=InterchangedObject *.c

mhegtest.py is run on a single mhtest file (as the sole argument).

runtests.py takes no arguments and runs everything under testfiles/

NOTE: the mhegtest.py script expects to find both mhegenc and mhegasn
in your PATH.

The full regression suite is also not included in the distribution
because of the complex copyright on most of the files used. 

Feel free to contribute tests to [email protected]

Language
--------
The language accepted by the encoder (and decoder) includes extensions
for the UK DTT broadcast profile and freesat extensions.

mhegenc's People

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.