Closed magdesign closed 4 years ago
Thomas Lengeling has it working for Linux and OSX (Issue 3). Maybe you could contact him. You could enquire on the NDI forum if there are any developments specifically for the Raspberry Pi :
http://forums.newtek.com/forumdisplay.php?360-NDI-(Network-Device-Interface)
Thanks for the hint. I wrote him. The NDI support told me they experimented with RPi but its not powerful enough for 1920x 1080@60fps. Also asked http://ndi.orfast.com/ , they said its not working right now. So it seems that I need to somehow compile your ofxNDI for a working solution. I dont care if it is not 60fps, as long as it works...
If Thomas has it working for Linux there is a good chance you can get it working. I will not be updating for NDI Version 3 for a little while yet. Meanwhile it should build OK. Leave out the resource files and the ofxNDIdialog files, and do not use async sending until I can investigate the problem.
hi @magdesign https://github.com/ThomasLengeling/ofxNDI this fork should be working on Mac, soon I will post the Linux version, although I don't know if, with the changes I made it still works on Windows, I had to omit a couple of functions.
Good news Thomas.
I had a brief look at your repository and I think the changes should work on Windows OK. I am thinking about a solution for "_rotl". Maybe this (https://stackoverflow.com/questions/776508/best-practices-for-circular-shift-rotate-operations-in-c) could be a clue.
I am looking at NDI Version 3 now . Meanwhile the version 3 dlls should be back compatible with version 2 code. I will not commit any code for a while yet, but will incorporate your changes.
The Version 3 update will exclude "ofxNDIdialog.h", "ofxNDIdialog.cpp", "resource.h" and "resource.rc" and the receiver example will be cleaned up.
yes!, the big difference is the instrin.h include file and omitted specific windows variable declaration, and the code should work on all platforms.
For linux I had to install a library for the sse.h or the instrin, I dont remember exactly.
Thanks for the work!, if you make some changes I am happy to test it out on Linux or Mac and make the appropriate changes.
Looking forward for the linux version! Still dont know how to compile openframeworks stuff without provided make files :(
Just figured out that we have to wait to get a version running on RPi since the codec is not Arm compatible yet....
There is some discussion here -
http://forums.newtek.com/showthread.php?151197-NDI-for-arm-devices
It seems that you can send but not receive.
I started converting to Version 3 and it isn't as straightforward as I had hoped. Meanwhile the existing code should still work OK.
After some delay I have made changes necessary for Version 3. There are some changes to argument types to meet with Version 3 rather than casting from those for Version 2. Also RGBA format has a bug which is fixed with a patch but does not appear to be in the release version yet. Meanwhile BGRA is just as fast. The receiver code is commented to explain it.
Thomas - I have made additional changes as you have suggested, including a _rotl replacement which seems to work OK. It would be good if this was tested for OSX before I commit the changes. When you have time, could you email me and I will send the code.
Thank you very much for making NDI available on OpenFrameworks!
I revive this thread, trying to compile example-sender on the Raspberry Pi 3. The NDI library seems to link as expected, but the compilation fails:
`/home/pi/openFrameworks/addons/ofxNDI/src/ofxNDIreceive.h:67:35: fatal error: emmintrin.h: Aucun fichier ou dossier de ce type
`from /home/pi/openFrameworks/apps/myApps/example-sender/src/main.cpp:2: /home/pi/openFrameworks/addons/ofxNDI/src/ofxNDIsend.h:59:35: fatal error: emmintrin.h: Aucun fichier ou dossier de ce type
`In file included from /home/pi/openFrameworks/addons/ofxNDI/src/ofxNDIshaders.cpp:32:0: /home/pi/openFrameworks/addons/ofxNDI/src/ofxNDIshaders.h:42:21: fatal error: windows.h: Aucun fichier ou dossier de ce type
Is there a package to install on the RPi that would solve these dependancies? I read that SSE cannot work on the Raspberrry Pi, is there a workaround?
"#include
If SSE is still a problem, you could delete memcpy_sse2 and change CopyImage to exclude it. I will re-visit this project when NDI 4 becomes available.
Thank you very much for your answer, excluding these lines resolved all errors related to SSE.
After that, I had a lot of compilation errors related to variables and functions which seem to be windows-specific. I finally managed to run the sendVideo example with thomasgeissel's fork of ofxNDI.
Due to my limited skills in programming, I struggled to link the external NDI library.
I copied the arm NDI libraries from NDI's website in a /libs folder at the root of the project and in /bin, and the library's headers in a /include folder at the root of the project.
In config.make, I added the following lines:
PROJECT_LDFLAGS += ./libs/libndi.so
PROJECT_CFLAGS += -I./include
I'm sure it's not the most elegant way, but it worked.
Some changes have been made following the recent work with the fork by Hugo Aboud for Arch Linux x64 compatibility. I can't say if they will work but it might be a start.
Any change to run this on Linux, to be more specific on a Raspberry Pi ?
Would be amazing to build some simple NDI receiving boxes based on openframeworks.