From: Martin Vidovic <xtronom@gmail.com>
To: Andreas Oberritter <obi@linuxtv.org>
Cc: Ralph Metzler <rjkm@metzlerbros.de>,
Issa Gorissen <flop.m@usa.net>,
linux-media@vger.kernel.org
Subject: Re: [PATCH] Ngene cam device name
Date: Sun, 08 May 2011 12:05:55 +0200 [thread overview]
Message-ID: <4DC66B03.5080709@gmail.com> (raw)
In-Reply-To: <4DC3E6C7.8040109@linuxtv.org>
Andreas Oberritter wrote:
> On 05/05/2011 04:43 PM, Martin Vidovic wrote:
>>
>> a) Plug two TerraTec Cinergy T RC MKII and try to distinguish between them.
>
> I don't have any USB or PCI hardware within reach, but if udev is able
> to create the devices, there should be some way to connect adapters to
> the bus id through sysfs. I guess that's how it's done with other
> subsystems, too.
>
> If this information is missing from sysfs, would adding it help to solve
> this problem?
>
Binding to bus id is not a problem. However, especially for USB devices,
it may be useful to have adapter MAC address in sysfs.
>> b) Take a Hybrid terrestrial TV tuner. V4L and DVB APIs (may) use shared
>> resources, how does one find this out?
>
> That's a good question and the same question must be asked for video and
> audio decoders, which can be controlled by V4L, DVB, ALSA etc.
>
> How does V4L integrate with ALSA?
>
I don't know.
>> c.1) How does one know which frontend device can be used with which
>> demux device?
>
> I'd say by default (i.e. without DMX_SET_SOURCE, whether implemented or
> not) frontendX is connected to demuxX on the same adapter. You have
> probably faced other situations. Can you describe any?
>
I thought we were discussing how to connect frontendX to demuxY on
different adapters, since this would be needed for nGene CI.
>> c.2) Which CA device can be used with which frontend device?
>
> For built-in descramblers, I'd say each caX is always connected to
> (built into) demuxX.
>
> For CI slots, this might be different and on the Dreambox we're using a
> proprietary API to connect CI slots between frontends and demuxes.
>
> Is there any in-tree supported hardware, that has more than one CI slot
> *and* more than one frontend (usable at the same time)?
>
NetUP Dual DVB S2 CI
>>
>> The best would be to create independent adapters for each independent CA
>> device (ca0/caio0 pair) - they are independent after all (physically and
>> in the way they're used).
>
> Physically, it's a general purpose TS I/O interface of the nGene
> chipset. It just happens to be connected to a CI slot. On another board,
> it might be connected to a modulator or just to some kind of socket.
>
I agree, but I look at it like at any other general purpose interface
(e.g. USB, PCI).
Maybe nGene is not a good case for such analysis, but there is other
hardware which would hit this problem again.
I'm aware of two such examples:
1) Hauppauge WinTV-CI (USB attached CI - I think Issa mentioned this one
already);
2) DigitalDevices Octopus (PCI bridge with 4 general purpose ports - Ralph
mentioned this one and I'm using these cards myself);
> If the next version gets a connector for two switchable CI modules, then
> the physical independence is gone. You'd have two ca nodes but only one
> caio node. Or two caio nodes, that can't be used concurrently.
>
What is a switchable CI module?
> Maybe the next version gets the ability to directly connect the TS input
> from the frontend to the TS output to the CI slot to save copying around
> the data, by using some kind of pin mux. Not physically independent either.
>
When this feature would be in action, opening caioX could return EBUSY and
vice versa. This sounds similar to V4L <-> DVB interaction for hybrid
devices. API can't change the fact a resource is shared.
> It just looks physically independent in the one configuration
> implemented now.
>
I don't believe it's an accident how nGene cards interface with CI. To
me it rather looks like a very good feature.
Imagine a use case like this:
There's a machine with:
- DigitalDevices CineS2
- CI-Module attached to CineS2;
- TechniSat SkyStar2 (has no CI);
A user wants to stream two DVB-S2 transponders using CineS2. They are
both clear, so CI-Module is not needed.
At the same time, the user wants to stream one DVB-S transponder but it is
scrambled. Since CI-Module attached to CineS2 is not in use, it can be made
to work with SkyStar2 using a few lines of code in user space.
>> What I understand you would like to see, is the ability to do direct
>> transfers between independent devices or parts of devices. Is this correct?
>
> Yes, between parts of devices, where the CI input can be fed by both the
> TS output of the frontend and from memory (e.g. userspace).
>
I don't know Demux API so well to be able to tell for sure, but it looks
like it could be used (with a few extensions) instead of caioX.
One benefit of using Demux API would probably be the ability to have PID
filtering (in software or hardware), I think you've mentioned this already.
It is also similar to the way on-board decoder can be used on full-featured
cards.
This way both cases (nGene and your configurable design) could be covered.
On the other hand, using Demux API for nGene looks like an overkill, and
switching of TS route in your case could be done in some other way.
Specific HW design related problems seem to be common to both approaches.
Nevertheless, Demux API approach looks cleaner. But on the other hand, it
hides the fact that CI can be used in this particular way (sysfs could
help).
I imagine there would still be a difference between the two cases:
- nGene (CineS2 with CI-Module)
Device nodes would be:
/dev/dvb/adapter0/frontend0
/dev/dvb/adapter0/demux0
/dev/dvb/adapter0/dvr0
/dev/dvb/adapter1/frontend0
/dev/dvb/adapter1/demux0
/dev/dvb/adapter1/dvr0
/dev/dvb/adapter2/ca0
/dev/dvb/adapter2/demux0
/dev/dvb/adapter2/dvr0
- Configurable Design (dual card similar to NetUP)
Device nodes would be:
/dev/dvb/adapter0/frontend0
/dev/dvb/adapter0/demux0
/dev/dvb/adapter0/dvr0
/dev/dvb/adapter0/ca0
/dev/dvb/adapter1/frontend0
/dev/dvb/adapter1/demux0
/dev/dvb/adapter1/dvr0
/dev/dvb/adapter1/ca0
What do you say about this difference?
Best regards,
Martin Vidovic
next prev parent reply other threads:[~2011-05-08 10:03 UTC|newest]
Thread overview: 56+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-05-04 8:27 [PATCH] Ngene cam device name Issa Gorissen
2011-05-04 9:59 ` Andreas Oberritter
2011-05-04 11:20 ` Ralph Metzler
2011-05-04 12:30 ` Andreas Oberritter
2011-05-04 13:15 ` Ralph Metzler
2011-05-04 13:35 ` Martin Vidovic
2011-05-04 14:46 ` Andreas Oberritter
2011-05-05 14:43 ` Martin Vidovic
2011-05-06 12:17 ` Andreas Oberritter
2011-05-06 13:43 ` Walter Van Eetvelt
2011-05-08 10:05 ` Martin Vidovic [this message]
2011-05-08 17:58 ` Andreas Oberritter
2011-05-08 23:55 ` Martin Vidovic
2011-05-09 11:44 ` Andreas Oberritter
-- strict thread matches above, loose matches on Subject: below --
2011-05-06 18:29 Issa Gorissen
2011-05-08 9:53 ` Andreas Oberritter
2011-05-08 10:30 ` Issa Gorissen
2011-05-06 13:47 Issa Gorissen
2011-05-06 16:07 ` Andreas Oberritter
2011-05-04 14:51 Issa Gorissen
2011-05-04 14:05 Issa Gorissen
2011-05-04 14:27 ` Andreas Oberritter
2011-05-04 11:09 Issa Gorissen
2011-05-04 11:07 Issa Gorissen
2011-05-04 13:51 ` Andreas Oberritter
2011-04-24 11:38 Issa Gorissen
2011-05-03 23:11 ` Mauro Carvalho Chehab
2011-05-04 7:24 ` Andreas Oberritter
2011-03-12 15:39 Issa Gorissen
2011-03-12 14:34 Issa Gorissen
2011-03-12 14:58 ` Andreas Oberritter
2011-03-28 0:44 ` Ralph Metzler
2011-03-28 21:40 ` Mauro Carvalho Chehab
2011-04-24 9:31 ` Issa Gorissen
2011-03-28 22:57 ` Oliver Endriss
2011-04-05 21:50 ` Issa Gorissen
2011-03-12 14:10 Issa Gorissen
2011-03-12 14:48 ` Andreas Oberritter
2011-03-12 14:57 ` Martin Vidovic
2011-03-12 15:06 ` Andreas Oberritter
2011-03-11 18:33 Issa Gorissen
2011-03-11 20:39 ` Andreas Oberritter
2011-03-11 21:46 ` Ralph Metzler
2011-03-12 13:25 ` Andreas Oberritter
2011-03-12 13:55 ` Ralph Metzler
2011-03-10 15:29 Issa Gorissen
2011-03-11 15:52 ` Andreas Oberritter
2011-03-11 21:44 ` Martin Vidovic
2011-03-12 13:29 ` Andreas Oberritter
2011-03-12 14:05 ` Ralph Metzler
2011-03-12 14:38 ` Andreas Oberritter
2011-03-12 15:06 ` Ralph Metzler
2011-03-12 23:42 ` Oliver Endriss
2011-03-13 10:47 ` Martin Vidovic
2011-03-16 22:07 ` Issa Gorissen
2011-03-18 20:20 ` Martin Vidovic
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=4DC66B03.5080709@gmail.com \
--to=xtronom@gmail.com \
--cc=flop.m@usa.net \
--cc=linux-media@vger.kernel.org \
--cc=obi@linuxtv.org \
--cc=rjkm@metzlerbros.de \
/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