Generate ETI file with odr-dabmux

1,232 views
Skip to first unread message

David LONY

unread,
May 5, 2014, 11:24:05 AM5/5/14
to crc-mm...@googlegroups.com
Hi All,

I'm trying to use odr-dabmux to generate some ETI file for my modulator (Dektec DTU 215). There is my command line

odr-dabmux -i1 -L ENSLABEL -A ~/Streams/ChangeLabel/Milca.mp2 -i11 -b 128 -n 10000 -S -i111 -L SLABEL -C -L SCLABEL -i1 -O file://test4.eti


I've a lot of warning like that :

WARN  file has a frame with original bit set
      Subchannel 0 read failed at ETI frame number: 9986
WARN  file has a frame with original bit set
      Subchannel 0 read failed at ETI frame number: 9987
WARN  file has a frame with original bit set
      Subchannel 0 read failed at ETI frame number: 9988
WARN  file has a frame with original bit set
      Subchannel 0 read failed at ETI frame number: 9989
WARN  file has a frame with original bit set
      Subchannel 0 read failed at ETI frame number: 9990
WARN  file has a frame with original bit set
      Subchannel 0 read failed at ETI frame number: 9991


I'm not sure if it is normal but I wanted to know if I'm using correctly the tool.

Thanks in advance
Best regards

Pascal Charest

unread,
May 5, 2014, 11:26:16 AM5/5/14
to crc-mm...@googlegroups.com
Your MP2 file is encoded with original bit set. There will be many
receiver that will refuse to decode it. Encode again your audio file
without using the original bit.

Pascal

David LONY

unread,
May 5, 2014, 11:34:50 AM5/5/14
to crc-mm...@googlegroups.com
Ok. I'm using twolame to encode the mp2 file.

I've taken the original file (wav file) 

Now there is the format of my file :

file Milca.mp2 
Milca.mp2: MPEG ADTS, layer II, v1, 192 kbps, 48 kHz, Stereo


Now it is another warning :

WARN  data underflow -> frame muted
      Subchannel 0 read failed at ETI frame number: 4796
WARN  data underflow -> frame muted
      Subchannel 0 read failed at ETI frame number: 4797
WARN  data underflow -> frame muted

David LONY

unread,
May 5, 2014, 11:46:14 AM5/5/14
to crc-mm...@googlegroups.com
I think I succedded !!

I was using twolame badly. I have encoded my file like that instead :

twolame -o Milca.wav

Then 

odr-dabmux  -L ENSLABEL -A ~/Streams/ChangeLabel/Milca.mp2 -b 192  -n 10000 -S -i111 -L SLABEL -C -L SCLABEL -O file://test4.eti



Now the output seems ok :


Her Majesty the Queen in Right of Canada
(Communications Research Centre Canada) All rights reserved.

Copyright (C) 2013, 2014 Matthias P. Braendli

Input URLs supported:
 prbs test slip udp fifo file
Inputs format supported:
 raw bridge mpeg packet dmb epm
Output URLs supported:
 file fifo udp tcp simul

WARN  Can't increase priority: Permission denied
      ODR-DabMux 0.7.0 starting up
      --- Multiplex configuration ---
      Ensemble
       id:          0xc000 (49152)
       ecc:         0xa1 (161)
       label:       ENSLABEL
       short label: ENSLABEL
       (0xff00)
       mode:        2
       lto:         1088216786.000000
       intl. table. 1768842596
      --- Subchannels list ---
      Subchannel   0
       input
         protocol: file
         name:     /home/d-lony/Streams/ChangeLabel/Milca.mp2
       type:       audio
       id:         0
       bitrate:    192
       protection: UEP 3
        form:      short
        switch:    0
        index:     45
       SAD:        0
       size (CU):  140
      --- Services list ---
      Service       ?
       label:       SLABEL
       short label: SLABEL
       (0xff00)
       id:          0x6f (111)
       pty:         0x0 (0)
       language:    0x0 (0)
      --- Components list ---
      Component     ?
       service id:             111
       subchannel id:          0
       label:                  SCLABEL
       short label:            SCLABEL
       (0xff00)
       service component type: 0x0 (0)
       (packet) id:            0
       (packet) address:       0
       (packet) app type:      0
       (packet) datagroup:     0
      --- Output list ---
      Output      0
        protocol: file
        name:     test4.eti
      exiting...
      ...done

Rash

unread,
May 5, 2014, 12:15:32 PM5/5/14
to crc-mm...@googlegroups.com, crc-mm...@googlegroups.com
Hello David,

I'd not pop the champagne just yet! The mp2 DAB extensions got broken in 'twolame' years ago during some source cleansing exercise - it has never been fixed, so it won't work properly, if at all!

I suggest that you get the 'toolame' source, or better still toolame-dab from the ODR GitHub which does support the DAB extensions.

Regards,

Rash.
--
You received this message because you are subscribed to the Google Groups "mmbtools" group.
To unsubscribe from this group and stop receiving emails from it, send an email to crc-mmbtools...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

David LONY

unread,
May 5, 2014, 1:35:11 PM5/5/14
to crc-mm...@googlegroups.com
Thank a lot Rash. I will try tonight to get the toolame-dab source.

Does it exist a gui for odr-dabmux ? If no, I will try to write one

Matthias P. Braendli

unread,
May 5, 2014, 3:17:49 PM5/5/14
to crc-mm...@googlegroups.com
Hi David,

On 05. 05. 14 19:35, David LONY wrote:
> Does it exist a gui for odr-dabmux ? If no, I will try to write one

No, there is no GUI. I don't have the intention to write one, because
the main application I'm aiming for is headless, e.g. in server
environments where you have no use for a GUI.

However, I'm glad to hear that you're interested in developing one, and
I can only encourage you! An approach that might be worth considering (I
will push you in that direction :-) ) would be a GUI that can be used to
generate a configuration file like this one:
https://github.com/Opendigitalradio/ODR-DabMux/blob/master/doc/example.mux

This file contains all the information for mux configuration, and can be
given to dabmux with the -e option. It also contains a lot of options
that are not available on the command line. It's better structured than
a command line, easier to save and backup, and more readable.

If you do a GUI that creates such a file and starts odr-dabmux, it'll be
appreciated by a lot of people ! Does this make sense to you, or did you
think of another way ?

In case of questions, don't hesitate to ask,

mpb

David LONY

unread,
May 6, 2014, 3:59:24 AM5/6/14
to crc-mm...@googlegroups.com
Ok Matthias. I will let you know.

David LONY

unread,
May 6, 2014, 4:02:34 AM5/6/14
to crc-mm...@googlegroups.com
Pfff. I've encoded my original file with toolame-dab and use odr-dabmux as following :

odr-dabmux  -i1 -L ENSLABEL -A ~/Streams/ChangeLabel/Milca.mp2 -b 128 -p3 -n 200000 -S -i11 -L SLABEL  -i111 -C -L SCLABEL -O file://test4.eti

Welcome to ODR-DabMux 0.7.0, compiled at May  5 2014, 10:22:36

Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
Her Majesty the Queen in Right of Canada
(Communications Research Centre Canada) All rights reserved.

Copyright (C) 2013, 2014 Matthias P. Braendli

Input URLs supported:
 prbs test slip udp fifo file
Inputs format supported:
 raw bridge mpeg packet dmb epm
Output URLs supported:
 file fifo udp tcp simul

WARN  Can't increase priority: Permission denied
      ODR-DabMux 0.7.0 starting up
      --- Multiplex configuration ---
      Ensemble
       id:          0x1 (1)
       ecc:         0xa1 (161)
       label:       ENSLABEL
       short label: ENSLABEL
       (0xff00)
       mode:        2
       lto:         1088216786.000000
       intl. table. 1768842596
      --- Subchannels list ---
      Subchannel   0
       input
         protocol: file
         name:     /home/d-lony/Streams/ChangeLabel/Milca.mp2
       type:       audio
       id:         0
       bitrate:    128
       protection: UEP 3
        form:      short
        switch:    0
        index:     35
       SAD:        0
       size (CU):  96
      --- Services list ---
      Service       ?
       label:       SLABEL
       short label: SLABEL
       (0xff00)
       id:          0x6f (111)
       pty:         0x0 (0)
       language:    0x0 (0)
      --- Components list ---
      Component     ?
       service id:             111
       subchannel id:          0
       label:                  SCLABEL
       short label:            SCLABEL
       (0xff00)
       service component type: 0x0 (0)
       (packet) id:            0
       (packet) address:       0
       (packet) app type:      0
       (packet) datagroup:     0
      --- Output list ---
      Output      0
        protocol: file
        name:     test4.eti
      reach end of file -> rewinding
      reach end of file -> rewinding
      reach end of file -> rewinding
      reach end of file -> rewinding
      reach end of file -> rewinding
      reach end of file -> rewinding
      reach end of file -> rewinding
      reach end of file -> rewinding
      reach end of file -> rewinding
      reach end of file -> rewinding
      reach end of file -> rewinding
      reach end of file -> rewinding
      reach end of file -> rewinding
      reach end of file -> rewinding
      reach end of file -> rewinding
      reach end of file -> rewinding
      reach end of file -> rewinding
      reach end of file -> rewinding
      reach end of file -> rewinding
      exiting...
      ...done


I tried then to modulate this ETI file but I'm unable to play the audio :(

I think the generated ETI is not correct. How I can check if the ETI file is correct ?




Le lundi 5 mai 2014 17:24:05 UTC+2, David LONY a écrit :

Rash

unread,
May 6, 2014, 4:25:31 AM5/6/14
to crc-mm...@googlegroups.com
If you can get it still, OpenMokast just about plays the mp2 service components. There is also a basic ETI analyser on ODR, but I don't think you can verify the audio frames.

The 'rewinding' is a good sign though!

Sent from my iPhone

David LONY

unread,
May 6, 2014, 6:21:58 AM5/6/14
to crc-mm...@googlegroups.com
Thanks Rash,

I can read the generated ETI with OpenMokast. I tried to put the same ETI on StreamXpress (Dektec DTU 215) but it complains that is "Not a valid ETI Transport Stream".

Rashid Mustapha

unread,
May 6, 2014, 7:28:18 AM5/6/14
to crc-mm...@googlegroups.com
I'm not familiar with that unit I'm afraid.

You might need to make sure that you are generating the ETI in the appropriate format for your modulator.
It is probably being fussy about the format and expects either raw, or framed.

R.

David LONY

unread,
May 6, 2014, 7:59:09 AM5/6/14
to crc-mm...@googlegroups.com
This unit can modulate ETI taken from the library of WorldDMB. So I think it is a format problem.

Thanks for the help anyway

David LONY

unread,
May 6, 2014, 8:03:49 AM5/6/14
to crc-mm...@googlegroups.com
Can someone can give me the exact command line to generate an ETI file ?

I just want to generate an ETI file with 1 audio subchannel ?

Perhaps I have done something wrong 


Le lundi 5 mai 2014 17:24:05 UTC+2, David LONY a écrit :

Rashid Mustapha

unread,
May 6, 2014, 8:16:06 AM5/6/14
to crc-mm...@googlegroups.com
odr-dabmux can output either framed or raw ETI files - adjust to taste!

R.

David LONY

unread,
May 6, 2014, 8:22:41 AM5/6/14
to crc-mm...@googlegroups.com
I've tested with -r for framed output 

sudo odr-dabmux -r -i1 -L Ensemble  -A ~/Streams/ChangeLabel/Milca.mp2  -b 128 -i1 -n 200000 -S -i11 -L Service -C -L ServiceComponent  -O file://test4.eti 

Welcome to ODR-DabMux 0.7.0, compiled at May  5 2014, 10:22:36

Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
Her Majesty the Queen in Right of Canada
(Communications Research Centre Canada) All rights reserved.

Copyright (C) 2013, 2014 Matthias P. Braendli

Input URLs supported:
 prbs test slip udp fifo file
Inputs format supported:
 raw bridge mpeg packet dmb epm
Output URLs supported:
 file fifo udp tcp simul

      Enabling throttled output using simul, one frame every 24ms
terminate called after throwing an instance of 'std::logic_error'
  what():  basic_string::_S_construct null not valid


Any idea ?

David LONY

unread,
May 6, 2014, 1:22:08 PM5/6/14
to crc-mm...@googlegroups.com
I looked at the ETI standard (http://www.etsi.org/deliver/etsi_i_ets/300700_300799/300799/01_30_9733/ets_300799e01v.pdf)

It seems that the generated file is not ETI compliant (ETI(NI, G.703) or the ETI(NI, V11) )

My generated file begin with 01 00 00 00 b8 02 ff 07  3a b6 00 81


But according to the spec it should start by xx 07  3a b6 00 81

Is it an bug or do I misunderstand the specification ? Does odr-dabmux generates ETI v11 or ETI G.703 ?

Best regards


Le lundi 5 mai 2014 17:24:05 UTC+2, David LONY a écrit :

Matthias P. Braendli

unread,
May 6, 2014, 2:57:40 PM5/6/14
to crc-mm...@googlegroups.com
On 06. 05. 14 14:22, David LONY wrote:
> I've tested with -r for framed output
>
> sudo odr-dabmux -r -i1 -L Ensemble -A ~/Streams/ChangeLabel/Milca.mp2
> -b 128 -i1 -n 200000 -S -i11 -L Service -C -L ServiceComponent -O
> file://test4.eti
>

> Enabling throttled output using simul, one frame every 24ms
> terminate called after throwing an instance of 'std::logic_error'
> what(): basic_string::_S_construct null not valid
>
>
> Any idea ?

Hi David,

the throttle output appears to be broken when configured on the command
line, that's a bug. Thanks for pointing this out, I will fix this soon.

The -r option does not enable framed output, it enables throttling. For
offline generation of an ETI file you don't need this.

Try without -r and with -O file://test4.eti?type=framed

mpb

Matthias P. Braendli

unread,
May 6, 2014, 3:05:54 PM5/6/14
to crc-mm...@googlegroups.com
Hi David,

odr-dabmux supports three different output formats (that are, I agree,
not well documented)

There was a post from Pascal on the mmbtools forum:

"""
The three formats are called framed, streamed and raw.
The framed format is used for saving a finite ETI stream into a file.
Each frame does
not contain any padding, and the format can be described as follows:

uint32_t nbFrames
// for each frame
uint16_t frameSize
uint8_t data[ frameSize ]

When streaming data, in which case the number of frames is not known in
advance,
the streamed format can be used. This format is identical to the first
one except for the
missing nbFrames.

// for each frame
uint16_t frameSize
uint8_t data[ frameSize ]

The raw format corresponds to ETI(NI), where each frame has a constant
size of 6144
Bytes. The padding in this case is necessary.

// for each frame
uint8_t data [6144]

In order to select the format, the following syntax for the -O option is
used: -O
file://filename?type=format, where format is one of framed, streamed or raw.
"""

I would try the raw output, that is probably the best if you want to
interact with other tools.

mpb



On 06. 05. 14 19:22, David LONY wrote:
> I looked at the ETI standard
> (http://www.etsi.org/deliver/etsi_i_ets/300700_300799/300799/01_30_9733/ets_300799e01v.pdf)
>
> It seems that the generated file is not ETI compliant (ETI(NI, G.703) or
> the ETI(NI, V11) )
>
> My generated file begin with *01 00 00 00 b8 02 ff* *07 3a b6* *00 81*
>
>
> But according to the spec it should start by *xx 07 3a b6 00 81*
> *
> *
> --
> You received this message because you are subscribed to the Google
> Groups "mmbtools" group.
> To unsubscribe from this group and stop receiving emails from it, send
> an email to crc-mmbtools...@googlegroups.com
> <mailto:crc-mmbtools...@googlegroups.com>.

David LONY

unread,
May 6, 2014, 3:48:13 PM5/6/14
to crc-mm...@googlegroups.com
Thanks Matthias,

Seems better with the raw option !

The ETI file begin by ff 07 3a b6 00 81

Can I suggest (for next version) to put into the help an explanation about this feature ?

Best regards
David

Matthias P. Braendli

unread,
May 6, 2014, 3:49:51 PM5/6/14
to crc-mm...@googlegroups.com
Great !

I added it here:
https://github.com/Opendigitalradio/ODR-DabMux/blob/master/doc/dab_output_formats.txt

cheers,
mpb

On 06. 05. 14 21:48, David LONY wrote:
> Thanks Matthias,
>
> Seems better with the raw option !
>
> The ETI file begin by ff*07 3a b6* 00 81
> --
> You received this message because you are subscribed to the Google
> Groups "mmbtools" group.
> To unsubscribe from this group and stop receiving emails from it, send
> an email to crc-mmbtools...@googlegroups.com
> <mailto:crc-mmbtools...@googlegroups.com>.

David LONY

unread,
May 6, 2014, 3:51:44 PM5/6/14
to crc-mm...@googlegroups.com
Again thanks for the support !

It is much more understandable now !

David LONY

unread,
May 6, 2014, 3:59:47 PM5/6/14
to crc-mm...@googlegroups.com
Thanks !

David LONY

unread,
May 6, 2014, 4:01:32 PM5/6/14
to crc-mm...@googlegroups.com
The StreamXpress is now able to read the generated ETI file !

I will try tomorrow if I'm able to listen to the audio
Reply all
Reply to author
Forward
0 new messages