Mailing List archive

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

[linux-dvb] Re: V4 API suggestion [was:dec2000-t (and perhaps dec3000 and dec2450) playback]



Alex Woods wrote:
> 
> Anyway, to move on the V4 suggestion - hope it's not too late.  In case you 
> don't know, the USB DEC devices talk in PVA, which is nasty of them, but the 
> format is quite well supported in userspace applications.  In order to comply 
> with the V3 API the ttusb-dec driver is converting this PVA to TS in kernel 
> space.  This feels quite wrong to me.  IMHO the driver should publish its 
> format abilities for both input and output through the API so that things in 
> userspace can decide how best to use.  It seems crazy to be converting PVA to 
> TS if all you're going to do is pipe it straight to mplayer which handles PVA 
> just fine.
> 
> I know I might be going out on a limb here, since the DEC is currently the 
> only device using a format this far from the DVB standard.  Am I right in 
> thinking that the ttpci drivers do some data munging, albeit to a lesser 
> degree, though?  I think providing a userspace library for application 
> developers to use is the best way forward, similar to the way the ALSA 
> project do.  I'm sure it would help projects like VDR to keep up to date in 
> terms of the drivers they use too.  IMHO, providing backward compatibility is 
> going to become an increasingly important factor as DVB uptake increases, and 
> a userspace library would be a good start to achieving this, and the right 
> place to do it.

The av7110 based cards do not allow one to get TS packets for
the PIDs that are currently decoded. To work around that
limitation, the firmware grabs ES data from the rate buffer,
and adds a PES header (PTS grabbed from somewhere else).
The V3 driver then converts this to TS for the DVR device.

AFAIK VDR does not use this, it switches into "transfer mode",
i.e. stops live decoding, gets TS packets directly and plays
back PES (for timeshift capability).

In V4 we currently removed the PES->TS conversion code
(because it was broken wrt O_NONBLOCK). We'll see if we
have to add it back, although currently we think the
conversion should be handled in userspace.

As for PVA: IMHO this format is obsolete, and the driver
should convert it into multiplexed PES. IIRC it is not
difficult to strip the PVA header and add a PES header
(I could be wrong, the PVA spec disappeared from the
Technotrend Website).

I'm not sure if the current V4 API has support for recording
multiplexed PES, but it could be added. Conversion to TS
in the driver is certainly not the way to go.


Johannes


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



Home | Main Index | Thread Index