public inbox for linux-media@vger.kernel.org
 help / color / mirror / Atom feed
From: Artem Makhutov <artem@makhutov.org>
To: Klaus Schmidinger <Klaus.Schmidinger@cadsoft.de>
Cc: linux-dvb@linuxtv.org
Subject: Re: [linux-dvb] [PATCH] Add missing S2 caps flag to S2API
Date: Mon, 24 Nov 2008 16:12:32 +0100	[thread overview]
Message-ID: <492AC460.1050203@makhutov.org> (raw)
In-Reply-To: <492A6E9B.7030906@cadsoft.de>

Hi,

Klaus Schmidinger schrieb:
> On 24.11.2008 08:12, Artem Makhutov wrote:
>> Hello,
>>
>> Klaus Schmidinger schrieb:
>>> The attached patch adds a capability flag that allows an application
>>> to determine whether a particular device can handle "second generation
>>> modulation" transponders. This is necessary in order for applications
>>> to be able to decide which device to use for a given channel in
>>> a multi device environment, where DVB-S and DVB-S2 devices are mixed.
>>>
>>> It is assumed that a device capable of handling "second generation
>>> modulation" can implicitly handle "first generation modulation".
>>> The flag is not named anything with DVBS2 in order to allow its
>>> use with future DVBT2 devices as well (should they ever come).
>>>
>>> Signed-off by: Klaus Schmidinger <Klaus.Schmidinger@cadsoft.de>
>> Wouldn't it be better to add something like this:
>>
>> FE_CAN_8PSK
>> FE_CAN_16APSK
>> FE_CAN_32APSK
>>
>> or
>>
>> FE_CAN_DVBS2
>>
>> Instead of FE_CAN_2ND_GEN_MODULATION ? It is too generic for me.
> 
> Well, it's bad enough that we have to "guess" which kind of
> delivery system it is by looking at feinfo.type. If it's FE_QPSK
> then it's DVB-S (or DVB-S2), if it's FE_OFDM then it's DVB-T etc.,
> etc. The "multiproto" API had this cleaned up and introduced a
> clean way of finding out the delivery systems(!) a particular device
> can handle. Unfortunately, as we all know, this approach has been
> dismissed.
> 
> Using some additional flags for "guessing" whether it's DVB-S2
> doesn't seem like a clean solution to me. Why not simply state
> the obvious? After all, the DVB standard for DVB-S2 speaks of
> "second generation modulation", that's why I named this flag
> that way. And since S2API can only handle a single delivery system
> at a time (as opposed to multiproto, where the delivery systems
> were flags, so a device could support several of them), it
> somehow made sense to me to have a flag that could later also
> be used for "second generation DVB-T" devices.
> 
> But I don't want to start another political fight here. All I need
> is a way to determine whether or not a device supports DVB-S2.
> If the commonly agreed on way to do this is to guess it by
> looking at FE_CAN_xyPSK capability flags, so be it. However, so
> far none of the "experts" cared about answering my initial
> question "How to determine DVB-S2 capability in S2API?", so
> I guessed the only way to get something to work was doing something
> about it ;-)

I fully understand what you mean. I would also like to adress the
remarks of Berry:

http://www.linuxtv.org/pipermail/linux-dvb/2008-November/030539.html

So here is an other proposal for this:

typedef enum fe_type {
	FE_QPSK,
	FE_QAM,
	FE_OFDM,
	FE_ATSC,
	FE_DVBS,
	FE_DVBS2,
	FE_DVBT,
	FE_DVBT2,
	[...]
} fe_type_t;


typedef enum fe_caps {
	FE_IS_STUPID			= 0,
	FE_CAN_INVERSION_AUTO		= 0x1,
	FE_CAN_FEC_1_2			= 0x2,
	FE_CAN_FEC_2_3			= 0x4,
	FE_CAN_FEC_3_4			= 0x8,
	FE_CAN_FEC_4_5			= 0x10,
	FE_CAN_FEC_5_6			= 0x20,
	FE_CAN_FEC_6_7			= 0x40,
	FE_CAN_FEC_7_8			= 0x80,
	FE_CAN_FEC_8_9			= 0x100,
	FE_CAN_FEC_AUTO			= 0x200,
	FE_CAN_QPSK			= 0x400,
	FE_CAN_QAM_16			= 0x800,
	FE_CAN_QAM_32			= 0x1000,
	FE_CAN_QAM_64			= 0x2000,
	FE_CAN_QAM_128			= 0x4000,
	FE_CAN_QAM_256			= 0x8000,
	FE_CAN_QAM_AUTO			= 0x10000,
	FE_CAN_TRANSMISSION_MODE_AUTO	= 0x20000,
	FE_CAN_BANDWIDTH_AUTO		= 0x40000,
	FE_CAN_GUARD_INTERVAL_AUTO	= 0x80000,
	FE_CAN_HIERARCHY_AUTO		= 0x100000,
	FE_CAN_8VSB			= 0x200000,
	FE_CAN_16VSB			= 0x400000,
	FE_HAS_EXTENDED_CAPS		= 0x800000,
	FE_NEEDS_BENDING		= 0x20000000,
	FE_CAN_RECOVER			= 0x40000000,
	FE_CAN_MUTE_TS			= 0x80000000,
	FE_CAN_8PSK			= 0x100000000,
	FE_CAN_16APSK			= 0x200000000,
	FE_CAN_32APSK			= 0x400000000,
	[...]
} fe_caps_t;

Here we can define the frontend type and check if it is DVB-S or DVB-S2
or whatever and also define the modulations that the frontend is capable
to handle (in case a device won't work with the "professional"
modulations like 16APSK).

Applications like VDR can check the fe_type flags, and applications that
require more info could check fe_caps.

I am not sure about this all, and I would like to see some comments from
some people that are more familiar it. Specially changing fe_type looks
like it will break the binary compatibility, so maybe it would be better
to define a new enum for this flags...

Regards, Artem

_______________________________________________
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb

  parent reply	other threads:[~2008-11-24 15:12 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-11-23 10:53 [linux-dvb] [PATCH] Add missing S2 caps flag to S2API Klaus Schmidinger
2008-11-23 11:47 ` [PATCH] Add Compro VideoMate E650F (DVB-T part only) Igor M. Liplianin
2008-11-24  7:12 ` [linux-dvb] [PATCH] Add missing S2 caps flag to S2API Artem Makhutov
2008-11-24  8:24   ` BOUWSMA Barry
2008-11-24  9:06   ` Klaus Schmidinger
2008-11-24 13:37     ` vdr
2008-11-24 15:12     ` Artem Makhutov [this message]
2008-12-22 13:39       ` Thomas Creutz
2008-11-26 21:56   ` Udo Richter
2008-11-27  7:13     ` Alex Betis
2008-11-27 12:35     ` Artem Makhutov
2008-11-27 14:08       ` VDR User
2008-11-27 15:21         ` Andy Walls
2008-11-27 17:19           ` VDR User
2008-11-27 19:20             ` CityK
2008-11-28  2:34               ` hermann pitton
2008-11-28  7:58                 ` VDR User
2008-11-28  2:05             ` hermann pitton
2008-11-28  2:10             ` Andy Walls
2008-11-27 19:29           ` Igor M. Liplianin
2008-12-22 16:33     ` Udo Richter
2008-12-25  9:44       ` Helmut Auer
     [not found]         ` <1230219306.2336.25.camel@pc10.localdom.local>
2008-12-31 11:13           ` Mauro Carvalho Chehab
     [not found]             ` <495B5CE6.9010902@cadsoft.de>
2008-12-31 12:50               ` Mauro Carvalho Chehab
     [not found]                 ` <495B6C25.9010307@cadsoft.de>
2008-12-31 17:28                   ` Mauro Carvalho Chehab
2008-12-31 13:45               ` Gregoire Favre
2008-12-18 15:48 ` Steven Toth
  -- strict thread matches above, loose matches on Subject: below --
2008-11-24 15:55 Niels Wagenaar
2008-11-24 15:59 ` VDR User
2008-11-24 16:25 ` Klaus Schmidinger
2008-11-24 19:33   ` Manu Abraham
2008-11-25  8:35     ` Klaus Schmidinger
2008-11-24 16:14 Niels Wagenaar
2008-11-24 16:26 ` Klaus Schmidinger
2008-11-24 16:50 ` VDR User
2008-11-25  8:46 Niels Wagenaar
2008-11-25  9:05 ` Klaus Schmidinger
2008-11-25 16:32   ` VDR User
2008-11-25 18:34     ` Morgan Tørvolt
2008-11-25 18:48       ` Alex Betis
2008-11-26 19:45       ` Seppo Ingalsuo
2008-11-26 20:10         ` Christophe Thommeret
2008-11-26  1:44   ` hermann pitton
2008-11-25  9:15 jean-paul
2008-11-25 10:31 ` Manu Abraham
2008-11-25 12:33   ` jean-paul

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=492AC460.1050203@makhutov.org \
    --to=artem@makhutov.org \
    --cc=Klaus.Schmidinger@cadsoft.de \
    --cc=linux-dvb@linuxtv.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