TV Tuner/Capture support...

This question is probably aimed at Dave…

I’m just wondering what the plans are as far as a standard interface goes
for TV tuner/capture cards under Photon?

Primarily, what kind of software interface do you foresee this having?
In essence, will it be a /dev/ interface device or will you have to access
it via Photon calls?

The reason I ask, is because of the different type of tuner/capture boards out there.

For devices like the ATI All-In-Wonder, devg-rage128 will almost have to manage
the capture funtionality since its coming in from the VIP (and the Bt829 and the
tuner have to be configed via the Rage as well).

But for devices like a Bt878 series PCI inlay style capture card, you need to have
a separate device interface that most likely would NOT reside in the normal devg-
library (perhaps a standard “.so” that could be loaded by the devg module as an
add-on plugin for video capture – or just a separate /dev interface for the video
capture card?).

I’ve been poking around a bit with the devg for Rage and looking at the function
call names that are already present for vcap and Bt829 configuration, and it sort
of looks to me like the functionality is primarily living in this module right now.

I’m just sort of curious as to how this is going to progress in the future.

I have already written a decent Bt878 driver that we use internally but it
has our own message based API for configuration. I was going to be
working on my code a bit anyway and if you have any information ready
to give out on what your plans are for a standard interface, I would be
VERY interested in seeing it.

\

Michael Burkey (mailto:Michael.Burkey@Nexwarecorp.com)
Nexware Corp. (http://www.nexwarecorp.com)
Software Engineer
865.546.9998 x201

Michael D. Burkey <michael.burkey@nexwarecorp.com> wrote:

This question is probably aimed at Dave…

I’m just wondering what the plans are as far as a standard interface goes
for TV tuner/capture cards under Photon?

Primarily, what kind of software interface do you foresee this having?
In essence, will it be a /dev/ interface device or will you have to access
it via Photon calls?

Via Photon calls for devices which are integrated onto the graphics
adapter.

The reason I ask, is because of the different type of tuner/capture boards out there.

For devices like the ATI All-In-Wonder, devg-rage128 will almost have to manage
the capture funtionality since its coming in from the VIP (and the Bt829 and the
tuner have to be configed via the Rage as well).

Yep.

But for devices like a Bt878 series PCI inlay style capture card, you need to have
a separate device interface that most likely would NOT reside in the normal devg-
library (perhaps a standard “.so” that could be loaded by the devg module as an
add-on plugin for video capture – or just a separate /dev interface for the video
capture card?).

There is a separate framework/API under development for these kind of devices.

I’ve been poking around a bit with the devg for Rage and looking at the function
call names that are already present for vcap and Bt829 configuration, and it sort
of looks to me like the functionality is primarily living in this module right now.

It’s been implemented all the way through to the Photon API level. The API
still needs to be finalised and documented, however.

I’m just sort of curious as to how this is going to progress in the future.

I have already written a decent Bt878 driver that we use internally but it
has our own message based API for configuration. I was going to be
working on my code a bit anyway and if you have any information ready
to give out on what your plans are for a standard interface, I would be
VERY interested in seeing it.

The Photon capture API will probably show up first. If you’re brave,
(which I suspect you are :wink: you might want to experiment with it
under 6.1. Here’s some hints:

o Look at /usr/include/photon/Pg.h and PhProto.h
o To create a capture channel, use:
PgScalerCaps_t vcaps;

if (PgCreateVideoChannel(Pg_VIDEO_CHANNEL_SCALER, 0)) == NULL) {

o Walk the list of available formats with PgGetCaptureCapabilities
(works a bit like PgGetScalerCapabilities).
o Configure the device with PgConfigCaptureChannel. Don’t forget
to set update_flags when changing a parameter. Supply an offscreen
context(s) to which the video will be streamed (e.g one you got from
the Scaler API).

Good luck :wink:

Dave