[gst-devel] webcam recording
Mark Nauwelaerts
manauw at skynet.be
Tue Jun 17 23:08:54 CEST 2008
Joshua N Pritikin wrote:
> On Mon, Jun 16, 2008 at 11:40:25PM +0200, Mark Nauwelaerts wrote:
>> - some variations in the capture parameters (??), framerate, size, etc
>> (might make hardware happier)
>
> Thanks for your many suggestions.
>
> Even though my camera claims to provide 30 fps, I suspect that it is
> actually providing 10 fps. I made some attempt to measure the frame
> rate, but I was unsuccessful:
>
> entrans --progress-fps -- --raw v4l2src queue-size=16 \
> ! video/x-raw-yuv,width=352 ! queue ! dam \
> ! ffmpegcolorspace ! xvimagesink
The caps that are being used should be displayed in the section PIPELINE CAPS
(at least if there isn't a problem such as you mentioned below),
which is a more organized version of what gst-launch would spit out with -v
option. This caps info should contain the framerate that is being
auto-negotiated. You could also run the pipeline with GST_DEBUG="v4l2src:3" (or
maybe it is 4?). The generated debug output should contain the formats/caps the
element expects the hardware to be able to handle (by having queried it).
(btw; also better make sure you have at least a v4l2src with property
always-copy=true (default), my hardware(driver) at least did not seem to like
the other case).
>
> SystemError: error return without exception set
> <<<< Now reached PLAYING state >>>>
> SystemError: error return without exception set
>
> I tried many variations on that theme. What is the proper way to
> diagnose such problems?
Hm, good question, this exception stuff seems to be a very weird bug I just
noticed yesterday, and I only know so far it is not entirely entrans' fault [*].
In this particular case, you can workaround it by adding
--ignore-prop '.*sink.*' to the options
(works in my setting, if needed try --ignore-prop '...*')
Regards,
Mark
[*] That particular problem was diagnosed by diving into the source code (no
substitute there ;) ) and seeing where the exception occurred. Turns out I can
reproduce the error as follows:
Python 2.5.2 (r252:60911, Apr 21 2008, 11:17:30)
[GCC 4.2.3 (Ubuntu 4.2.3-2ubuntu7)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import gst
>>> f = gst.element_factory_make ('filesink')
>>> b = f.get_property('last_buffer')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
SystemError: error return without exception set
>>> n = f.get_property('name')
No idea why/how yet, probably something going wrong in the sink - GObject -
pygobject chain if the GstMiniObject is NULL. According to specs, I might get
None here, but not some strange python exception. Anyway, I expect it will
similarly also affect other sinks with that property, though the work-around
should cover that. I had not noticed this so far because I usually run entrans
with a default config file that contains a.o. following snippet, so it never
queries sinks for their props:
[options]
ignore-prop=.*sink.*,dam.*,queue.*,identity.*,.*decodebin.*
display-prop=.*\.tag,.*\.bitrate$,.*bframes,.*quantizer,.*\.pass,.*\.queue-size
>
> -------------------------------------------------------------------------
> Check out the new SourceForge.net Marketplace.
> It's the best place to buy or sell services for
> just about anything Open Source.
> http://sourceforge.net/services/buy/index.php
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
>
More information about the gstreamer-devel
mailing list