dvbv5-scan: Allow using separate adapter for FE and demux

Complex embedded devices may have more than one adapter, and some
pipelines between them.

Allow specifying a different adapter for FE than the one for demux.

In order to use multiple adapters, the -a option should apeear
twice, each just before the frontend/demod option (-f and -d),
like:

	dvbv5-scan -a 0 -f 0 -a 2 -d 2 some_scan_file

If only one -a (or --adapter) is found, the same adapter will
be used by both frontends and demuxes, and the -a can be on any
order at the command line. This way, it preserves backward
compatibility.

Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
libdvbv5: add descriptor parser for ATSC TVCT/CVCT tables

Add parser code for ATSC Terrestrial/Cable Virtual Channel
Table.

Compile-tested only, as the current userspace tools don't use the
descriptors lib yet.

Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
libdvbv5: fix VCT parsing

While converting dvb-scan to use the new descriptors approach, I
was able to test the VCT table parsing. So, fix them. It should now
parse properly the ATSC CVCT/TVCT tables:

INFO     TVCT
INFO     | table_id       200
INFO     | section_length 154
INFO     | zero           0
INFO     | one            3
INFO     | zero2          1
INFO     | syntax         1
INFO     | id             1399
INFO     | current_next   1
INFO     | version        4
INFO     | one2           3
INFO     | section_id     0
INFO     | last_section   0
INFO     |- Protocol version 0
INFO     |- #channels        3
INFO     |\  channel_id
INFO     |- Channel                256.496: WMAR HD
INFO     |   modulation mode       8
INFO     |   carrier frequency     698000000
INFO     |   TS ID                 1399
INFO     |   program number        2
INFO     |   ETM location          0
INFO     |   access controlled     0
INFO     |   hidden                0
INFO     |   hide guide            1
INFO     |   service type          2
INFO     |   source id            33
INFO     |                   Unknown descriptor (161)
INFO     |                       e0 21 02 02 e0 21 65 6e  67 81 e0 24 65 6e 67      .!...!eng..$eng
INFO     |- Channel                256.752: WMAR SD
INFO     |   modulation mode       8
INFO     |   carrier frequency     698000000
INFO     |   TS ID                 1399
INFO     |   program number        3
INFO     |   ETM location          0
INFO     |   access controlled     0
INFO     |   hidden                0
INFO     |   hide guide            1
INFO     |   service type          2
INFO     |   source id            49
INFO     |                   Unknown descriptor (161)
INFO     |                       e0 31 02 02 e0 31 65 6e  67 81 e0 34 65 6e 67      .1...1eng..4eng
INFO     |- Channel                256.1008: WMAR SD
INFO     |   modulation mode       8
INFO     |   carrier frequency     698000000
INFO     |   TS ID                 1399
INFO     |   program number        4
INFO     |   ETM location          0
INFO     |   access controlled     0
INFO     |   hidden                0
INFO     |   hide guide            1
INFO     |   service type          2
INFO     |   source id            65
INFO     |                   Unknown descriptor (161)
INFO     |                       e0 41 01 02 e0 41 65 6e  67                        .A...Aeng
INFO     |_  3 channels

Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
libdvbv5: Add ATSC specific descriptors

Add the ATSC descriptors described at ATSC Document A/65:2009.

Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
libdvbv5: add parser for ATSC service location

This is needed to properly parse TVCT and CVCT tables on
ATSC, as it contains the video/audio/program PIDs.

Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
libdvbv5: Add support for additional descriptors at VCT table

Document A/65:2009 allows extra descriptors at the Virtual
Channel Table.

While I don't have it on my test streams, it is better to
add support for it.

Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>