V4lsrc customization (looking for dev for hire)

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

V4lsrc customization (looking for dev for hire)

Christopher Brooks
Hi,

I'm a developer/manager involved with an open source project
(www.opencastproject.org) that relies on gstreamer for some of our base
functionality.  We're using a vga capture device with the v4lsrc element to
record the desktop of faculty, and send this along with other video for
processing for the web.  The device we have, the Epiphan VGA2USB, doesn't
have a driver that pads frames when there is no signal.  Instead, the v4lsrc
fails when reading from the frame buffer and disrupts the filter chain.
This is a pretty big problem, as it causes recording of all streams (we bin
a bunch together) grinds to a halt.  Turns out that our domain (academic
lectures) often has this kind of issue (picture faculty unplugging vga from
one laptop into another).  To this end, we've been encouraging users of our
system to use it with a DA scaler to ensure there is always a vga signal
being sent to our capture hardware.

Our system lives in the java/flex/html/css world, so developers with lower
level C skills are rare, and gstreamer is a big toolkit.  As we're an OSS
project, I thought I would see if there was anyone who would be willing to
help out adding a "pad frame" feature to the v4lsrc element to handle this
kind of issue.  We have no interest in owning the IP for this customization;
ideally it would be contributed upstream and into the gstreamer core.  We
may have some limited financial resources depending on the amount of effort
this would take.

Any takers?  We have some ideas of where it should be solved in the code,
but the build process seems quite daunting...

Chris


------------------------------------------------------------------------------
Download Intel® Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: V4lsrc customization (looking for dev for hire)

Florent THIERY-2
Hi,

> I'm a developer/manager involved with an open source project
> (www.opencastproject.org) that relies on gstreamer for some of our base
> functionality.  We're using a vga capture device with the v4lsrc element to
> record the desktop of faculty, and send this along with other video for
> processing for the web.  The device we have, the Epiphan VGA2USB, doesn't
> have a driver that pads frames when there is no signal.

I have experience with using this very device with gstreamer, and in
effect you are getting errors if you have no signal. However, note
that this is also the case with other v4l capture devices (ex: osprey
analog capture cards), so what your application needs to do is probe
for signal: try getting data, if you got none, then your signal is
offline. If you're getting packets, then it's connected and serving
data.

> This is a pretty big problem, as it causes recording of all streams (we bin
> a bunch together) grinds to a halt.

- you could choose to separate the VGA capture part from the video/audio capture
- alternatively, you may use input-selector to feed your pipeline with
fake data (from videotestsrc); during that, probe your v4lsrc device;
whenever you're getting data, set your v4lsrc branch to playing and
switch inputselector to the other source. It might be tricky with
segments, but could work. However, you need in all cases to normalize
the input resolution and framerates using videoscales and videorate.
- using videorate which will duplicate the last frame in case of
signal loss to keep the stream seamless

Are you using videomixer to mix the signals ?

>  Turns out that our domain (academic
> lectures) often has this kind of issue (picture faculty unplugging vga from
> one laptop into another).  To this end, we've been encouraging users of our
> system to use it with a DA scaler to ensure there is always a vga signal
> being sent to our capture hardware.

This won't always work, as many hardware scalers/switchers do not
realize a real seamless switching. So, you're right to look after a
better solution :)

> Our system lives in the java/flex/html/css world, so developers with lower
> level C skills are rare

You can do this in python.

>, and gstreamer is a big toolkit.  As we're an OSS
> project, I thought I would see if there was anyone who would be willing to
> help out adding a "pad frame" feature to the v4lsrc element to handle this
> kind of issue.

IMHO, i don't think it would be a needed feature for all v4lsrc
devices (since most of them are webcams, they always have signal).
Higher level approaches would solve your issues.

Might not be what you were looking for, but i hope it helps,

Regards,

Florent

------------------------------------------------------------------------------
Download Intel® Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: V4lsrc customization (looking for dev for hire)

Ruben Gonzalez Uvigo
Hi, I'm a developer in the Opencast project, too.

In our current solution (using a Java binding for gstreamer),
gstreamer is initialized right before a pipeline is created, and
deinitialized right after the pipeline is stopped. Therefore, your
inputselector solution is not valid. It could be interesting if we
init gstreamer when our whole service starts, instead. But in that
case we should be able to catch a certain signal that should be raised
when the card gets a signal to modify that inputselector in the
pipeline. Is there such a signal or how can it be generated?



Un saludo

--
Ruben Gonzalez Gonzalez
mailto:[hidden email]
mailto:[hidden email]




2010/2/25 Florent <[hidden email]>:

> Hi,
>
>> I'm a developer/manager involved with an open source project
>> (www.opencastproject.org) that relies on gstreamer for some of our base
>> functionality.  We're using a vga capture device with the v4lsrc element to
>> record the desktop of faculty, and send this along with other video for
>> processing for the web.  The device we have, the Epiphan VGA2USB, doesn't
>> have a driver that pads frames when there is no signal.
>
> I have experience with using this very device with gstreamer, and in
> effect you are getting errors if you have no signal. However, note
> that this is also the case with other v4l capture devices (ex: osprey
> analog capture cards), so what your application needs to do is probe
> for signal: try getting data, if you got none, then your signal is
> offline. If you're getting packets, then it's connected and serving
> data.
>
>> This is a pretty big problem, as it causes recording of all streams (we bin
>> a bunch together) grinds to a halt.
>
> - you could choose to separate the VGA capture part from the video/audio capture
> - alternatively, you may use input-selector to feed your pipeline with
> fake data (from videotestsrc); during that, probe your v4lsrc device;
> whenever you're getting data, set your v4lsrc branch to playing and
> switch inputselector to the other source. It might be tricky with
> segments, but could work. However, you need in all cases to normalize
> the input resolution and framerates using videoscales and videorate.
> - using videorate which will duplicate the last frame in case of
> signal loss to keep the stream seamless
>
> Are you using videomixer to mix the signals ?
>
>>  Turns out that our domain (academic
>> lectures) often has this kind of issue (picture faculty unplugging vga from
>> one laptop into another).  To this end, we've been encouraging users of our
>> system to use it with a DA scaler to ensure there is always a vga signal
>> being sent to our capture hardware.
>
> This won't always work, as many hardware scalers/switchers do not
> realize a real seamless switching. So, you're right to look after a
> better solution :)
>
>> Our system lives in the java/flex/html/css world, so developers with lower
>> level C skills are rare
>
> You can do this in python.
>
>>, and gstreamer is a big toolkit.  As we're an OSS
>> project, I thought I would see if there was anyone who would be willing to
>> help out adding a "pad frame" feature to the v4lsrc element to handle this
>> kind of issue.
>
> IMHO, i don't think it would be a needed feature for all v4lsrc
> devices (since most of them are webcams, they always have signal).
> Higher level approaches would solve your issues.
>
> Might not be what you were looking for, but i hope it helps,
>
> Regards,
>
> Florent
>
> ------------------------------------------------------------------------------
> Download Intel&#174; Parallel Studio Eval
> Try the new software tools for yourself. Speed compiling, find bugs
> proactively, and fine-tune applications for parallel performance.
> See why Intel Parallel Studio got high marks during beta.
> http://p.sf.net/sfu/intel-sw-dev
> _______________________________________________
> gstreamer-devel mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
>

------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: V4lsrc customization (looking for dev for hire)

Stefan Sauer
In reply to this post by Christopher Brooks
Am 24.02.2010 07:06, schrieb Christopher Brooks:

> Hi,
>
> I'm a developer/manager involved with an open source project
> (www.opencastproject.org) that relies on gstreamer for some of our base
> functionality.  We're using a vga capture device with the v4lsrc element to
> record the desktop of faculty, and send this along with other video for
> processing for the web.  The device we have, the Epiphan VGA2USB, doesn't
> have a driver that pads frames when there is no signal.  Instead, the v4lsrc
> fails when reading from the frame buffer and disrupts the filter chain.
> This is a pretty big problem, as it causes recording of all streams (we bin
> a bunch together) grinds to a halt.  Turns out that our domain (academic
> lectures) often has this kind of issue (picture faculty unplugging vga from
> one laptop into another).  To this end, we've been encouraging users of our
> system to use it with a DA scaler to ensure there is always a vga signal
> being sent to our capture hardware.

I wonder if this is a problem with v4lsrc. At first can you file a bug and post
an error log there:
 GST_DEBUG="*:5" GST_DEBUG_NO_COLOR <your-app> 2>debug.log

Then could you please also try:
  LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so <yout-app>
and use v4l2src instead of v4lsrc. There is also a
/usr/lib/libv4l/v4l2convert.so that can be preloaded to supply software format
conversion needed for some capture devices.

Basically what I wonder is that as v4lsrc and v4l2src are live sources they
anyway don't capture frames at equidistant timestamps. SO this should just work.

Stefan


>
> Our system lives in the java/flex/html/css world, so developers with lower
> level C skills are rare, and gstreamer is a big toolkit.  As we're an OSS
> project, I thought I would see if there was anyone who would be willing to
> help out adding a "pad frame" feature to the v4lsrc element to handle this
> kind of issue.  We have no interest in owning the IP for this customization;
> ideally it would be contributed upstream and into the gstreamer core.  We
> may have some limited financial resources depending on the amount of effort
> this would take.
>
> Any takers?  We have some ideas of where it should be solved in the code,
> but the build process seems quite daunting...
>
> Chris
>
>
> ------------------------------------------------------------------------------
> Download Intel&#174; Parallel Studio Eval
> Try the new software tools for yourself. Speed compiling, find bugs
> proactively, and fine-tune applications for parallel performance.
> See why Intel Parallel Studio got high marks during beta.
> http://p.sf.net/sfu/intel-sw-dev
> _______________________________________________
> gstreamer-devel mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel


------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel