RFC: Use of V4L2_FBUF_FLAG_OVERLAY

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

 



During the recent V4L-DVB workshop we discussed the usage of the
V4L2_FBUF_FLAG_OVERLAY flag.

There are currently two drivers that use it: bttv uses it for the capture
overlay, and ivtv uses it for the output overlay (OSD).

In the case of bttv the behavior seems to be as follows:

If this flag is set by VIDIOC_S_FBUF, then the internal data structures are
setup so that the captured video covers the full framebuffer.

If this flag is cleared, then the current overlay geometry is kept. If you
want to update that, then you have to call S_FMT.

I am not really sure how to express this in the spec. The best I can come
up with is this:

'If FLAG_OVERLAY is set, then the video capture overlay is initially scaled
to cover the full framebuffer area. Otherwise the old S_FMT values are used.'

The problem with this is that it doesn't add any useful functionality, and
that the other drivers that implement capture overlay do not support it.

Even if the application sets this flag, then it won't know whether it was
effective. If we want to fully support this flag, then those other drivers
either need to clear it (thus telling the application that this flag wasn't
supported), or actually implement this functionality. Just clearing the
flag is of course the easiest course of action.

Mauro, does this make sense? What is your opinion?


In the case of ivtv the behavior is as follows (from the original commit
message):

    The existing yuv code limits output to the display area occupied by the
    framebuffer. This patch allows the yuv output to be 'detached' via
    V4L2_FBUF_FLAG_OVERLAY.
    
    By default, the yuv output window will be restricted to the framebuffer
    dimensions and the output position is relative to the top left corner of the
    framebuffer. This matches the behaviour of previous versions.
    
    If V4L2_FBUF_FLAG_OVERLAY is cleared, the yuv output will no longer be linked
    to the framebuffer. The maximum dimensions are either 720x576 or 720x480
    depending on the current broadcast standard, with the output position
    relative to the top left corner of the display. The framebuffer itself can be
    resized, moved and panned without affecting the yuv output.

So, the definition for FLAG_OVERLAY for output overlays would be:

'If FLAG_OVERLAY is set, then the video output overlay window is relative to
the top-left corner of the framebuffer and restricted to the size of the
framebuffer. If it is cleared, then the video output overlay window is relative
to the video output display.'

Ian, does this make sense?

Does anyone else have any comments regarding this flag?

	Hans
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux