Mailing List archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[linux-dvb] Re: DVB API questions



On Fri, Nov 01, 2002 at 11:28:17AM +0100, Holger Waechtler wrote:
> Florian Schirmer wrote:
> >
> >Question 1:
> >
> >DMX_PES_TYPE_{VIDEO,AUDIO,PCR,TELETEXT} have a special meaning. Allright. 
> >But
> >how to handle the case if someone requests e.g. VIDEO and does not request
> >OUT_DECODER at the same time.

a) If you don't specify DMX_OUT_DECODER it doesn't matter what kind
   of PES data it is, because the driver just passes it on to userspace.
b) However, it is common that you want to record and watch the same
   service at the same time. Since filter.output is an enum and not
   a bitfield, the API does not really allow you to do that. For that reason,
   the driver interprets DMX_PES_TYPE_{VIDEO,AUDIO,PCR,TELETEXT} w/o
   DMX_OUT_DECODER as "pass data to userspace _and_ to the decoder".

> >Question / Proposal 2:
> >
> >As requested before: OUT_DECODER should be a selectable flag. At the 
> >kernel side it is. But not at the userspace interface.
> 
> Here you are right. (This is one of the API changes I was asking for). 
> I'll modify dmx_output_t so that it defines a bitfield, unfortunally 
> this breaks again binary compability, so you'll have to compile all your 
> DVB software again...

Ack.

> >Question 3:
> >
> >Some dmx'es (at least our) are not capable of delivering the same pid into 
> >two or more feeds at the same time. So this will end into problems if two 
> >users try to catch the same pid.
> >
> >Does the API handle this case internally or do i as a kernel developer 
> >need to care about it? 
> 
> Hmm, here I'm not sure about the answer - I don't know this part of the 
> driver very well. Could you please read the source and try to find this 
> out? If the dvb-core can't handle multiple clients on the same PID we 
> should definitely introduce this...

The API and the driver implementation do not handle this. If you
try to set two filters for the same thing (same PID for PES,
same PID and filter mask for sections) you get EBUSY.


> >Proposal 4:
> >
> >At present we will cycle all active feeds and check if there is a pid 
> >match and deliver the data to all matching feeds. But it would be nice if 
> >the api will handle that internally and just opens one feed even if there 
> >are two or more users (on the same pid).
> 
> Maybe Ralph or Marcus can answer how this was intended to be handled?
> 
> In my opinion you are right and the core should set only the required 
> feeds and copy data into multiple client (ring-?) buffers if necessairy.

I'm not opposed to it, but it seems that so far there was no
demand for this.


> >Question 5:
> >
> >What happens if the first user requests PES (feed will deliver PES) and 
> >the secord wants to have plain TS? API handles that? API refuses that? 
> >Developer has to care?
> 
> Then you feed TS packets into the Software demultiplexer and the 
> dvb-core cares about the rest.

The API gives you EBUSY if you try to set two PES filters on the same PID.


Regards,
Johannes


-- 
Info:
To unsubscribe send a mail to listar@linuxtv.org with "unsubscribe linux-dvb" as subject.



Home | Main Index | Thread Index