Skip to content
/ mhegenc Public

Automatically exported from code.google.com/p/mhegenc

License

Notifications You must be signed in to change notification settings

blxd/mhegenc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

                   MHEG-5 encoder/decoder `mhegenc`
               ===============================================
              Copyright (c) 2003 Samsung Electronics (UK) Ltd.
              Copyright (c) 2005,2007 SpongeLava Ltd.
              Copyright (c) 2013 Strategy & Technology 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 or later

  http://www.fokus.gmd.de/ovma/freeware/snacc/
  https://github.com/nevali/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

On more recent linux distributions, it takes a newer snacc to not explode.
Ubuntu seems to have a package for it, or you'll need to do the autoconf dance
with the github source above.

> git clone https://github.com/nevali/snacc.git
> cd snacc
> libtoolize
> aclocal
> autoheader
> automake --add-missing
> autoconf
> ./configure
> make
> make install


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 mhegenc@spongelava.com

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

About

Automatically exported from code.google.com/p/mhegenc

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages