Git Product home page Git Product logo

etisnoop's People

Contributors

basicmaster avatar coinchon avatar data2path avatar hairmare avatar linuxstb avatar mnhauke avatar mpbraendli avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

etisnoop's Issues

missing stdint.h in ensembledatabase.hpp

I get an error when compiling under Ubuntu 23.10 with 9734cb9.

compile_error.txt

make[1]: *** [Makefile:695: src/ensembledatabase.o] Error 1
make[1]: Leaving directory '/home/andreas/apps/etisnoop'
make: *** [Makefile:421: all] Error 2

Seems in src/ensembledatabase.hpp

#include <stdint.h>

was missing. Only then I could compile.

Wrong EEP value in FIG

Seems you have always to add 1 in order to get the correct EEP protection level for FIG (only there!).

There is no EEP 0-A and no EEP-0-B. In my example below I wrote this file:

test_protlev.txt

Subch 0x1
start_addr 0
long
**EEP 0-A**
subch size 144
Subch 0x5
start_addr 360
long
**EEP 0-B**
subch size 81

And the CUs are wrong, for 96 kBit
1A is 144 CU, 2A is 96, 3A is 72, 4A is 48, and so on.

TPL  - Sub-channel Type and Protection Level [0x20 - Equal Error Protection. 1-A, 1/4, 16 CUs] 
TPL  - Sub-channel Type and Protection Level [0x21 - Equal Error Protection. 2-A, 3/8, 8 CUs] 
TPL  - Sub-channel Type and Protection Level [0x22 - Equal Error Protection. 3-A, 1/2, 6 CUs] 
TPL  - Sub-channel Type and Protection Level [0x23 - Equal Error Protection. 4-A, 3/4, 4 CUs] 
TPL  - Sub-channel Type and Protection Level [0x24 - Equal Error Protection. 1-B, 4/9, 27 CUs] 
TPL  - Sub-channel Type and Protection Level [0x25 - Equal Error Protection. 2-B, 4/7, 21 CUs] 
TPL  - Sub-channel Type and Protection Level [0x26 - Equal Error Protection. 3-B, 4/6, 18 CUs] 
TPL  - Sub-channel Type and Protection Level [0x27 - Equal Error Protection. 4-B, 4/5, 15 CUs] 

Same special character displayed in 4 variants

Attached file from Austria includes a service with German special character ö, but it seems that etisnoop uses several different character tables to display it ...

console

  • in the long label ö
  • in the short lable �

yaml file

  • in the long lable ö
  • in the short lable � (maybe shown not correct here on github)

ors_8a_2020-06-14_1052.zip

$ LC_ALL=C etisnoop -n 10000 -i ./ors_8a_2020-06-14_1052.eti | LC_ALL=C grep "live" -B 10 | sort | uniq
Identified ETI type RAW
ERRORS: Not yet in DB
ERRORS: Not yet in DB
ERRORS: Not yet in DB
Error: FCT not contiguous
ERRORS: Not yet in DB
ERRORS: Not yet in DB
Incomplete frame in ETI file!
ETI file read error
    -
--
      Charset: 0
   CRC: OK
     Decoding:
   FIB: 1
   FIB: 2
     FIG: 1/1
   FIGs:
      Label: "jö.live         "
     Length: 21
     OE: 0
      Service ID: 0xAD56
      Short label: j�.live
      Short label mask: 0xFE00

$ LC_ALL=C etisnoop -n 10000 -i ./ors_8a_2020-06-14_1052.eti -s /tmp/ors_8a_2020-06-14_1052.yaml produces this yaml-file:
ors_8a_2020-06-14_1052.yaml.zip
where you can see

      label: jö.live         
      shortlabel: j�.live

Compilation on CentOS 7 fails: error: expected ')' before 'PRId64'

Compiling etisnoop on CentOS 7 fails with the following error:

fig0_21.cpp:193:56: error: expected ')' before 'PRId64'
                 sprintf(tmpbuf, ", database key=0x%09" PRId64, key);

After switching from #include <inttypes.h> to #include <cinttypes> etisnoop compiles correctly:

sed -i -e 's/^\(#include\) <inttypes.h>/\1 <cinttypes>/' \
    etisnoop.cpp utils.hpp wavfile.h

Number for N=Subchannel is wrong

The option -d N should decode subchannel N.

In fact N seems to be not the real subchannel, but it's numbered in nearly ascending order defined by etisnoop itself.

For example 5C (Bundesmux):
see older file from last year (makes no difference)
bumux1.zip

$ ni2out --list < bumux1.eti 
DR Deutschland   (0x10bc)
 0 : KLASSIK RADIO    (0xd75b) Pri subch= 6 start=198 CUs= 54 PL=eep-3a bitrate=72 DAB+
 1 : sunshine live    (0x15dc) Pri subch=21 start=336 CUs= 54 PL=eep-3a bitrate=72 DAB+
 2 : Radio Horeb      (0xd01c) Pri subch= 5 start=162 CUs= 36 PL=eep-3a bitrate=48 DAB+
 3 : ERF Plus         (0x1a64) Pri subch= 2 start=  0 CUs= 54 PL=eep-3a bitrate=72 DAB+
 4 : Dlf              (0xd210) Pri subch=10 start=480 CUs=104 PL=eep-2a bitrate=104 DAB+
 5 : Dlf Kultur       (0xd220) Pri subch=11 start=584 CUs=112 PL=eep-2a bitrate=112 DAB+
 6 : Dlf Nova         (0xd230) Pri subch=12 start=696 CUs=104 PL=eep-2a bitrate=104 DAB+
 7 : DRadio DokDeb    (0xd240) Pri subch=13 start=800 CUs= 36 PL=eep-3a bitrate=48 DAB+
 8 : Schwarzwaldradio (0x100d) Pri subch= 7 start=252 CUs= 42 PL=eep-2b bitrate=64 DAB+
 9 : ENERGY           (0x1a45) Pri subch= 4 start=108 CUs= 54 PL=eep-3a bitrate=72 DAB+
10 : SCHLAGERPARADIES (0x10c3) Pri subch=20 start=294 CUs= 42 PL=eep-2b bitrate=64 DAB+
11 : Absolut relax    (0x17fa) Pri subch= 3 start= 54 CUs= 54 PL=eep-3a bitrate=72 DAB+
12 : RADIO BOB!       (0x15dd) Pri subch=22 start=390 CUs= 54 PL=eep-3a bitrate=72 DAB+

etisnoop -i bumux1.eti -d 0
will extract ERF Plus

etisnoop -i bumux1.eti -d 1
will extract Absolut relax, although SCId 1 is not defined

etisnoop -i bumux1.eti -d 2
will extract ENERGY, not ERF Plus

etisnoop -i bumux1.eti -d 3
will extract Radio Horeb, not Absolute relax

and so on (0-8 and 10-15 for audio, 9 is the EPG and 10 and 16 are the TPEG services).

But when I sort all subchannels I wonder why N=9 should be EPG

subchid:02 prot:3A-EEP bitrate: 64 scids:0 scty: 63 (AAC) label:ERF Plus  [PAD]
subchid:03 prot:3A-EEP bitrate: 72 scids:0 scty: 63 (AAC) label:Absolut relax  [PAD]
subchid:04 prot:3A-EEP bitrate: 72 scids:0 scty: 63 (AAC) label:ENERGY  [PAD]
subchid:05 prot:3A-EEP bitrate: 48 scids:0 scty: 63 (AAC) label:radio horeb  [PAD]
subchid:06 prot:3A-EEP bitrate: 72 scids:0 scty: 63 (AAC) label:KLASSIK RADIO  [PAD]
subchid:07 prot:2B-EEP bitrate: 64 scids:0 scty: 63 (AAC) label:Schwarzwaldradio [PAD]
subchid:10 prot:2A-EEP bitrate:104 scids:0 scty: 63 (AAC) label:Dlf  [PAD]
subchid:11 prot:2A-EEP bitrate:112 scids:0 scty: 63 (AAC) label:Dlf Kultur  [PAD]
subchid:12 prot:2A-EEP bitrate:104 scids:0 scty: 63 (AAC) label:Dlf Nova  [PAD]
subchid:13 prot:3A-EEP bitrate: 48 scids:0 scty: 63 (AAC) label:DRadio DokDeb  [PAD]
subchid:14 prot:3A-EEP bitrate: 32 scid: 001 packet data DRadio Daten
subchid:20 prot:2B-EEP bitrate: 64 scids:0 scty: 63 (AAC) label:SCHLAGERPARADIES [PAD]
subchid:21 prot:3A-EEP bitrate: 72 scids:0 scty: 63 (AAC) label:sunshine live  [PAD]
subchid:22 prot:3A-EEP bitrate: 72 scids:0 scty: 63 (AAC) label:RADIO BOB!  [PAD]
subchid:30 prot:3A-EEP bitrate: 16 scid: 024 packet data EPG Deutschland
subchid:31 prot:3A-EEP bitrate: 16 scid: 023 packet data TPEG
subchid:33 prot:3A-EEP bitrate: 16 scid: 021 packet data TPEG_MM

Special chars not supported?

Remark: All outputs below are from -s file.txt

If you extract eti from the rawfiles from https://sdr.kt.agh.edu.pl/sdrdab-decoder/download.html (for example use eti-stuff from Jan, https://github.com/JvanKatwijk/eti-stuff ), you will see that special characters are not supported:

    - service_id: 0x3222
      subchannel_id: 0x2
      label: PR Dw�jka       
      shortlabel: Dw�jka

instead of Dwójka.

Or in Vienna,

    - service_id: 0xad0b
      subchannel_id: 0xd
      label: ARB×-Radio      
      shortlabel: ARB×

instead of ARBÖ.

BTW: the normal -v output does not mention ARBÖ-Radio at all

$ etisnoop -v < ~/wien_16072017.eti | grep Rad
					Label: "NOW Radio       "
					Label: "MEGA Radio      "
					Label: "Radio U1 Tirol  "

In Nitra, Slovakia, the mux is in unicode (said user basicmaster)

grafik
FICDecoder: SId 0x5005: programme service label 'Rádio Litera' (output from dablin)

but etisnoop writes wrong data (please note short label Ro Liter instead of R Litera)

    - service_id: 0x5005
      subchannel_id: 0x1
      label: Rádio Litera   
      shortlabel: Ro Liter

Protection level A and B in yaml

If you analyse

trt.eti.zip

with

etisnoop -i trt.eti -v -s trt.yaml

the output shows both protection levels, A and (!) B. It's A only according to other tools.

more /tmp/trt.yaml 
# Statistics from ETISnoop. This file should be valid YAML
---
ensemble:
    id: 0x4fff
    label: TRT DAB+        
    shortlabel: DAB+
audio:
    - service_id: 0x32
      subchannel_id: 0xb
      label: +Radyo 1        
      shortlabel: +Radyo 1
      subchannel:
          id: 11
          SAd: 0
          protection: EEP 4-A
          protection: EEP 4-B
          protection: unknown
          size: 48

Missing fig0_7.cpp

Missing src/fig0_7.cpp

I have used this script to install.

It gives error:

make[1]: *** No rule to make target 'src/fig0_7.cpp', needed by 'src/fig0_7.o'. Stop
make[1]:  Leaving directory '/home/user/mmbtools/dab/etisnoop'
make: *** [Makefile:418: all] Error 2

Thank You!

Missing Labels in yaml-file for data stream

Today DAB Italia started a data package called "Cisco test" nationwide, so I found out that the yaml file does not mention the short and long label for this type of streams.

http://www.digitalbitrate.com/dtv.php?brk=2&mux=12C&pid=80&live=171&sec=0&lang=fr

12c_italia_cisco.eti.zip

12c.yaml.txt

    - service_id: 0x0
      subchannel_id: 0x16
      label: 
      shortlabel: 
      subchannel:
          id: 22
          SAd: 172
          protection: EEP 3-A
          size: 180
      audio:
          average: -90 -90
          peak: -90 -90
$ etisnoop -i /media/andreas/Data/dab/12c_italia_cisco.eti -n 100 | grep Cisco -A 1 -B 6
Identified ETI type RAW
ERRORS: Not yet in DB
ERRORS: Not yet in DB
ERRORS: Not yet in DB
     FIG: 1/5
     Length: 23
     OE: 0
     Decoding:
      Charset: 0
      Service ID: 0xE0500000
      Label: "Cisco Test      "
      Short label mask: 0xFE00
--
     FIG: 1/5
     Length: 23
     OE: 0
     Decoding:
      Charset: 0
      Service ID: 0xE0500000
      Label: "Cisco Test      "
      Short label mask: 0xFE00
Decoded 100 ETI frames

Line "DG flag: data groups ..." contains an extra newline char, messing up yaml

Hi,

I've come across a weird issue: the line 'DG flag: 0 data groups are [not] used to transport the service component' always has a newline character after 'DG flag: 0', thus producing invalid yaml.

This is what I get:

   DG flag: 0
   data groups are used to transport the service component
   DSCTy: 60 Multimedia Object Transfer (MOT)

This is what yaml expects:

   DG flag: 0 data groups are used to transport the service component       
   DSCTy: 60 Multimedia Object Transfer (MOT)

This little script helps, but it's not really a solution;

#!/usr/bin/env bash

cp $1 $1--backup

sed -i  's/data groups are used to transport the service component//' $1
sed -i 's/DG flag: 0/DG flag: 0 data groups are used to transport the service component/' $1

PS I'm sorry that I can't currently repair this myself, gdb is crashing on me.

Cannot make newer etisnoop versions

When I try to make it under Ubuntu 16.04 64bit, I get the following (German) error

...
CC src/wavfile.o
CC src/fec/decode_rs_char.o
CC src/fec/encode_rs_char.o
CC src/fec/init_rs_char.o
CXXLD etisnoop
/usr/bin/ld: cannot find -lboost_regex
collect2: error: ld returned 1 exit status
Makefile:575: die Regel für Ziel „etisnoop“ scheiterte
make[1]: *** [etisnoop] Fehler 1
make[1]: Verzeichnis „/home/andreas/etisnoop“ wird verlassen
Makefile:390: die Regel für Ziel „all“ scheiterte
make: *** [all] Fehler 2

An older version I have downloaded in October works.

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.