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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.