Skip to content

nexgenta/mhegenc

Repository files navigation

                   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.

About

Clone/fork of mhegenc, originally authored by Samsung

Resources

License

Stars

Watchers

Forks

Packages

No packages published