freebsd-dev/sys/compat/linux/linux_videodev_compat.h
Alexander Leidinger 7b6bedd3a7 This is v4l support for the linuxulator. This allows to access FreeBSD
native devices which support the v4l API from processes running within
the linuxulator, e.g. skype or flash can access the multimedia/pwcbsd driver.

Not tested is firmware upload, framebuffer stuff and video tuner stuff
due to lack of hardware.
The clipping part (VIDIOCSWIN) needs a little bit of further work (partly
in progress, but can not be tested due to lack of a suitable device).

The submitter tested this sucessfully with Skype and flash apps on amd64 and
i386 with the multimedia/pwcbsd driver.

Submitted by:	J.R. Oldroyd <fbsd@opal.com>
2009-12-04 21:06:54 +00:00

60 lines
1.1 KiB
C

/*
* $FreeBSD$
*/
/*
* This file defines compatibility versions of several video structures
* defined in the Linux videodev.h header (linux_videodev.h). The
* structures defined in this file are the ones that have been determined
* to have 32- to 64-bit size dependencies.
*/
#ifndef _LINUX_VIDEODEV_COMPAT_H_
#define _LINUX_VIDEODEV_COMPAT_H_
struct l_video_tuner
{
l_int tuner;
#define LINUX_VIDEO_TUNER_NAME_SIZE 32
char name[LINUX_VIDEO_TUNER_NAME_SIZE];
l_ulong rangelow, rangehigh;
uint32_t flags;
uint16_t mode;
uint16_t signal;
};
struct l_video_clip
{
int32_t x, y;
int32_t width, height;
l_uintptr_t next;
};
struct l_video_window
{
uint32_t x, y;
uint32_t width, height;
uint32_t chromakey;
uint32_t flags;
l_uintptr_t clips;
l_int clipcount;
};
struct l_video_buffer
{
l_uintptr_t base;
l_int height, width;
l_int depth;
l_int bytesperline;
};
struct l_video_code
{
#define LINUX_VIDEO_CODE_LOADWHAT_SIZE 16
char loadwhat[LINUX_VIDEO_CODE_LOADWHAT_SIZE];
l_int datasize;
l_uintptr_t data;
};
#endif /* !_LINUX_VIDEODEV_COMPAT_H_ */