aboutsummaryrefslogtreecommitdiffstats
path: root/interfaces.tex
diff options
context:
space:
mode:
authorMatthias P. Braendli <matthias.braendli@mpb.li>2014-07-25 16:28:20 +0200
committerMatthias P. Braendli <matthias.braendli@mpb.li>2014-07-25 16:28:20 +0200
commit7597f457e80fa732e69a60ae2d2ef8fd44727b29 (patch)
treeaa83a4031a90af665e27cf92a096f07aa3625662 /interfaces.tex
parent855eaf31befd2fba2cf10f2b72d61cdb0febf4ad (diff)
downloadmmbtools-doc-7597f457e80fa732e69a60ae2d2ef8fd44727b29.tar.gz
mmbtools-doc-7597f457e80fa732e69a60ae2d2ef8fd44727b29.tar.bz2
mmbtools-doc-7597f457e80fa732e69a60ae2d2ef8fd44727b29.zip
Add some files and pipes content
Diffstat (limited to 'interfaces.tex')
-rw-r--r--interfaces.tex102
1 files changed, 102 insertions, 0 deletions
diff --git a/interfaces.tex b/interfaces.tex
index 80fbd87..d71a2a9 100644
--- a/interfaces.tex
+++ b/interfaces.tex
@@ -1,4 +1,106 @@
\section{Interfacing the Tools}
\subsection{Files and Pipes}
+The first versions of these tools used files and pipes to exchange data. For
+offline generation of a multiplex or a modulated I/Q, it is possible to
+generate all files separately, one after the other.
+
+Here is an example to generate a two-minute ETI file for a multiplex containing two programmes:
+\begin{itemize}
+ \item one DAB programme at 128kbps, encoded with toolame-dab
+ \item one \dabplus{} programme at 88kbps, encoded with fdk-aac-dabplus
+\end{itemize}
+
+We assume that the audio data for the two programmes is located in uncompressed
+48kHz WAV in the files \filename{prog1.wav} and \filename{prog2.wav}. The first step
+is to encode the audio. The DAB programme is encoded to \filename{prog1.mp2} using:
+\begin{lstlisting}
+toolame -b 128 prog1.wav prog1.mp2
+\end{lstlisting}
+
+The DAB+ programme is encoded to \filename{prog2.dabp}. The extension
+\filename{.dabp} is arbitrary, but since the framing is not the same as for
+other AAC encoded audio, it makes sense to use a special extension. The command
+is:
+\begin{lstlisting}
+dabplus-enc -i prog2.wav -b 88 -a o prog2.dabp
+\end{lstlisting}
+
+These resulting files can then be used with ODR-DabMux to create an ETI file.
+ODR-DabMux supports many options, which makes it much more practical to set
+the configuration using a file than using very long command lines. Here is a short
+file that can be used for the example, which will be saved as \filename{2programmes.mux}:
+\begin{lstlisting}
+general {
+ dabmode 1
+ nbframes 5000
+}
+remotecontrol { telnetport 0 }
+ensemble {
+ id 0x4fff
+ ecc 0xec ; Extended Country Code
+
+ local-time-offset auto
+ international-table 1
+ label "mmbtools"
+ shortlabel "mmbtools"
+}
+services {
+ srv-p1 { label "Prog1" }
+ srv-p2 { label "Prog2" }
+}
+subchannels {
+ sub-p1 {
+ type audio ; MPEG
+ inputfile "prog1.mp2"
+ bitrate 128
+ id 10
+ protection 5
+ }
+ sub-p2 {
+ type dabplus
+ inputfile "prog2.dabp"
+ bitrate 88
+ id 1
+ protection 1
+ }
+}
+components {
+ comp-p1 {
+ label Prog1
+ service srv-p1
+ subchannel sub-p1
+ }
+ comp-p2 {
+ label Prog2
+ service srv-p2
+ subchannel sub-p2
+ }
+}
+outputs { output1 "file://myfirst.eti?type=raw" }
+\end{lstlisting}
+
+This file defines two components, that each link one service and one
+subchannel. The IDs and different protection settings are also defined.
+
+The bitrates defined in the subchannels must correspond to the bitrate set at the encoder.
+
+The duration of the ETI file is limited by the \lstinline{nbframes 5000} setting. Each frame
+corresponds to $24$\ms, and therefore $120 / 0.024 = 5000$ frames are needed
+for $120$ seconds.
+
+The output is written to the file \filename{myfirst.eti} in the ETI(NI) format. Please
+see Appendix~\ref{etiformat} for more options.
+
+To run the multiplexer, run:
+\begin{lstlisting}
+odr-dabmux -e 2programmes.mux
+\end{lstlisting}
+
+This will generate the file \filename{myfirst.eti}, which will be $5000 * 6144
+\approx 30$\si{MB} in size.
+
+Congratulations! You have just created your first DAB multiplex! With the configuration file,
+adding more programmes is easy. More information is available in the \filename{doc/example.mux}
+
\subsection{Over the Network}
\subsubsection{Authentication Support}