[gst-devel] V4lsrc customization (looking for dev for hire)
Ruben Gonzalez Uvigo
rubenrua at uvigo.es
Thu Feb 25 11:54:49 CET 2010
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?
Ruben Gonzalez Gonzalez
mailto:rubenrua at gmail.com
mailto:rubenrua at uvigo.es
2010/2/25 Florent <fthiery at gmail.com>:
>> 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
>> 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,
> 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.
> gstreamer-devel mailing list
> gstreamer-devel at lists.sourceforge.net
More information about the gstreamer-devel