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…
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.
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.
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 ===|
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
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).
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.
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.
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.
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.