Technology and Trends
 Video for Linux Mailing List Archives
  
List:       linux-video
Subject:    [video4linux] V4L2 update
From:       Bill Dirks <dirks () rendition ! com>
Date:       1998-09-11 18:20:04

There are new and updated Video for Linux Two files at the V4L2 website
http://millennium.diads.com/bdirks/v4l2.htm

What's new?

- The Driver Writer's Guide! The DWG documents the driver method calls
and the V4L2 kernel-mode driver helper API. It could stand more
embellishment, but it covers all the basic info.

- The way video standards are handled has been greatly enhanced. You can
now specify any of the world's broadcast standards, as well as some
non-standard formats. And it's extensible.

- There is now a timecode structure in the video_buffer structure for
SMPTE or similar timecodes, so now video can be captured with timecodes
if the hardware supports it.

I still want to make a software-only example driver, but for now the
Winnov Videum driver serves as the sample code. The Winnov driver
handles most of the things in the spec, including memory-mapped buffers,
streaming capture, select() and read(). It doesn't handle frame buffer
overlay, tuner or audio functions. New in the driver:

- Streaming capture with frame rate control and correct buffer
timestamping.

- Uses new video standard structures.


Bill.
------------
To unsubscribe from this list send mail to majordomo@phunk.org with the
line "unsubscribe video4linux" without the quotes in the body of the
message.

List:       linux-video
Subject:    [video4linux] V4L2 update
From:       Bill Dirks <dirks () rendition ! com>
Date:       1998-09-25 18:26:41

New V4L2 files are available at the V4L2 page
http://millennium.diads.com/bdirks/v4l2.htm

- The 2.1.118 f_ops change should be handled now in videodev.c, but I am
still running an earlier kernel, so if someone (Erik?) could check that,
I would appreciate it.

- The queue functions now incorporate Erik's spinlock code. I also made
separate structures for the queue root node and the element nodes. The
element nodes are now struct v4l2_q_node. So in a driver you need to
change your queue element structure, and you can remove any cli or
spinlock code you might have had around the queue function calls.

- The v4l2_video_std_tpf() function is implemented. [But I just realized
I forgot to add it to videodev.h and export it. Argh.]

- The 'mode' parameter of the V4L2 open() method is renamed to 'flags',
and the value passed is an exact copy of the struct file.f_flags field.

- The VIDIOC_NONCAP ioctl is gone. It is replaced by an open() flag
O_NONCAP. It is better to declare if an open is capturing or
non-capturing at open() time so the open can fail if the type of open
cannot be handled. (O_NONCAP is really O_TRUNC, which is otherwise not
used by drivers.)

*
Just a note that the video_standard stuff is currently in flux. I made
some changes to Michael Schimek's contribution that were wrong. Also we
are working on an overhaul of the "picture" controls. They should be
individually enumeratable, and each have individual min, max, step and
default values.

Bill.
------------
To unsubscribe from this list send mail to majordomo@phunk.org with the
line "unsubscribe video4linux" without the quotes in the body of the
message.

List:       linux-video
Subject:    [video4linux] V4L2 update
From:       Bill Dirks <bill.dirks () rendition ! com>
Date:       1998-10-02 19:16:43

Well, the next V4L2 Friday Morning Release is available at
http://millennium.diads.com/bdirks/v4l2.htm

- The id field is removed from struct video_standard, the VIDEO_STD_*
symbols are gone, and the color subcarrier fields have been renamed.
VIDIOC_QUERYSTD is renamed to VIDIOC_ENUMSTD, and struct video_querystd
is renamed to struct video_enumstd. The 'standard' field of struct
video_tuner is now a struct video_standard instead of a __u32.
(Hopefully this stuff is stabilized now.)

- VIDIOC_G_INPUT is renamed to VIDIOC_ENUMINPUT.

- VIDIOC_G_PICT and VIDIOC_S_PICT and associated structures are gone.
These are replaced by an extensible general-purpose interface for
user-settable controls. See the spec. Being new, this part could go
through some changes in the near future, but I think this is a
significant improvement to V4L2.

- There is now a preliminary /proc/videodev file.

- The video_device.busy field reflects the current open count on the
device, maintained automatically by videodev.

- There is now a draft document for a CODEC device API. If you have any
ideas or comments about a CODEC API I am interested in hearing them.


Sorry about all the changes/renames to existing ioclts and structures.

Bill.
------------
To unsubscribe from this list send mail to majordomo@phunk.org with the
line "unsubscribe video4linux" without the quotes in the body of the
message.

List:       linux-video
Subject:    Re: [video4linux] V4L2 update
From:       Alan Cox <alan () cymru ! net>
Date:       1998-10-04 14:41:06

> FYI, I'm in the midst of adding /proc/videodev to the v4l2 code, which
> will initially give you a list of devices registered by minor number, and
> maybe some basic settings info.  Eventually I thought it might be cool to

Ok

> have /proc/videodev/<cardnum>/* that can give you all the basic data, and
> maybe even allow control of it, as a degenerate non-capturing device
> (`echo 'brightness 45234' > /proc/videodev/0/picture`).  Such things can
> be done simply by having the proc functions call the ioctl method of the
> device, since they're all standard.

Don't expect that paticular idea to get past Linus ;)
------------
To unsubscribe from this list send mail to majordomo@phunk.org with the
line "unsubscribe video4linux" without the quotes in the body of the
message.

List:       linux-video
Subject:    [video4linux] V4L2 update
From:       Bill Dirks <bill.dirks () rendition ! com>
Date:       1998-10-12 23:36:31

The new server is set up now, and the latest stuff is available.
http://millennium.diads.com/bdirks/v4l2.htm

- New this week is v4l2cap.c, a pseudo capture device driver. It
implements much of the V4L2 capture API, but uses no capture hardware.
It generates synthetic test images in software instead. The test
application that comes with the Videum capture driver will work with
v4l2cap. So now anybody can start experimenting with V4L2 right away
without the need for a V4L2 supported capture card! :-)

v4l2cap.c handles most of the capture API, including capturing through
read() or through memory-mapped buffers. It supports several image
formats including RGB-16, RGB-24, RGB-32, YUV 4:2:2, YUV 4:2:0, and
grayscale (not everything is tested). The captured images show standard
color bars, plus a frame counter so each frame is different.

v4l2cap.c does not implement frame buffer preview, or tuner or audio
functions. Also, the brightness, contrast and saturation controls do not
do anything.

- There is nothing new in the API this week. The video_fmtdesc array
(capture format enumeration array) in wnv.c had the flags and depth
fields in the wrong order. The documentation listed the fields in the
wrong order too.

- Fixed a couple other bugs in the Videum driver.

Bill.
------------
To unsubscribe from this list send mail to majordomo@phunk.org with the
line "unsubscribe video4linux" without the quotes in the body of the
message.

List:       linux-video
Subject:    [video4linux] V4L2 update
From:       Bill Dirks <bill.dirks () rendition ! com>
Date:       1998-10-16 19:01:22

Updated some of the V4L2 stuff at
http://millennium.diads.com/bdirks/v4l2.htm

-  Added a new field to video_queryctrl for the control type. This made
the structure longer, so you will have to recompile your application if
you are using queryctrl.

- The sample capture driver now handles brightness, contrast and
saturation controls, and adjusts the test images accordingly.

- There is a new test program, vidpanel.c, in apps.tgz, which
demonstrates using a non-capturing open on a capture driver to change
brightness, contrast, etc. on a device. It is based on Athena widgets.
(I'll be adding more controls to it in the near future.) You can run it
simultaneouly with the xvideum.c capture test program, and manipulate
the video image in the xvideum window. It's pretty cool. Works with the
sample capture driver.


Bill.

BTW, I am using Athena widgets because that is what happened to be on my
system, and because I wanted the test programs to be easy to compile on
any system. But I am having a hard time finding information about how to
program with them. It seems most books/tutorials use Motif widgets.
Should I switch to Motif (or something else), or should I stick with
Athena? What can most people compile? I am thinking mainly about driver
test programs, which driver-writers will want to be able to recompile.
------------
To unsubscribe from this list send mail to majordomo@phunk.org with the
line "unsubscribe video4linux" without the quotes in the body of the
message.

List:       linux-video
Subject:    [video4linux] V4L2 update
From:       Bill Dirks <bill.dirks () rendition ! com>
Date:       1998-10-30 19:05:33

New V4L2 files are available at
http://millennium.diads.com/bdirks/v4l2.htm

I haven't changed the API this week.

There is a new file in apps.tgz called xcaptest.c, for testing video
capture drivers. This is derived from the xvideum.c file that was
included with the Videum drivers.

Since last week I fixed a bug in the v4l2cap.c sample capture driver
that caused RGB capture to not work, and probably also caused a deadlock
on SMP-enabled kernels, but I did not confirm that. This fix was in the
10-27 update. The Videum driver had the same bug.

The Videum driver now supports the ITT VPX video decoder chip. This was
tough because I don't have one of these. Someone volunteered to be a
tester for me, and if you can imagine a week and a half of me: "try
this"; tester: "it didn't work, here's the log"; me: "ok, try this";
tester: "still no"; me: "ok, now try this"; and so on. :-) Anyway,
thanks to Shawn Nocita for helping.

Bill.
------------
To unsubscribe from this list send mail to majordomo@phunk.org with the
line "unsubscribe video4linux" without the quotes in the body of the
message.