Mailing List archive

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

[linux-dvb] Re: video4linux converging with linux dvb



Rob.McConnell@Zarlink.Com writes:

> Now I have only recently taken a peek at the V4L2 APIs and understand that
> they support video scaling/cropping and some video output capabilities.
> However, there are requirements for video encoders (DENC) that don't appear
> in the API.

Jep, mainly because there is no driver yet (at least none known to
me).  Just pulling some API spec out of thin air without at least one
reference implementation usually doesn't work out that well.  Even one
implementation doesn't ensures that you get a reasonable API.

Right now I'm trying to work out a v4l2 ioctl to set MPEG encoder
parameters (see latest v4l snapshots and the videodev2.h file
therein).  Intention is to have some common API for all these cards
which do mpeg hardware compression of the incoming, analog tv aignal:
ivtv, saa7134-based (empress design), cx88-based (blackbird design).
Comments on that are welcome.

> For example, there isn't the ability to specify RGB, YUV, YC
> (S-VHS), CVBS output configurations, enabling/disabling Macrovision,
> enabling certain test modes (e.g. colour bars), CGMS support, etc.  These
> are typical functions that DENCs provide as well as WSS, VPS, close
> captions and teletext insertion all in the VBI.

That is analog output (for the tv set connected to the set-top box) I
guess?

Well, v4l2 has buffer types V4L2_BUF_TYPE_VIDEO_OUTPUT +
V4L2_BUF_TYPE_VBI_OUTPUT, so the very basic stuff is there, but there
are probably a number of details missing.  See above. nobody seems to
use v4l2 for that, thats why there isn't much ...

Other candidates for video output are: DVB (full-featured cards),
framebuffer drivers (+directfb?), X11.

> Then there's the issue of video scaling.  The current Linux DVB V4 video
> API  I modified to allow the presentation format to set internal
> scaling/centre cut-out/letterbox modes that are usually integral to the
> MPEG video decoder hardware.  In the UK the end aspect ratio is dependent
> on the broadcast aspect ratio as well as transmitted AFDs (active format
> descriptors), but the user (or application) can override this to display a
> 1/4 or 1/16 or other-size video _underneath_ the graphics/OSD plane.  So,
> then there's the question of whether the Linux DVB V4 video API should be
> extended to handle scaling (especially for STB chips) or to use the
> V4L/V4L2 API.  It seems very disjoint to have 2 separate APIs, when the
> underlying hardware is closely coupled.

Well, the saa7146 driver uses both dvb and v4l2 APIs for full-featured
cards.  dvb for the digital part and v4l2 for the decoded, analog
data.

> So the next logical question is should both camps start to think about
> collaborating together to form a single set of APIs that handle both
> analog/digital cards as well as STBs?

I don't see that much overlap between the two, so I don't think it
makes that much sense trying to merge them.  DVB handles digital
input, v4l2 handles analog input.  You want to do something different:
video output.

Probably it's easier to extend the dvb API to handle video-out as
well.  I think there is some stuff for that already because it's
needed for full-featured cards.  IIRC it is possible to use the MPEG
hardware decoder on full-featured DVB cards not only to decode the
incoming DVB transport streams, but also to playback recorded MPEG
streams from the hard disk ...

  Gerd

-- 
return -ENOSIG;




Home | Main Index | Thread Index