The fault was most definitely with gscam. Longterm, I need to find the
time to make gscam timestamp aware (which is the problem). In the
meantime, I've added a work-around to all versions of gscam. gscam can
now respond to a /brown/gscam/fps parameter. If your video runs
at---say--30 fps then:
rosparam set /brown/gscam/fps 30
before running gscam will have gscam emit frames at the appropriate rate.
One thing to note: because gscam will no longer be greedily processing
frames, you will probably need to ad a queue to your gstreamer
pipeline. For example:
export GSCAM_CONFIG="filesrc location=/home/tjay/test/sixties.mov !
decodebin ! ffmpegcolorspace ! queue ! video/x-raw-rgb ! identity
name=ros ! fakesink"
Thank you very, very much for bringing this problem to my attention.
Please let me know if this work-around works for you. I'll keep you
posted on my progress on a "real" solution.
_Trevor