gstreamer videograbber

hi

has just uploaded a first version of the videograbber using gstreamer:

http://openframeworks.cc/files/oF006-Gstreamer.tar.gz
http://openframeworks.cc/files/oF006-Gs-…-its.tar.gz

there’s a modified version of oF and the movieGrabber and moviePlayer examples.

to test it you’ll need to install some additional dependencies:

sudo apt-get install libhal-dev libdbus-1-dev

right now it only works with v4l and v4l2 devices, no firewire, but it should solve most of the problems with cameras that are working under cheese or ekiga but not with unicap/ucview.

it should also work with jpeg cameras so if someone have one of those and can try…

arturo

arturo

This works for me using ubuntu 9.04 and the Logitech Quickcam Messenger, a v4l2 device.

Thank you.

Yes, with this I am finally able to get the ps3eye working in linux properly. Unicap was giving me a lot of trouble. Thanks!

I’d be glad to help out in any way developing this further.

Greetings. Arutro, thanks for all the help. Good news is that when I compile your http://openframeworks.cc/files/oF006-Gstreamer.tar.gz I can view video input from my Pinnacle card (which was a big 48 hour hurdle for me).

Now the only problem I’m having is getting your gstreamer update merged with my existing projects. To merge it with my existing OF dir I just dragged over all of contents of oF006-Gstreamer into my OF directory and hit “merge all” and the “replace all”. At this point the new movieGrabber project from your gstreamer example compiles fine from my existing OF dir and I can see my camera running off the Pinnacle card (sweet). Next, to merge this into my existing apps in the same OF/apps/example dir I did the following:

  • copied / replaced everything from the new MovieGrabberExample/bin/libs into myProject/bin/libs

  • in myProject.cbp I did Project->Add Files from OF/libs/openframeworks/video/ofGstUtils(.cpp and .h)

Are there steps I am missing? When I rebuild and run I get a bunch of dbus and libhal errors (pasted below). Any suggestions? Thanks.

  
||=== grafAnalysis, Debug ===|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/addons/ofxXmlSettings/libs/tinyxmlparser.cpp|357|warning: suggest parentheses around && within |||  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/addons/ofxXmlSettings/src/ofxXmlSettings.cpp||In member function ‘int ofxXmlSettings::addTag(std::string)’:|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/addons/ofxXmlSettings/src/ofxXmlSettings.cpp|420|warning: deprecated conversion from string constant to ‘char*’|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/apps/examples/grafAnalysis_8/src/gui/guiButtonGroup.h||In member function ‘int guiButtonGroup::setOn(int)’:|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/apps/examples/grafAnalysis_8/src/gui/guiButtonGroup.h|19|warning: no return statement in function returning non-void|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/apps/examples/grafAnalysis_8/src/gui/guiButtonGroup.cpp||In member function ‘int guiButtonGroup::update(int, int)’:|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/apps/examples/grafAnalysis_8/src/gui/guiButtonGroup.cpp|44|warning: comparison between signed and unsigned integer expressions|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/apps/examples/grafAnalysis_8/src/gui/guiButtonGroup.cpp|55|warning: comparison between signed and unsigned integer expressions|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/apps/examples/grafAnalysis_8/src/gui/guiButtonGroup.cpp||In member function ‘void guiButtonGroup::draw()’:|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/apps/examples/grafAnalysis_8/src/gui/guiButtonGroup.cpp|67|warning: comparison between signed and unsigned integer expressions|  
src/gui/guiButtonGroup.h||In member function ‘int guiButtonGroup::setOn(int)’:|  
src/gui/guiButtonGroup.h|19|warning: no return statement in function returning non-void|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/apps/examples/grafAnalysis_8/src/physics/particleSystem.cpp||In member function ‘void particleSystem::reset(int, int)’:|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/apps/examples/grafAnalysis_8/src/physics/particleSystem.cpp|20|warning: comparison between signed and unsigned integer expressions|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/apps/examples/grafAnalysis_8/src/physics/particleSystem.cpp|25|warning: comparison between signed and unsigned integer expressions|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/apps/examples/grafAnalysis_8/src/physics/particleSystem.cpp||In member function ‘void particleSystem::update(float)’:|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/apps/examples/grafAnalysis_8/src/physics/particleSystem.cpp|59|warning: comparison between signed and unsigned integer expressions|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/apps/examples/grafAnalysis_8/src/physics/particleSystem.cpp||In member function ‘void particleSystem::draw(float)’:|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/apps/examples/grafAnalysis_8/src/physics/particleSystem.cpp|65|warning: comparison between signed and unsigned integer expressions|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/apps/examples/grafAnalysis_8/src/physics/vectorField.cpp||In member function ‘void vectorField::addToFieldAnSpecialCircleShape(float, float, float, float, float, float)’:|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/apps/examples/grafAnalysis_8/src/physics/vectorField.cpp|83|warning: unused variable ‘unit_px’|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/apps/examples/grafAnalysis_8/src/physics/vectorField.cpp|84|warning: unused variable ‘unit_py’|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/apps/examples/grafAnalysis_8/src/physics/vectorField.cpp||In member function ‘float* vectorField::getVfromPos(float, float)’:|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/apps/examples/grafAnalysis_8/src/physics/vectorField.cpp|144|warning: address of local variable ‘vFromPos’ returned|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/apps/examples/grafAnalysis_8/src/recording/grafRecorder.cpp||In member function ‘bool grafRecorder::addNewPoint(ofPoint)’:|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/apps/examples/grafAnalysis_8/src/recording/grafRecorder.cpp|85|warning: comparison between signed and unsigned integer expressions|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/apps/examples/grafAnalysis_8/src/recording/grafRecorder.cpp||In member function ‘ofPoint grafRecorder::getPointForTime(float, int&, float&, float&)’:|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/apps/examples/grafAnalysis_8/src/recording/grafRecorder.cpp|211|warning: comparison between signed and unsigned integer expressions|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/apps/examples/grafAnalysis_8/src/recording/grafRecorder.cpp||In member function ‘void grafRecorder::drawTimeStroked()’:|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/apps/examples/grafAnalysis_8/src/recording/grafRecorder.cpp|368|warning: comparison between signed and unsigned integer expressions|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/apps/examples/grafAnalysis_8/src/recording/grafRecorder.cpp|375|warning: comparison between signed and unsigned integer expressions|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/apps/examples/grafAnalysis_8/src/recording/grafRecorder.cpp||In member function ‘void grafRecorder::drawCurved()’:|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/apps/examples/grafAnalysis_8/src/recording/grafRecorder.cpp|388|warning: comparison between signed and unsigned integer expressions|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/apps/examples/grafAnalysis_8/src/recording/grafRecorder.cpp|394|warning: comparison between signed and unsigned integer expressions|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/apps/examples/grafAnalysis_8/src/recording/grafRecorder.cpp||In member function ‘void grafRecorder::drawWireframe()’:|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/apps/examples/grafAnalysis_8/src/recording/grafRecorder.cpp|500|warning: comparison between signed and unsigned integer expressions|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/apps/examples/grafAnalysis_8/src/recording/grafRecorder.cpp||In member function ‘void grafRecorder::saveToXML(std::string)’:|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/apps/examples/grafAnalysis_8/src/recording/grafRecorder.cpp|523|warning: comparison between signed and unsigned integer expressions|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/apps/examples/grafAnalysis_8/src/recording/grafRecorder.cpp|525|warning: comparison between signed and unsigned integer expressions|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/apps/examples/grafAnalysis_8/src/recording/grafRecorder.cpp||In member function ‘void grafRecorder::setStartPt(int)’:|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/apps/examples/grafAnalysis_8/src/recording/grafRecorder.cpp|575|warning: comparison between signed and unsigned integer expressions|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/apps/examples/grafAnalysis_8/src/recording/grafRecorder.cpp|579|warning: comparison between signed and unsigned integer expressions|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/apps/examples/grafAnalysis_8/src/recording/grafRecorder.cpp|578|warning: unused variable ‘timeChange’|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/apps/examples/grafAnalysis_8/src/recording/grafRecorder.cpp||In member function ‘void grafRecorder::setEndPt(int)’:|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/apps/examples/grafAnalysis_8/src/recording/grafRecorder.cpp|589|warning: comparison between signed and unsigned integer expressions|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/apps/examples/grafAnalysis_8/src/recording/grafRecorder.cpp|590|warning: comparison between signed and unsigned integer expressions|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/apps/examples/grafAnalysis_8/src/recording/grafRecorder.cpp||In member function ‘void grafRecorder::resetForEditing()’:|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/apps/examples/grafAnalysis_8/src/recording/grafRecorder.cpp|607|warning: comparison between signed and unsigned integer expressions|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/apps/examples/grafAnalysis_8/src/recording/pointRecorder.cpp||In member function ‘virtual void pointRecorder::draw()’:|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/apps/examples/grafAnalysis_8/src/recording/pointRecorder.cpp|30|warning: comparison between signed and unsigned integer expressions|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/apps/examples/grafAnalysis_8/src/recording/pointRecorder.cpp||In member function ‘virtual void pointRecorder::addPoint(ofPoint)’:|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/apps/examples/grafAnalysis_8/src/recording/pointRecorder.cpp|55|warning: comparison between signed and unsigned integer expressions|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/apps/examples/grafAnalysis_8/src/recording/pointRecorder.cpp||In member function ‘ofPoint pointRecorder::getPointForTime(float)’:|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/apps/examples/grafAnalysis_8/src/recording/pointRecorder.cpp|103|warning: comparison between signed and unsigned integer expressions|  
src/gui/guiButtonGroup.h||In member function ‘int guiButtonGroup::setOn(int)’:|  
src/gui/guiButtonGroup.h|19|warning: no return statement in function returning non-void|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/apps/examples/grafAnalysis_8/src/tracking/motionDifference.cpp|2|warning: Math.h: No such file or directory|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/apps/examples/grafAnalysis_8/src/tracking/motionDifference.cpp||In member function ‘void motionDifference::difference(unsigned char*)’:|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/apps/examples/grafAnalysis_8/src/tracking/motionDifference.cpp|35|warning: unused variable ‘totalBytes’|  
src/gui/guiButtonGroup.h||In member function ‘int guiButtonGroup::setOn(int)’:|  
src/gui/guiButtonGroup.h|19|warning: no return statement in function returning non-void|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/libs/openFrameworks/app/ofAppGlutWindow.cpp||In member function ‘virtual void ofAppGlutWindow::setupOpenGL(int, int, int)’:|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/libs/openFrameworks/app/ofAppGlutWindow.cpp|59|warning: deprecated conversion from string constant to ‘char*’|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/libs/openFrameworks/video/ofGstUtils.cpp|12|warning: libhal.h: No such file or directory|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/libs/openFrameworks/video/ofGstUtils.cpp|13|warning: dbus/dbus.h: No such file or directory|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/libs/openFrameworks/video/ofGstUtils.cpp||In function ‘void get_video_devices_from_hal(ofGstCamData&)’:|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/libs/openFrameworks/video/ofGstUtils.cpp|84|error: ‘DBusError’ was not declared in this scope|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/libs/openFrameworks/video/ofGstUtils.cpp|84|error: expected `;' before ‘error’|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/libs/openFrameworks/video/ofGstUtils.cpp|85|error: ‘LibHalContext’ was not declared in this scope|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/libs/openFrameworks/video/ofGstUtils.cpp|85|error: ‘hal_ctx’ was not declared in this scope|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/libs/openFrameworks/video/ofGstUtils.cpp|91|error: ‘error’ was not declared in this scope|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/libs/openFrameworks/video/ofGstUtils.cpp|91|error: ‘dbus_error_init’ was not declared in this scope|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/libs/openFrameworks/video/ofGstUtils.cpp|92|error: ‘libhal_ctx_new’ was not declared in this scope|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/libs/openFrameworks/video/ofGstUtils.cpp|96|error: ‘dbus_error_free’ was not declared in this scope|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/libs/openFrameworks/video/ofGstUtils.cpp|100|error: ‘DBUS_BUS_SYSTEM’ was not declared in this scope|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/libs/openFrameworks/video/ofGstUtils.cpp|100|error: ‘dbus_bus_get’ was not declared in this scope|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/libs/openFrameworks/video/ofGstUtils.cpp|100|error: ‘libhal_ctx_set_dbus_connection’ was not declared in this scope|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/libs/openFrameworks/video/ofGstUtils.cpp|103|error: ‘dbus_error_free’ was not declared in this scope|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/libs/openFrameworks/video/ofGstUtils.cpp|107|error: ‘libhal_ctx_init’ was not declared in this scope|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/libs/openFrameworks/video/ofGstUtils.cpp|109|error: ‘dbus_error_is_set’ was not declared in this scope|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/libs/openFrameworks/video/ofGstUtils.cpp|112|error: ‘dbus_error_free’ was not declared in this scope|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/libs/openFrameworks/video/ofGstUtils.cpp|119|error: ‘libhal_find_device_by_capability’ was not declared in this scope|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/libs/openFrameworks/video/ofGstUtils.cpp|121|error: ‘dbus_error_is_set’ was not declared in this scope|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/libs/openFrameworks/video/ofGstUtils.cpp|124|error: ‘dbus_error_free’ was not declared in this scope|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/libs/openFrameworks/video/ofGstUtils.cpp|143|error: ‘libhal_device_get_property_string’ was not declared in this scope|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/libs/openFrameworks/video/ofGstUtils.cpp|144|error: ‘dbus_error_is_set’ was not declared in this scope|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/libs/openFrameworks/video/ofGstUtils.cpp|147|error: ‘dbus_error_free’ was not declared in this scope|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/libs/openFrameworks/video/ofGstUtils.cpp|153|warning: missing sentinel in function call|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/libs/openFrameworks/video/ofGstUtils.cpp|154|error: ‘libhal_device_get_property_int’ was not declared in this scope|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/libs/openFrameworks/video/ofGstUtils.cpp|155|error: ‘dbus_error_is_set’ was not declared in this scope|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/libs/openFrameworks/video/ofGstUtils.cpp|157|error: ‘dbus_error_free’ was not declared in this scope|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/libs/openFrameworks/video/ofGstUtils.cpp|161|warning: missing sentinel in function call|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/libs/openFrameworks/video/ofGstUtils.cpp|163|error: ‘dbus_error_is_set’ was not declared in this scope|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/libs/openFrameworks/video/ofGstUtils.cpp|165|error: ‘dbus_error_free’ was not declared in this scope|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/libs/openFrameworks/video/ofGstUtils.cpp|168|error: ‘libhal_free_string’ was not declared in this scope|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/libs/openFrameworks/video/ofGstUtils.cpp|175|error: ‘dbus_error_is_set’ was not declared in this scope|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/libs/openFrameworks/video/ofGstUtils.cpp|178|error: ‘dbus_error_free’ was not declared in this scope|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/libs/openFrameworks/video/ofGstUtils.cpp|187|error: ‘libhal_free_string’ was not declared in this scope|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/libs/openFrameworks/video/ofGstUtils.cpp|194|error: ‘libhal_free_string’ was not declared in this scope|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/libs/openFrameworks/video/ofGstUtils.cpp|205|error: ‘libhal_free_string’ was not declared in this scope|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/libs/openFrameworks/video/ofGstUtils.cpp|211|warning: deprecated conversion from string constant to ‘char*’|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/libs/openFrameworks/video/ofGstUtils.cpp|225|error: ‘libhal_free_string’ was not declared in this scope|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/libs/openFrameworks/video/ofGstUtils.cpp|229|warning: deprecated conversion from string constant to ‘char*’|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/libs/openFrameworks/video/ofGstUtils.cpp|244|error: ‘libhal_free_string’ was not declared in this scope|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/libs/openFrameworks/video/ofGstUtils.cpp|247|error: ‘libhal_free_string_array’ was not declared in this scope|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/libs/openFrameworks/video/ofGstUtils.cpp||In function ‘void get_device_data(ofGstDevice&)’:|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/libs/openFrameworks/video/ofGstUtils.cpp|543|warning: missing sentinel in function call|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/libs/openFrameworks/video/ofGstUtils.cpp|545|warning: deprecated conversion from string constant to ‘char*’|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/libs/openFrameworks/video/ofGstUtils.cpp||In constructor ‘ofGstUtils::ofGstUtils()’:|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/libs/openFrameworks/video/ofGstUtils.cpp|612|warning: deprecated conversion from string constant to ‘gchar*’|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/libs/openFrameworks/video/ofGstUtils.cpp||In member function ‘bool ofGstUtils::loadMovie(std::string)’:|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/libs/openFrameworks/video/ofGstUtils.cpp|644|warning: missing sentinel in function call|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/libs/openFrameworks/video/ofGstUtils.cpp|653|warning: missing sentinel in function call|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/libs/openFrameworks/video/ofGstUtils.cpp|657|warning: missing sentinel in function call|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/libs/openFrameworks/video/ofGstUtils.cpp||In member function ‘bool ofGstUtils::startPipeline()’:|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/libs/openFrameworks/video/ofGstUtils.cpp|819|warning: missing sentinel in function call|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/libs/openFrameworks/video/ofGstUtils.cpp||In member function ‘void ofGstUtils::setVolume(int)’:|  
/home/grl/Desktop/of_preRelease_v0.06_linux_cb_FAT-5/libs/openFrameworks/video/ofGstUtils.cpp|1019|warning: missing sentinel in function call|  
||=== Build finished: 35 errors, 51 warnings ===|  
  

the best way to do it is just the oposite : ) instead of copying ofGst contents to your original oF copy your source code to the movieGrabber example in ofGst. if you have more files than testApp.cpp .h and main.cpp add them to the project with project > add files.

Thanks! works here on asus eee 1000he w/ builtin webcam and ubuntu 9.04

fi5e: maybe you’ve worked around this by now but I didn’t paste my source into the gstreamer example I added the code the same way you did, the step you may be missing is right-click on the project and choose Properties … then on the Libraries tab add hal and dbus-1 to the left hand side by choosing them on the right hand side.

ok tried this GStreamer grabber, since my AverMedia EZMaker Gold USB doesn’t work.

got this error:

  
  
Probing devices with HAL...  
Found device 07ca:c038, getting capabilities...  
Skipping vbi device: /dev/vbi0  
Found device 07ca:c038, getting capabilities...  
Detected v4l2 device: AVerMedia C038 USB  
Driver: AVerTV Volar HX, version: 9  
Capabilities: 0x04010001  
  
libv4l2: error getting pixformat: Invalid argument  
Segmentation fault  

i use the proprietary driver from http://www.avermedia.com/avertv/Product-…-b=APDriver on a ubuntu 9.10 32bit

does it work with any other programs like cheese?

can you try with

  
ofSetLogLevel(OF_LOG_VERBOSE);  

in setup and posting the output

i forgot to try this but when i add this line, the outpu is the same.
cheese doesn’t work, ucview works partly. i have to start it and have to change from tuner to composite in camera-settings in ucview. i get a flickering picture. think the “AverMedia EZMaker DVD Gold USB” doesn’t work under linuy correctly.

Hello,
Just wonder did anyone managed to compile opencvExample? I get those errors:

Thanks.

  
  
||=== opencvExample, Debug ===|  
obj/Debug/libs/openFrameworks/video/ofVideoGrabber.o||In function `ofVideoGrabber::getPixels()':|  
of/of_preRelease_v0.06_linux_cb_FAT_gst/libs/openFrameworks/video/ofVideoGrabber.cpp|269|undefined reference to `ofGstUtils::getPixels()'|  
obj/Debug/libs/openFrameworks/video/ofVideoGrabber.o||In function `ofVideoGrabber::initGrabber(int, int, bool)':|  
of/of_preRelease_v0.06_linux_cb_FAT_gst/libs/openFrameworks/video/ofVideoGrabber.cpp|1114|undefined reference to `ofGstUtils::initGrabber(int, int)'|  
of/of_preRelease_v0.06_linux_cb_FAT_gst/libs/openFrameworks/video/ofVideoGrabber.cpp|1125|undefined reference to `ofGstUtils::getPixels()'|  
obj/Debug/libs/openFrameworks/video/ofVideoGrabber.o||In function `ofVideoGrabber::close()':|  
of/of_preRelease_v0.06_linux_cb_FAT_gst/libs/openFrameworks/video/ofVideoGrabber.cpp|528|undefined reference to `ofGstUtils::close()'|  
obj/Debug/libs/openFrameworks/video/ofVideoGrabber.o||In function `ofVideoGrabber::grabFrame()':|  
of/of_preRelease_v0.06_linux_cb_FAT_gst/libs/openFrameworks/video/ofVideoGrabber.cpp|438|undefined reference to `ofGstUtils::update()'|  
of/of_preRelease_v0.06_linux_cb_FAT_gst/libs/openFrameworks/video/ofVideoGrabber.cpp|439|undefined reference to `ofGstUtils::isFrameNew()'|  
of/of_preRelease_v0.06_linux_cb_FAT_gst/libs/openFrameworks/video/ofVideoGrabber.cpp|442|undefined reference to `ofGstUtils::getPixels()'|  
obj/Debug/libs/openFrameworks/video/ofVideoGrabber.o||In function `ofVideoGrabber::listDevices()':|  
of/of_preRelease_v0.06_linux_cb_FAT_gst/libs/openFrameworks/video/ofVideoGrabber.cpp|210|undefined reference to `ofGstUtils::listDevices()'|  
obj/Debug/libs/openFrameworks/video/ofVideoGrabber.o||In function `~ofVideoGrabber':|  
of/of_preRelease_v0.06_linux_cb_FAT_gst/libs/openFrameworks/video/ofVideoGrabber.cpp|87|undefined reference to `ofGstUtils::~ofGstUtils()'|  
of/of_preRelease_v0.06_linux_cb_FAT_gst/libs/openFrameworks/video/ofVideoGrabber.cpp|87|undefined reference to `ofGstUtils::~ofGstUtils()'|  
of/of_preRelease_v0.06_linux_cb_FAT_gst/libs/openFrameworks/video/ofVideoGrabber.cpp|87|undefined reference to `ofGstUtils::~ofGstUtils()'|  
of/of_preRelease_v0.06_linux_cb_FAT_gst/libs/openFrameworks/video/ofVideoGrabber.cpp|87|undefined reference to `ofGstUtils::~ofGstUtils()'|  
of/of_preRelease_v0.06_linux_cb_FAT_gst/libs/openFrameworks/video/ofVideoGrabber.cpp|87|undefined reference to `ofGstUtils::~ofGstUtils()'|  
obj/Debug/libs/openFrameworks/video/ofVideoGrabber.o:of/of_preRelease_v0.06_linux_cb_FAT_gst/libs/openFrameworks/video/ofVideoGrabber.cpp|87|more undefined references to `ofGstUtils::~ofGstUtils()' follow|  
obj/Debug/libs/openFrameworks/video/ofVideoGrabber.o||In function `ofVideoGrabber':|  
of/of_preRelease_v0.06_linux_cb_FAT_gst/libs/openFrameworks/video/ofVideoGrabber.cpp|10|undefined reference to `ofGstUtils::ofGstUtils()'|  
of/of_preRelease_v0.06_linux_cb_FAT_gst/libs/openFrameworks/video/ofVideoGrabber.cpp|10|undefined reference to `ofGstUtils::ofGstUtils()'|  
obj/Debug/libs/openFrameworks/video/ofVideoPlayer.o||In function `ofVideoPlayer::getWidth()':|  
of/of_preRelease_v0.06_linux_cb_FAT_gst/libs/openFrameworks/video/ofVideoPlayer.cpp|976|undefined reference to `ofGstUtils::getWidth()'|  
obj/Debug/libs/openFrameworks/video/ofVideoPlayer.o||In function `ofVideoPlayer::getHeight()':|  
of/of_preRelease_v0.06_linux_cb_FAT_gst/libs/openFrameworks/video/ofVideoPlayer.cpp|961|undefined reference to `ofGstUtils::getHeight()'|  
obj/Debug/libs/openFrameworks/video/ofVideoPlayer.o||In function `ofVideoPlayer::getTotalNumFrames()':|  
of/of_preRelease_v0.06_linux_cb_FAT_gst/libs/openFrameworks/video/ofVideoPlayer.cpp|945|undefined reference to `ofGstUtils::getTotalNumFrames()'|  
obj/Debug/libs/openFrameworks/video/ofVideoPlayer.o||In function `ofVideoPlayer::setPaused(bool)':|  
of/of_preRelease_v0.06_linux_cb_FAT_gst/libs/openFrameworks/video/ofVideoPlayer.cpp|893|undefined reference to `ofGstUtils::setPaused(bool)'|  
obj/Debug/libs/openFrameworks/video/ofVideoPlayer.o||In function `ofVideoPlayer::stop()':|  
of/of_preRelease_v0.06_linux_cb_FAT_gst/libs/openFrameworks/video/ofVideoPlayer.cpp|549|undefined reference to `ofGstUtils::setPaused(bool)'|  
obj/Debug/libs/openFrameworks/video/ofVideoPlayer.o||In function `ofVideoPlayer::setSpeed(float)':|  
of/of_preRelease_v0.06_linux_cb_FAT_gst/libs/openFrameworks/video/ofVideoPlayer.cpp|860|undefined reference to `ofGstUtils::setSpeed(float)'|  
obj/Debug/libs/openFrameworks/video/ofVideoPlayer.o||In function `ofVideoPlayer::previousFrame()':|  
of/of_preRelease_v0.06_linux_cb_FAT_gst/libs/openFrameworks/video/ofVideoPlayer.cpp|834|undefined reference to `ofGstUtils::previousFrame()'|  
obj/Debug/libs/openFrameworks/video/ofVideoPlayer.o||In function `ofVideoPlayer::nextFrame()':|  
of/of_preRelease_v0.06_linux_cb_FAT_gst/libs/openFrameworks/video/ofVideoPlayer.cpp|819|undefined reference to `ofGstUtils::nextFrame()'|  
obj/Debug/libs/openFrameworks/video/ofVideoPlayer.o||In function `ofVideoPlayer::firstFrame()':|  
of/of_preRelease_v0.06_linux_cb_FAT_gst/libs/openFrameworks/video/ofVideoPlayer.cpp|803|undefined reference to `ofGstUtils::firstFrame()'|  
obj/Debug/libs/openFrameworks/video/ofVideoPlayer.o||In function `ofVideoPlayer::getIsMovieDone()':|  
of/of_preRelease_v0.06_linux_cb_FAT_gst/libs/openFrameworks/video/ofVideoPlayer.cpp|787|undefined reference to `ofGstUtils::getIsMovieDone()'|  
obj/Debug/libs/openFrameworks/video/ofVideoPlayer.o||In function `ofVideoPlayer::getCurrentFrame()':|  
of/of_preRelease_v0.06_linux_cb_FAT_gst/libs/openFrameworks/video/ofVideoPlayer.cpp|767|undefined reference to `ofGstUtils::getCurrentFrame()'|  
obj/Debug/libs/openFrameworks/video/ofVideoPlayer.o||In function `ofVideoPlayer::getPosition()':|  
of/of_preRelease_v0.06_linux_cb_FAT_gst/libs/openFrameworks/video/ofVideoPlayer.cpp|735|undefined reference to `ofGstUtils::getPosition()'|  
obj/Debug/libs/openFrameworks/video/ofVideoPlayer.o||In function `ofVideoPlayer::getDuration()':|  
of/of_preRelease_v0.06_linux_cb_FAT_gst/libs/openFrameworks/video/ofVideoPlayer.cpp|711|undefined reference to `ofGstUtils::getDuration()'|  
obj/Debug/libs/openFrameworks/video/ofVideoPlayer.o||In function `ofVideoPlayer::setFrame(int)':|  
of/of_preRelease_v0.06_linux_cb_FAT_gst/libs/openFrameworks/video/ofVideoPlayer.cpp|688|undefined reference to `ofGstUtils::setFrame(int)'|  
obj/Debug/libs/openFrameworks/video/ofVideoPlayer.o||In function `ofVideoPlayer::setPosition(float)':|  
of/of_preRelease_v0.06_linux_cb_FAT_gst/libs/openFrameworks/video/ofVideoPlayer.cpp|643|undefined reference to `ofGstUtils::setPosition(float)'|  
obj/Debug/libs/openFrameworks/video/ofVideoPlayer.o||In function `ofVideoPlayer::setLoopState(int)':|  
of/of_preRelease_v0.06_linux_cb_FAT_gst/libs/openFrameworks/video/ofVideoPlayer.cpp|615|undefined reference to `ofGstUtils::setLoopState(int)'|  
obj/Debug/libs/openFrameworks/video/ofVideoPlayer.o||In function `ofVideoPlayer::setVolume(int)':|  
of/of_preRelease_v0.06_linux_cb_FAT_gst/libs/openFrameworks/video/ofVideoPlayer.cpp|568|undefined reference to `ofGstUtils::setVolume(int)'|  
obj/Debug/libs/openFrameworks/video/ofVideoPlayer.o||In function `ofVideoPlayer::play()':|  
of/of_preRelease_v0.06_linux_cb_FAT_gst/libs/openFrameworks/video/ofVideoPlayer.cpp|525|undefined reference to `ofGstUtils::play()'|  
obj/Debug/libs/openFrameworks/video/ofVideoPlayer.o||In function `ofVideoPlayer::getPixels()':|  
of/of_preRelease_v0.06_linux_cb_FAT_gst/libs/openFrameworks/video/ofVideoPlayer.cpp|161|undefined reference to `ofGstUtils::getPixels()'|  
obj/Debug/libs/openFrameworks/video/ofVideoPlayer.o||In function `ofVideoPlayer::loadMovie(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)':|  
of/of_preRelease_v0.06_linux_cb_FAT_gst/libs/openFrameworks/video/ofVideoPlayer.cpp|438|undefined reference to `ofGstUtils::loadMovie(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)'|  
of/of_preRelease_v0.06_linux_cb_FAT_gst/libs/openFrameworks/video/ofVideoPlayer.cpp|440|undefined reference to `ofGstUtils::getHeight()'|  
of/of_preRelease_v0.06_linux_cb_FAT_gst/libs/openFrameworks/video/ofVideoPlayer.cpp|440|undefined reference to `ofGstUtils::getWidth()'|  
of/of_preRelease_v0.06_linux_cb_FAT_gst/libs/openFrameworks/video/ofVideoPlayer.cpp|441|undefined reference to `ofGstUtils::getHeight()'|  
of/of_preRelease_v0.06_linux_cb_FAT_gst/libs/openFrameworks/video/ofVideoPlayer.cpp|441|undefined reference to `ofGstUtils::getWidth()'|  
of/of_preRelease_v0.06_linux_cb_FAT_gst/libs/openFrameworks/video/ofVideoPlayer.cpp|441|undefined reference to `ofGstUtils::getPixels()'|  
obj/Debug/libs/openFrameworks/video/ofVideoPlayer.o||In function `ofVideoPlayer::closeMovie()':|  
of/of_preRelease_v0.06_linux_cb_FAT_gst/libs/openFrameworks/video/ofVideoPlayer.cpp|255|undefined reference to `ofGstUtils::close()'|  
obj/Debug/libs/openFrameworks/video/ofVideoPlayer.o||In function `~ofVideoPlayer':|  
of/of_preRelease_v0.06_linux_cb_FAT_gst/libs/openFrameworks/video/ofVideoPlayer.cpp|293|undefined reference to `ofGstUtils::~ofGstUtils()'|  
of/of_preRelease_v0.06_linux_cb_FAT_gst/libs/openFrameworks/video/ofVideoPlayer.cpp|293|undefined reference to `ofGstUtils::~ofGstUtils()'|  
of/of_preRelease_v0.06_linux_cb_FAT_gst/libs/openFrameworks/video/ofVideoPlayer.cpp|293|undefined reference to `ofGstUtils::~ofGstUtils()'|  
of/of_preRelease_v0.06_linux_cb_FAT_gst/libs/openFrameworks/video/ofVideoPlayer.cpp|293|undefined reference to `ofGstUtils::~ofGstUtils()'|  
of/of_preRelease_v0.06_linux_cb_FAT_gst/libs/openFrameworks/video/ofVideoPlayer.cpp|293|undefined reference to `ofGstUtils::~ofGstUtils()'|  
obj/Debug/libs/openFrameworks/video/ofVideoPlayer.o:of/of_preRelease_v0.06_linux_cb_FAT_gst/libs/openFrameworks/video/ofVideoPlayer.cpp|293|more undefined references to `ofGstUtils::~ofGstUtils()' follow|  
obj/Debug/libs/openFrameworks/video/ofVideoPlayer.o||In function `ofVideoPlayer::idleMovie()':|  
of/of_preRelease_v0.06_linux_cb_FAT_gst/libs/openFrameworks/video/ofVideoPlayer.cpp|205|undefined reference to `ofGstUtils::update()'|  
of/of_preRelease_v0.06_linux_cb_FAT_gst/libs/openFrameworks/video/ofVideoPlayer.cpp|206|undefined reference to `ofGstUtils::isFrameNew()'|  
||More errors follow but not being shown.|  
||Edit the max errors limit in compiler options...|  
||=== Build finished: 50 errors, 0 warnings ===|  
  
  
  

hi

try with the package here:

http://forum.openframeworks.cc/t/karmic-package/2791/0

or add to your project the files ofGstUtils.h and ofGstUtils.cpp

Thank you.

Hi,

I’m trying to do the same thing. I got the oF006-Gstreamer videoGrabber example to work fine and also the openCv with the fingers.mov now I want to combine the projects so that I can actually get video capture to work with openCV on my Linux 9.04 machine.

I’m trying to add the needed libraries with add files but I’ve got the feeling I’m missing something - i’m a total code blocks noob

see build log below

:?

-------------- Build: Debug in movieGrabberExample ---------------

Compiling: src/main.cpp
In file included from /home/simonkatan/Programs/oF006-Gstreamer/apps/examples/movieGrabberExample/src/main.cpp:2:
/home/simonkatan/Programs/oF006-Gstreamer/apps/examples/movieGrabberExample/src/testApp.h:6:23: error: ofxOpenCv.h: No such file or directory
In file included from /home/simonkatan/Programs/oF006-Gstreamer/apps/examples/movieGrabberExample/src/main.cpp:2:
/home/simonkatan/Programs/oF006-Gstreamer/apps/examples/movieGrabberExample/src/testApp.h:33: error: ‘ofxCvColorImage’ does not name a type
/home/simonkatan/Programs/oF006-Gstreamer/apps/examples/movieGrabberExample/src/testApp.h:35: error: ‘ofxCvGrayscaleImage’ does not name a type
/home/simonkatan/Programs/oF006-Gstreamer/apps/examples/movieGrabberExample/src/testApp.h:36: error: ‘ofxCvGrayscaleImage’ does not name a type
/home/simonkatan/Programs/oF006-Gstreamer/apps/examples/movieGrabberExample/src/testApp.h:37: error: ‘ofxCvGrayscaleImage’ does not name a type
/home/simonkatan/Programs/oF006-Gstreamer/apps/examples/movieGrabberExample/src/testApp.h:39: error: ‘ofxCvContourFinder’ does not name a type
Process terminated with status 1 (0 minutes, 0 seconds)
6 errors, 0 warnings

Hi,

I have integrated the gstreamer video grabber into my of fork at http://github.com/dopuskh3/openFrameworks. This fork integrates patch for the lastest RtAudio API, CMake build files (linux shared library and pkg-config file to run pkg-config openFrameworks --libs --cflags and can build openFrameworks.framework under OS X to build openframeworks as a standard framework).

The cmake file provided offers 3 boolean configuration parameters under linux (OPENFRAMEWORKS_USE_V4L_VIDCAP, OPENFRAMEWORKS_USE_UNICAP_VIDCAP, OPENFRAMEWORKS_USE_GSTREAMER_VIDCAP) that controls which API openframeworks will use in its shared library. Works on karmic but for a reason I can’t find linking a sample application with highgui cause application to crash (segfault in pthread_mutex_lock).

Bests,
F.

thanks for this update. It works as well with the built-in isight on a macbookpro under karmic.

I use Ubuntu 9.10 64bit.
By using of_preRelease_v0061_linux64_FAT and gstreamer + PS3-Eye, I have no problem with frame-rate dropping.
When using unicap, I couldn’t get high frame-rate as when I test with mplayer and guvcview.

BTW., when I use 2 PS3-eye at 320x240_30fps, I get more latency than when I use 1 camera at at 640x480_60fps. But I guess it’s because PS3-eye driver I use.

Hi,

I use Ubuntu 9.10 32bit + of_preRelease_v0061_linux_FAT + PS3-Eye.
With Unicap + 320x240 + 30/60 FPS the framerate is as I expected.
With Unicap + 640x480 + 30/60 FPS the framerate is exactly the half of 30/60 ?!?!
With GStreamer + 320x240 + 30/60 FPS all is fine.
With Gstreamer + 640x480 + 30 FPS all is fine.
BUT with Gstreamer + 640x480 + 60 FPS the image flickered ?!?!

Has somebody the same problems?
I tried two different driver for the PS3-Eye, but ist always the same.

,
Seven

what driver are you using? i think there’s a problem with the driver itself. i’ve downloaded a version of the driver that allows for selecting framerate among other parameters and i’m also getting some flickering at 60fps but even in other applications.

try with guvcview:

sudo apt-get install guvcview (of course :wink:

i’m using this driver:

http://bear24rw.blogspot.com/2009/11/ps-…-patch.html

it seems it’s in the v4l trunk now, but even with the last fixes i’m getting the flickering

Yeah, I’m also using the bear24rw-driver and guvcview!

I tried the following from a blog comment:

jasp0r said…

Indeed it does. I finally managed to compile latest v4l (which gspca is part of) tree on Ubuntu 9.10.

This is how I did that:
1 - cd
2 - wget http://linuxtv.org/hg/v4l-dvb/archive/tip.tar.bz2
3 - tar xjf tip.tar.bz2
4 - cd v4l…
5 - echo > ./linux/drivers/media/dvb/firewire/Makefile
6 - make
7 - make install (as root or use sudo)

This fixes corrupted frames and even the top 20 lines flickering (although I seem to be the only one experiencing them)!

It seems that there is no more flickering, but now I cannot set the videomode anymore. I think it overwrites the bear24rw-driver.
In guvcview I can change the framerate and the resolution. But it doesn’t save the settings. So in OF it is always 640x480 with 60 FPS and no chance to change it.

Has someone a better solution?

,Seven