CoSMoSoftware / OBS-studio-webrtc

This is a fork of OBS-studio with generic support for webrtc. It leverages the same webrtc implementation most browsers use.
http://www.cosmosoftware.io
GNU General Public License v2.0
587 stars 131 forks source link

EBS Mac: Difficulties while building the mac app #189

Closed skastr0 closed 4 years ago

skastr0 commented 4 years ago

Git branch: m73-v23.2 Minimal steps to reach blocker:

  1. git clone --recursive git@github.com:CoSMoSoftware/OBS-studio-webrtc.git -b m73-v23.2
  2. cd OBS-studio-webrtc
  3. ./CI/install-dependencies-osx.sh
  4. ./CI/before-script-osx.sh
  5. cd build
  6. cmake --build . --config Release

At this point I get the following errors:

cmake --build . --config Release                                                                                                                         ⏎
[  1%] Built target glad
[  2%] Built target media-playback
[  5%] Built target jansson
[ 26%] Built target libobs
[ 27%] Built target file-updater
[ 30%] Built target libobs-opengl
[ 30%] Built target coreaudio-encoder
[ 31%] Built target mac-avcapture
[ 33%] Built target mac-capture
[ 33%] Built target mac-vth264
[ 39%] Built target mac-syphon
[ 43%] Built target mac-decklink
[ 44%] Built target linux-jack
[ 46%] Built target obs-vst
[ 47%] Built target image-source
[ 48%] Built target obs-x264
[ 50%] Built target obs-ffmpeg
[ 51%] Built target obs-ffmpeg-mux
[ 51%] Building C object plugins/obs-filters/CMakeFiles/obs-filters.dir/async-delay-filter.c.o
../OBS-studio-webrtc/plugins/obs-filters/async-delay-filter.c:120:2: error: implicit declaration of function 'obs_property_int_set_suffix' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
        obs_property_int_set_suffix(p, " ms");
        ^
../OBS-studio-webrtc/plugins/obs-filters/async-delay-filter.c:120:2: note: did you mean 'obs_property_int_set_limits'?
/usr/local/include/obs-properties.h:273:13: note: 'obs_property_int_set_limits' declared here
EXPORT void obs_property_int_set_limits(obs_property_t *p,
            ^
1 error generated.
make[2]: *** [plugins/obs-filters/CMakeFiles/obs-filters.dir/async-delay-filter.c.o] Error 1
make[1]: *** [plugins/obs-filters/CMakeFiles/obs-filters.dir/all] Error 2
make: *** [all] Error 2

From what I see in the code this function is properly defined so I'm not sure why it would be failing on this. There's even some functions that are defined in the same file being used... Either way, this seems to happen only with new functions, probably from the update to v23.

Finally, it seems like the vendor_skins system is not working every time. I've tested a bit and it seems like on fresh clones the files from vendor_skins are not copied. I believe it might be because the timestamps could be the same as all the files were just created by git clone. As per the file docs, these cases are optimised out and skipped.

agouaillard-cosmo commented 4 years ago

Yes, we have experienced this behaviour on some configurations. We think the cmake copying mechanism is faulty. While the vendor_skin design was elegant on paper, practically it is also messing up with git. We have elected to keep it this way for now, as any alternative would take a lot of time for no immediate improvement. For now we copy the files manually before the build step. The issue can be revisited in a later iteration of the project.