RFC: multi channel frame grabber card support

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

RFC: multi channel frame grabber card support

Farkas Levente-2
hi,
as i wrote earlier we'd like to add support for multi channel frame
grabber cards in gstreamer. what's the problem:
currently there are the only hardware video input supported by gstreamer
is the v4l or v4l2 compatible video sources. there are good for common
hardware like ip camera, tv card (with tunner) or other hardware like
s-video input etc. but there are many kind of card which has more
(4,8,16,24) input channel (usually analog input). there card can give
raw or encoded video sources. but these usually has one physical devices
ie. one /dev/videoX devices (in this case we've got n composite input).
we'd like to build in this case n pipeline for the n input channel. one
of the simple example IVC-100 card which has one bt878 chip and 4
composite input and one 4 channel multiplexer.
http://www.iei.com.tw/en/product_IPC.asp?model=IVC-100G
in this case we can use v4l and choose one of the channel but we'd like
to build 4 pipeline and set different parameters on the different
pipeline's source properties (like frame rate, resolution etc). what's
more we'd like to modify the source element properties during it's
running eg. i'd like to modify the 2nd channel frame rate while wouldn't
like to stop the other 4 pipeline!!! and it's an important feature.
what we can do?
- we can create a new source element with 4 output pads,
- or create a new source element with one output pad, but we'd like to
create 4 such source element which can parallel use the same device's
different input channel.
the first would be the easier, but in this case we can't modify one of
the input channel's parameter without stop the other pipelines:-( or can
i do it somehow? and in this case all of the pipeline has to be run in
the same process.
in the second case we can start and stop the pipeline independently
what's more use them in different process, but we probably have to
create some kind of master/controller process which control the access
of the source elements to the device.
what do you think about it?
what do you suggest about it?
what's your comments?
thanks in advance.
yours.

--
   Levente                               "Si vis pacem para bellum!"

-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference
Don't miss this year's exciting event. There's still time to save $100.
Use priority code J8TL2D2.
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: RFC: multi channel frame grabber card support

acolubri
Hi Farkas,

I'm very interested in this topic, since I'm currently writing a source
element for the matrox morphis capture card:

http://www.matrox.com/imaging/products/morphis/

This card supports up to 4 simultaneous cameras, but as you mentioned
for the ICV-100 card, it has only one physical device.

So right now i did a very quick and dirty hack where I send the frames
from each camera one after the other (i.e.: frame i is from camera 1,
frame i+1 from camera 2, frame i+2 from camera 3, frame i+3 from camera
4, frame i+4 is again from camera 1, and so on)... this was just for
testing. I'm very interested to see what would be the answers for the
questions in your email.

Best,
Andres

Farkas Levente wrote:

> hi,
> as i wrote earlier we'd like to add support for multi channel frame
> grabber cards in gstreamer. what's the problem:
> currently there are the only hardware video input supported by gstreamer
> is the v4l or v4l2 compatible video sources. there are good for common
> hardware like ip camera, tv card (with tunner) or other hardware like
> s-video input etc. but there are many kind of card which has more
> (4,8,16,24) input channel (usually analog input). there card can give
> raw or encoded video sources. but these usually has one physical devices
> ie. one /dev/videoX devices (in this case we've got n composite input).
> we'd like to build in this case n pipeline for the n input channel. one
> of the simple example IVC-100 card which has one bt878 chip and 4
> composite input and one 4 channel multiplexer.
> http://www.iei.com.tw/en/product_IPC.asp?model=IVC-100G
> in this case we can use v4l and choose one of the channel but we'd like
> to build 4 pipeline and set different parameters on the different
> pipeline's source properties (like frame rate, resolution etc). what's
> more we'd like to modify the source element properties during it's
> running eg. i'd like to modify the 2nd channel frame rate while wouldn't
> like to stop the other 4 pipeline!!! and it's an important feature.
> what we can do?
> - we can create a new source element with 4 output pads,
> - or create a new source element with one output pad, but we'd like to
> create 4 such source element which can parallel use the same device's
> different input channel.
> the first would be the easier, but in this case we can't modify one of
> the input channel's parameter without stop the other pipelines:-( or can
> i do it somehow? and in this case all of the pipeline has to be run in
> the same process.
> in the second case we can start and stop the pipeline independently
> what's more use them in different process, but we probably have to
> create some kind of master/controller process which control the access
> of the source elements to the device.
> what do you think about it?
> what do you suggest about it?
> what's your comments?
> thanks in advance.
> yours.
>
>  


-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference
Don't miss this year's exciting event. There's still time to save $100.
Use priority code J8TL2D2.
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: RFC: multi channel frame grabber card support

Farkas Levente-2
In reply to this post by Farkas Levente-2
anybody, any comment?

Farkas Levente wrote:

> hi,
> as i wrote earlier we'd like to add support for multi channel frame
> grabber cards in gstreamer. what's the problem:
> currently there are the only hardware video input supported by gstreamer
> is the v4l or v4l2 compatible video sources. there are good for common
> hardware like ip camera, tv card (with tunner) or other hardware like
> s-video input etc. but there are many kind of card which has more
> (4,8,16,24) input channel (usually analog input). there card can give
> raw or encoded video sources. but these usually has one physical devices
> ie. one /dev/videoX devices (in this case we've got n composite input).
> we'd like to build in this case n pipeline for the n input channel. one
> of the simple example IVC-100 card which has one bt878 chip and 4
> composite input and one 4 channel multiplexer.
> http://www.iei.com.tw/en/product_IPC.asp?model=IVC-100G
> in this case we can use v4l and choose one of the channel but we'd like
> to build 4 pipeline and set different parameters on the different
> pipeline's source properties (like frame rate, resolution etc). what's
> more we'd like to modify the source element properties during it's
> running eg. i'd like to modify the 2nd channel frame rate while wouldn't
> like to stop the other 4 pipeline!!! and it's an important feature.
> what we can do?
> - we can create a new source element with 4 output pads,
> - or create a new source element with one output pad, but we'd like to
> create 4 such source element which can parallel use the same device's
> different input channel.
> the first would be the easier, but in this case we can't modify one of
> the input channel's parameter without stop the other pipelines:-( or can
> i do it somehow? and in this case all of the pipeline has to be run in
> the same process.
> in the second case we can start and stop the pipeline independently
> what's more use them in different process, but we probably have to
> create some kind of master/controller process which control the access
> of the source elements to the device.
> what do you think about it?
> what do you suggest about it?
> what's your comments?
> thanks in advance.
> yours.
>


--
   Levente                               "Si vis pacem para bellum!"

-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference
Don't miss this year's exciting event. There's still time to save $100.
Use priority code J8TL2D2.
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: RFC: multi channel frame grabber card support

gstreamer-devel-bounces
On Wed, Apr 30, 2008 at 09:03:51PM +0200, Farkas Levente wrote:

> anybody, any comment?
>
> Farkas Levente wrote:
> > hi,
> > as i wrote earlier we'd like to add support for multi channel frame
> > grabber cards in gstreamer. what's the problem:
> > currently there are the only hardware video input supported by gstreamer
> > is the v4l or v4l2 compatible video sources. there are good for common
> > hardware like ip camera, tv card (with tunner) or other hardware like
> > s-video input etc. but there are many kind of card which has more
> > (4,8,16,24) input channel (usually analog input). there card can give
> > raw or encoded video sources. but these usually has one physical devices
> > ie. one /dev/videoX devices (in this case we've got n composite input).
> > we'd like to build in this case n pipeline for the n input channel. one
> > of the simple example IVC-100 card which has one bt878 chip and 4
> > composite input and one 4 channel multiplexer.
> > http://www.iei.com.tw/en/product_IPC.asp?model=IVC-100G
> > in this case we can use v4l and choose one of the channel but we'd like
> > to build 4 pipeline and set different parameters on the different
> > pipeline's source properties (like frame rate, resolution etc). what's
> > more we'd like to modify the source element properties during it's
> > running eg. i'd like to modify the 2nd channel frame rate while wouldn't
> > like to stop the other 4 pipeline!!! and it's an important feature.
> > what we can do?
> > - we can create a new source element with 4 output pads,
> > - or create a new source element with one output pad, but we'd like to
> > create 4 such source element which can parallel use the same device's
> > different input channel.
> > the first would be the easier, but in this case we can't modify one of
> > the input channel's parameter without stop the other pipelines:-( or can
> > i do it somehow? and in this case all of the pipeline has to be run in
> > the same process.
> > in the second case we can start and stop the pipeline independently
> > what's more use them in different process, but we probably have to
> > create some kind of master/controller process which control the access
> > of the source elements to the device.
> > what do you think about it?
> > what do you suggest about it?
> > what's your comments?
> > thanks in advance.

No sure if I understand what you want to do and what your questions
are exactly...

Anyway, I can confirm that GStreamer works perfectly fine with an
ViewCast Osprey 440 which has 4 composite video channels. While we
use the very same settings for all inputs in our setup, the channels
really are entirely independant. I've done numerous tests without
any problem (excepted bad cables)

In our setup we optionally use such cards (or any
v4lsrc channel) to monitor the inputs of video switchers : we grab
all four channels from a single networked pipeline in our headless
backend, and send them with gstreamer to our X11 frontend.

While we create a single pipeline with all four inputs, you can
just as easily create several independant pipelines.

You can see the source or download the whole project from :

        http://boxtream.unice.fr
       
Hoping this helps.        

Bye,

Jerome Alet

-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference
Don't miss this year's exciting event. There's still time to save $100.
Use priority code J8TL2D2.
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel