Git Product home page Git Product logo

Comments (14)

ThomasLengeling avatar ThomasLengeling commented on September 4, 2024 1

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.

from ofxndi.

leadedge avatar leadedge commented on September 4, 2024

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)

from ofxndi.

magdesign avatar magdesign commented on September 4, 2024

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...

from ofxndi.

leadedge avatar leadedge commented on September 4, 2024

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.

from ofxndi.

leadedge avatar leadedge commented on September 4, 2024

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.

from ofxndi.

ThomasLengeling avatar ThomasLengeling commented on September 4, 2024

yes!, the big difference is the instrin.h include file and omitted specific windows variable declaration, and the code should work on all platforms.

#include <x86intrin.h>

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.

from ofxndi.

magdesign avatar magdesign commented on September 4, 2024

Looking forward for the linux version!
Still dont know how to compile openframeworks stuff without provided make files :(

from ofxndi.

magdesign avatar magdesign commented on September 4, 2024

Just figured out that we have to wait to get a version running on RPi since the codec is not Arm compatible yet....

from ofxndi.

leadedge avatar leadedge commented on September 4, 2024

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.

from ofxndi.

leadedge avatar leadedge commented on September 4, 2024

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.

from ofxndi.

antacode avatar antacode commented on September 4, 2024

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 #include <emmintrin.h> // for SSE2

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 #include <emmintrin.h> // for SSE2

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 #include <windows.h>

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?

from ofxndi.

leadedge avatar leadedge commented on September 4, 2024

"#include <emmintrin.h>" and "#include <windows.h>" are copy/paste errors after the most recent update. You can exclude these lines and it will still compile, so try that first.

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.

from ofxndi.

antacode avatar antacode commented on September 4, 2024

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.

from ofxndi.

leadedge avatar leadedge commented on September 4, 2024

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.

from ofxndi.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.