Open DrNI opened 4 years ago
Hi, I'd fix the conversion, but linux is not supported by us since imaginevision can't provide the latest linux libssp library.
and if you want to compile this plugin, please compile it directly, don't compile it with obs-studio together.
ImageVision have libssp here on Github, stated it supports Linux. Is there a more recent version than the one on GitHub?
The linux version is different than windows and macos version. In order to compatible with GPLv2 License that obs-studio use, libssp can only be dynamically loaded. I told them to add more api to achieve that. I don't think the linux version have these private api. https://github.com/summershrimp/obs-ssp/blob/e2b5908f6e17d4296d2a49b28b11328615305412/src/obs-ssp.cpp#L49 https://github.com/summershrimp/obs-ssp/blob/e2b5908f6e17d4296d2a49b28b11328615305412/src/obs-ssp.cpp#L55
Seems like they didn't put a license to it, otherwise it would be safe to fork libssp.
I think Z Cam should really get Linux support going. They're apparently also running Linux on the cameras. And with the remote control via HTTP, they sort of target towards the nerd market much more than any other manufacturer.
But anyways, I won't switch to Windows (which I quit using in 1998), so I'll try to get obs-ssp running. I currently use the VLC media source for stream decoding, but I',m not too happy with it. E.g., it has a fixed buffer of at least 100msec and I need to add 400msec delay to my V4L2 sources to be more or less in sync.
libssp is closed source freeware library, you cannot modify that. PR for obs-ssp project is welcomed, I'd ask them to provide newest linux libssp ASAP.
I asked them in the E2C Facebook group about it. My post got deleted. The group is moderated now. Oh well. Seems like they don't like Linux users to buy their cameras.
hmm... Maybe it's a little complicated to build a linux one for them? I don't know..
As for we change the ssp connection method, we may support Linux sooner. See #71
In file included from /home/no/Documents/obs/obs-studio/plugins/obs-ssp/src/obs-ssp-source.cpp:39:0: /home/no/Documents/obs/obs-studio/plugins/obs-ssp/lib/ssp/include/imf/threadloop.h: In constructor ‘imf::ThreadLoop::ThreadLoop(const PreLoopCallback&, const LoopCreater&)’: /home/no/Documents/obs/obs-studio/plugins/obs-ssp/lib/ssp/include/imf/threadloop.h:70:21: warning: ‘imf::ThreadLoop::create_loop’ will be initialized after [-Wreorder] LoopCreater create_loop; ^
~~/home/no/Documents/obs/obs-studio/plugins/obs-ssp/lib/ssp/include/imf/threadloop.h:69:22: warning: ‘imf::ILoopclass* imf::ThreadLoop::loop’ [-Wreorder] ILoopclass* loop; ^~~~~ /home/no/Documents/obs/obs-studio/plugins/obs-ssp/lib/ssp/include/imf/threadloop.h:18:18: warning: when initialized here [-Wreorder] explicit ThreadLoop(const PreLoopCallback &pre = PreLoopCallback(), const LoopCreater &loop = LoopCreater()) ^~~~~~ /home/no/Documents/obs/obs-studio/plugins/obs-ssp/lib/ssp/include/imf/threadloop.h:69:22: warning: ‘imf::ThreadLoop::loop_’ will be initialized after [-Wreorder] ILoopclass* loop; ^~~~~ /home/no/Documents/obs/obs-studio/plugins/obs-ssp/lib/ssp/include/imf/threadloop.h:67:14: warning: ‘bool imf::ThreadLoop::started’ [-Wreorder] bool started; ^~~~ /home/no/Documents/obs/obs-studio/plugins/obs-ssp/lib/ssp/include/imf/threadloop.h:18:18: warning: when initialized here [-Wreorder] explicit ThreadLoop(const PreLoopCallback &pre = PreLoopCallback(), const LoopCreater &loop = LoopCreater()) ^~~~~~ /home/no/Documents/obs/obs-studio/plugins/obs-ssp/src/obs-ssp-source.cpp: In function ‘void ssp_on_video_data(imf::SspH264Data, ssp_connection)’: /home/no/Documents/obs/obs-studio/plugins/obs-ssp/src/obs-ssp-source.cpp:165:79: error: invalid conversion from ‘int64_t {aka long int}’ to ‘long long int’ [-fpermissive] bool success = ffmpeg_decode_video(&s->vdecoder, video->data, video->len, &ts, ^~~ In file included from /home/no/Documents/obs/obs-studio/plugins/obs-ssp/src/obs-ssp-source.cpp:45:0: /home/no/Documents/obs/obs-studio/plugins/obs-ssp/src/ffmpeg-decode.h:59:13: note: initializing argument 4 of ‘bool ffmpeg_decode_video(ffmpeg_decode, uint8_t, size_t, long long int, video_range_type, obs_source_frame2, bool)’ extern bool ffmpeg_decode_video(struct ffmpeg_decode decode, uint8_t data, ^~~~~~~ /home/no/Documents/obs/obs-studio/plugins/obs-ssp/src/obs-ssp-source.cpp: In function ‘void ssp_on_exception(int, const char, ssp_connection)’: /home/no/Documents/obs/obs-studio/plugins/obs-ssp/src/obs-ssp-source.cpp:258:81: warning: unused parameter ‘s’ [-Wunused-parameter] static void ssp_on_exception(int code, const char description, ssp_connection s) { ^ /home/no/Documents/obs/obs-studio/plugins/obs-ssp/src/obs-ssp-source.cpp: In function ‘bool custom_ip_modify_callback(void, obs_properties_t, obs_property_t, obs_data_t)’: /home/no/Documents/obs/obs-studio/plugins/obs-ssp/src/obs-ssp-source.cpp:401:69: warning: unused parameter ‘props’ [-Wunused-parameter] static bool custom_ip_modify_callback(void data, obs_properties_t props, ^~~~~ /home/no/Documents/obs/obs-studio/plugins/obs-ssp/src/obs-ssp-source.cpp:402:23: warning: unused parameter ‘property’ [-Wunused-parameter] obs_property_t property, ^~~~ /home/no/Documents/obs/obs-studio/plugins/obs-ssp/src/obs-ssp-source.cpp: In function ‘bool resolution_modify_callback(void, obs_properties_t, obs_property_t, obs_data_t)’: /home/no/Documents/obs/obs-studio/plugins/obs-ssp/src/obs-ssp-source.cpp:429:55: warning: unused parameter ‘property’ [-Wunused-parameter] obs_property_t property, ^~~~ /home/no/Documents/obs/obs-studio/plugins/obs-ssp/src/obs-ssp-source.cpp: In function ‘bool check_ip_callback(obs_properties_t, obs_property_t, void)’: /home/no/Documents/obs/obs-studio/plugins/obs-ssp/src/obs-ssp-source.cpp:452:49: warning: unused parameter ‘props’ [-Wunused-parameter] static bool check_ip_callback(obs_properties_t props, ^~~~~ /home/no/Documents/obs/obs-studio/plugins/obs-ssp/src/obs-ssp-source.cpp:453:47: warning: unused parameter ‘property’ [-Wunused-parameter] obs_property_t property, void data){ ^~~~ /home/no/Documents/obs/obs-studio/plugins/obs-ssp/src/obs-ssp-source.cpp: In function ‘bool no_check_modified(void, obs_properties_t, obs_property_t, obs_data_t)’: /home/no/Documents/obs/obs-studio/plugins/obs-ssp/src/obs-ssp-source.cpp:460:61: warning: unused parameter ‘props’ [-Wunused-parameter] static bool no_check_modified(void data, obs_properties_t props, ^~~~~ /home/no/Documents/obs/obs-studio/plugins/obs-ssp/src/obs-ssp-source.cpp:461:47: warning: unused parameter ‘property’ [-Wunused-parameter] obs_property_t property, ^~~~ /home/no/Documents/obs/obs-studio/plugins/obs-ssp/src/obs-ssp-source.cpp:462:43: warning: unused parameter ‘settings’ [-Wunused-parameter] obs_data_t settings){ ^~~~ /home/no/Documents/obs/obs-studio/plugins/obs-ssp/src/obs-ssp-source.cpp: In function ‘obs_properties_t ssp_source_getproperties(void)’: /home/no/Documents/obs/obs-studio/plugins/obs-ssp/src/obs-ssp-source.cpp:471:7: warning: unused variable ‘s’ [-Wunused-variable] auto s = (struct ssp_source)data; ^ /home/no/Documents/obs/obs-studio/plugins/obs-ssp/src/obs-ssp-source.cpp: In function ‘void ssp_source_activated(void)’: /home/no/Documents/obs/obs-studio/plugins/obs-ssp/src/obs-ssp-source.cpp:665:33: warning: unused parameter ‘data’ [-Wunused-parameter] void ssp_source_activated(void data) ^~~~ /home/no/Documents/obs/obs-studio/plugins/obs-ssp/src/obs-ssp-source.cpp: In function ‘void ssp_source_deactivated(void)’: /home/no/Documents/obs/obs-studio/plugins/obs-ssp/src/obs-ssp-source.cpp:670:35: warning: unused parameter ‘data’ [-Wunused-parameter] void ssp_source_deactivated(void* data) ^~~~ plugins/obs-ssp/CMakeFiles/obs-ssp.dir/build.make:108: recipe for target 'plugins/obs-ssp/CMakeFiles/obs-ssp.dir/src/obs-ssp-source.cpp.o' failed make[2]: *** [plugins/obs-ssp/CMakeFiles/obs-ssp.dir/src/obs-ssp-source.cpp.o] Error 1