From: Mauro Carvalho Chehab <mchehab@redhat.com>
To: Linux Media Mailing List <linux-media@vger.kernel.org>
Subject: Re: [ANNOUNCE] DVBv5 tools version 0.0.1
Date: Sat, 07 Jan 2012 23:52:43 -0200 [thread overview]
Message-ID: <4F08F6EB.2030508@redhat.com> (raw)
In-Reply-To: <4F08385E.7050602@redhat.com>
On 07-01-2012 10:19, Mauro Carvalho Chehab wrote:
> As previously commented at the ML, I'm developing a set of tools
> using DVBv5 API. Instead of starting from something existing,
> I decided to start from scratch, in order to avoid polluting it
> with DVBv3 legacy stuff. Of course, I did some research inside
> the existing tools, in order to fill in the blanks, using the
> dvb-apps tzap as a reference for the first real application on it,
> but removing a large amount of code (file parsers, etc).
>
> They're now on a good shape, at least for my own usage ;)
>
> In order to test, you should use:
>
> git clone git://linuxtv.org/mchehab/experimental-v4l-utils.git
>
> And then run "make". the utils are inside utils/dvb.
>
> I plan to do some cleanup at the patches later (basically, changing
> the patch descriptions), and add it inside the v4l-utils, in order
> to have the basic tools I use for testing media devices into the
> same place.
>
> DVB TOOLS
> =========
>
> This is a series of tools written to help testing and working with DVB,
> using its latest V5 API. The tools can also work with the DVBv3 API.
>
> The current tools are:
>
> dvb-fe-tool - a simple test application, that reads from the frontend.
> it also allows to change the default delivery system.
> In the future, it may be used to change any property
> via command line.
>
> dvb-format-convert - converts from zap and scan "initial-tuning-data-file"
> into the new format defined to work with DVBv5;
>
> dvbv5-scan - a DVBv5 scan tool;
>
> dvbv5-zap - a DVBv5 zap tool. It allow to tune into a DVB channel, and
> to watch to a DVB service (e. g. receiving the video and audio
> streams, via another application using the dvr device).
>
> Each application code is very small, as most of the code are on some
> generic code that will become a library in the future.
>
> CONTENTS OF THE TREE
> ====================
>
> parse_string.c/parse_string.h: MPEG-TS string decoder with charset translator
>
> Used to decode NIT/SDT service name, network provider and provider name.
> It parses the charsets according with the DVB specs, converting them into
> UTF-8 (or other charset), using iconv library.
>
> descriptors.c/descriptors.h: MPEG-TS descriptors parser
>
> The code there is generig enough to decode the MPEG-TS descriptors,
> with the DVB and other Digital TV extensions.
>
> libscan.c/libscan/h: DVBv5 scanning library
>
> This library is used to retrieve DVB information from the MPEG TS
> headers, discovering the services associated to each DVB channel or
> transponder. The services information is the basic info that most
> DVB tools need to tune into a channel.
>
> dvb-file.c/dvb-file.h: DVB file read/write library.
>
> Allows parsing a DVB file (legacy or not) and to write data into a
> DVB file (new format only).
>
> dvb-fe.c/dvb-fe.h: DVB frontend library.
>
> Allows talking with a DVB frontend via DVBv5 or DVBv3 API.
>
> dvb-zap-format.c/dvb-legacy-channel-format.c:
>
> Contains the data structures required in order to read from the legacy
> formats (zap or scan "initial-tuning-data-file").
>
> dvb_frontend.h: DVBv5 frontend API.
>
> This is just a copy of the newest linux/dvb/frontend.h header.
> I opted to keep a copy there, in order to allow working with the tools
> without needing to copy the latest header into /usr/include.
>
> dvb-v5.h/dvb-v5-std.h:
>
> Ancillary files linked into dvb-fe code, used to parse DVB tables. The
> dvbv5.h is generated by a small perl util, from the DVB FE API file.
>
> dvb-demux.c/dvb-demux.h: DVB demux library.
>
> Used by the dvbv5-zap utility.
>
> dvb-fe-tool.c, dvb-format-convert.c, dvbv5-zap.c, dvbv5-scan.c: tools code.
>
> Basically, parses the options from userspace and calls the other code
> to do what was requested by the user.
>
> CHANNEL/SERVICE FILE FORMAT
> ===========================
>
> Instead of having two different files, one for services, and another for
> channels/transponders, I opted to use just one format for both. The
> format is:
>
> [channel]
> key1=value1
> key2=value2
> key3=value3
> ...
> keyn=valuen
>
>
> lines with # are discarted by the parsers. Also, whitespaces/tabs before
> the keys and before/after the equal sign.
>
> Be careful: whitespace in the middle of the value are not discarded.
>
> A typical service would be like:
>
> [TV Brasil HD]
> VCHANNEL = 2.2
> SERVICE_ID = 16160
> VIDEO_PID = 770
> AUDIO_PID = 514 614
> FREQUENCY = 479142857
> MODULATION = QAM/AUTO
> BANDWIDTH_HZ = 6000000
> INVERSION = AUTO
> CODE_RATE_HP = AUTO
> CODE_RATE_LP = NONE
> GUARD_INTERVAL = AUTO
> TRANSMISSION_MODE = AUTO
> HIERARCHY = NONE
> ISDBT_LAYER_ENABLED = 7
> ISDBT_PARTIAL_RECEPTION = 0
> ISDBT_SOUND_BROADCASTING = 0
> ISDBT_SB_SUBCHANNEL_ID = 0
> ISDBT_SB_SEGMENT_IDX = 0
> ISDBT_SB_SEGMENT_COUNT = 0
> ISDBT_LAYERA_FEC = AUTO
> ISDBT_LAYERA_MODULATION = QAM/AUTO
> ISDBT_LAYERA_SEGMENT_COUNT = 0
> ISDBT_LAYERA_TIME_INTERLEAVING = 0
> ISDBT_LAYERB_FEC = AUTO
> ISDBT_LAYERB_MODULATION = QAM/AUTO
> ISDBT_LAYERB_SEGMENT_COUNT = 0
> ISDBT_LAYERB_TIME_INTERLEAVING = 0
> ISDBT_LAYERC_FEC = AUTO
> ISDBT_LAYERC_MODULATION = QAM/AUTO
> ISDBT_LAYERC_SEGMENT_COUNT = 0
> ISDBT_LAYERC_TIME_INTERLEAVING = 0
> DELIVERY_SYSTEM = ISDBT
>
> Just the channel description for it would be:
>
> [CHANNEL]
> FREQUENCY = 479142857
> MODULATION = QAM/AUTO
> BANDWIDTH_HZ = 6000000
> INVERSION = AUTO
> CODE_RATE_HP = AUTO
> CODE_RATE_LP = NONE
> GUARD_INTERVAL = AUTO
> TRANSMISSION_MODE = AUTO
> HIERARCHY = NONE
> ISDBT_LAYER_ENABLED = 7
> ISDBT_PARTIAL_RECEPTION = 0
> ISDBT_SOUND_BROADCASTING = 0
> ISDBT_SB_SUBCHANNEL_ID = 0
> ISDBT_SB_SEGMENT_IDX = 0
> ISDBT_SB_SEGMENT_COUNT = 0
> ISDBT_LAYERA_FEC = AUTO
> ISDBT_LAYERA_MODULATION = QAM/AUTO
> ISDBT_LAYERA_SEGMENT_COUNT = 0
> ISDBT_LAYERA_TIME_INTERLEAVING = 0
> ISDBT_LAYERB_FEC = AUTO
> ISDBT_LAYERB_MODULATION = QAM/AUTO
> ISDBT_LAYERB_SEGMENT_COUNT = 0
> ISDBT_LAYERB_TIME_INTERLEAVING = 0
> ISDBT_LAYERC_FEC = AUTO
> ISDBT_LAYERC_MODULATION = QAM/AUTO
> ISDBT_LAYERC_SEGMENT_COUNT = 0
> ISDBT_LAYERC_TIME_INTERLEAVING = 0
> DELIVERY_SYSTEM = ISDBT
>
> CURRENT ISSUES
> ==============
>
> The dvb-fe-tool and the dvb-format-convert are generic enough to work
> with all delivery systems. However, the other two tools need to do
> some diferent things, depending on the delivery system.
>
> I'm currently with only ISDB-T signals here, so the other two
> tools were tested only with it.
>
> The dvbv5-zap in general won't work with Satellite delivery
> systems. It lacks polarity settings, and it doesn't know anything
> about LNB or DISEqC. It shouldn't hard to port those things into it,
> but a DVB-S signal is needed to test. As I don't have it curently,
> I'm not working to add support for it at the moment.
>
> Patches are welcome.
I decided to add support for DVB-S, even without signal for testing.
This probably means that it likely will not work ;) Well, seriously,
we need testers for it.
The current code should be doing the same that szap does, and should
work with both dvbv5-zap and dvbv5-scan. The DISEqC code there is very
simple, and there's no support for dishpro/bandstacking yet. It is
probably not hard to add support for it.
There are still a few things missing there. For example, the current
code will only use DISEqC satellite #0, as there's no code to change
the satellite number yet.
Anyway, testing and patches are welcome!
Regards,
Mauro
next prev parent reply other threads:[~2012-01-08 1:52 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-01-07 12:19 [ANNOUNCE] DVBv5 tools version 0.0.1 Mauro Carvalho Chehab
2012-01-07 17:29 ` Honza Petrouš
2012-01-07 20:05 ` Mauro Carvalho Chehab
2012-01-08 1:52 ` Mauro Carvalho Chehab [this message]
2012-01-08 12:57 ` dvbv5-tools update - was: " Mauro Carvalho Chehab
2012-01-10 21:36 ` Antti Palosaari
2012-01-10 22:00 ` Mauro Carvalho Chehab
2012-01-15 18:37 ` Antti Palosaari
2012-01-15 20:03 ` Antti Palosaari
2012-01-15 21:08 ` Mauro Carvalho Chehab
2012-01-15 21:14 ` Antti Palosaari
2012-01-15 21:47 ` Antti Palosaari
2012-01-16 0:16 ` Mauro Carvalho Chehab
2012-01-16 2:57 ` Mauro Carvalho Chehab
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4F08F6EB.2030508@redhat.com \
--to=mchehab@redhat.com \
--cc=linux-media@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).