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 |
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 |
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® 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® 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 |
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® 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® 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 |
Free forum by Nabble | Edit this page |