Commit Graph

49 Commits (b1bf31dbe7c1b9be57e65dc24c1c8d22f788c312)

Author SHA1 Message Date
Per Heed 318779be7a obs-scripting: Fix script_path() python mem corruption
Returning PyObject with borrowed reference will result in double free
and/or use after free issue.  Issue seen as crash when running Python
script calling script_path().
2020-09-13 16:20:56 -07:00
Scratch e4b81c2b1b obs-scripting: Fix removing signal handlers in python
Closes #3218
2020-08-16 00:26:32 +10:00
jp9000 7993179466 cmake: Add cmake folders 2020-05-13 06:52:37 -07:00
Clayton Groeneveld a149b1df88 obs-scripting: Expose platform functions to scripts 2020-04-27 09:33:43 -05:00
Colin Edwards 55e2985026
Merge pull request #1944 from WizardCM/windows-rc-definition
CMake: Build Windows modules with file descriptors
2020-04-18 18:27:22 -05:00
comex 849d5462ad obs-scripting: Add missing Python imports
Add PyDict_New and PyTuple_New to obs-scripting-python-import.[ch];
these functions are used by SWIG's generated code when I build OBS on
macOS with SWIG 4.0.1.
2020-03-08 18:35:35 -07:00
jp9000 345e933d9f deps/obs-scripting: Fix incorrect parameter type 2020-01-21 02:43:21 -08:00
Scratch 41fcb9ae08 obs-scripting: Add Python functions for frontend events 2020-01-03 12:07:17 +11:00
Rat 83fdf41e3f deps/obs-scripting: Expose matrix3 & 4 to scripting
Various functions available in the scripting API aren't usable
currently since you can't create the matrix3 and matrix4 needed
for their arguments.
2019-12-25 00:37:31 +01:00
Jim 654508de7c
Merge pull request #2183 from ratwithacompiler/macos-python-fix-2
obs-scripting: Fix Python in new MacOS .app bundles
2019-11-18 19:46:09 -08:00
jp9000 6ab6fdffd1 deps/obs-scripting: Fix formatting 2019-11-17 18:06:56 -08:00
Rat a19fef2248 obs-scripting: Fix Python in new MacOS .app bundles
The current scripting directory path given to Python on OSX is
`../data/obs-scripting`. This works when bin/ and data/ are in the same
folder like rundir after a compile and in the old .app bundles but the
new normal .app bundle structure is different.

For bundles move obspython.py and _obspython.so to the binary folder,
just like the Lua one, and pass that bin path to the Python interpreter
so it can find it.

The current working dir isn't guaranteed to be set with .app bundles
so look up binary path at runtime.
2019-11-17 22:11:44 +01:00
Jim 9bdb21205d
Merge pull request #2085 from ratwithacompiler/macos-python-fix
obs-scripting: Fix Python on MacOS
2019-11-14 20:38:53 -08:00
Jim def6fcb0ee
Merge pull request #2125 from DDRBoxman/appbundle
Fixes to make OBS work on Catalina
2019-11-13 12:21:13 -08:00
Colin Edwards 32690926b9 CI: Use custom macdylibbundler for OSX deps 2019-11-03 00:00:38 -05:00
jpark37 7336226774 obs-scripting: Quiet CMake SWIG warnings 2019-10-15 21:08:30 -07:00
Matt Gajownik 51be039cf8 CMake: Build Windows modules with file descriptors 2019-10-15 21:34:12 +11:00
luz.paz d124e6402c docs/sphinx: Fix various typos
(This modifies UI, libobs, deps/obs-scripting, various cmake files)

Found using:
`codespell -q 3 -S *.ini,./UI/data/locale,./deps/w32-pthreads -L aci,dur,iff,mut,numer,uint`
2019-10-14 17:19:38 -07:00
Rat a44ff34ef0 obs-scripting: Link _obspython as dynamic_lookup on MacOS
_obspython.so currently links directly against python as @rpath/Python
and has 3 common python install paths set as rpaths so it would only
work if a user had python installed at one of those hardcoded paths.

Don't link _obspython against python at all but instead link it with
"-undefined dynamic_lookup" so when it is imported by python all it's
undefined python symbols get resolved at runtime against the user
supplied python instance loaded into the process earlier.

The rpaths aren't needed anymore this way.
2019-09-26 23:42:33 +02:00
Rat e7801e10ba obs-scripting: Fix python lib path on MacOS
The libpython .dylib files on MacOS are in the python_path/lib
subdir. The user supplied python_path still needs to be to the actual
python root and not lib/ as the root path get's used as python home dir
so just add lib/ when loading the dylib.
2019-09-26 23:37:00 +02:00
Jim 5f7ff6fbcc
Merge pull request #1970 from cg2121/fix-warnings
various: Fix compiler/theme warnings
2019-08-17 08:22:03 -07:00
Jason Francis 34c8538ab9 cmake: Fix SWIG deprecation warnings 2019-08-16 21:12:31 -04:00
Clayton Groeneveld e8ad89fc75 libobs, obs-scripting, vlc-video: Fix compiler warnings 2019-08-15 03:00:06 -05:00
Michael Fabian 'Xaymar' Dirks cdc613a5ea obs-scripting: Use a recursive mutex for Lua scripting
This enables stacking of Lua driven filters of the same kind without
freezing OBS Studio in place, or even crashing.
2019-08-08 22:57:35 -07:00
jp9000 f53df7da64 clang-format: Apply formatting
Code submissions have continually suffered from formatting
inconsistencies that constantly have to be addressed.  Using
clang-format simplifies this by making code formatting more consistent,
and allows automation of the code formatting so that maintainers can
focus more on the code itself instead of code formatting.
2019-06-23 23:49:10 -07:00
Rat eebb8f6597 deps/obs-scripting: Expose obs_output_output_caption_text1 to scripts
Make obs_output_output_caption_text1 usable via scripting if captions
are enabled to make adding additional caption sources easier.
2019-03-21 07:44:44 +01:00
Shaolin 1b13e12065 cmake: Fix an error when SWIG isn't found
obs-scripting CMakeList.txt expects SWIG, Python3 or Luajit to enable
scripting so in case of not finding just return and don't abort
the configuration
2018-09-09 01:58:11 -03:00
Jimi Huotari eee6541153
deps/obs-scripting: Use less automagic for Lua/Python detection
This adds build-time options for disabling the Lua and/or Python
scripting support in cases where users do not wish to build
it, but have the required libraries installed.
2018-07-11 05:08:47 +03:00
jp9000 a6c65cdbf3 deps/obs-scripting: Prevent python unload more than once 2018-03-18 00:57:15 -07:00
Jim 25e92e5d07
Merge pull request #1237 from kkartaltepe/fix-lua
deps/obs-scripting: Add obs_source_enum_filters
2018-03-17 17:07:12 -07:00
jp9000 0a6d5772d9 deps/obs-scripting: Don't allow unloading more than once 2018-03-17 16:52:14 -07:00
Kurt Kartaltepe 3293282dcf deps/obs-scripting: Add obs_source_enum_filters 2018-03-17 12:11:22 -05:00
Kurt Kartaltepe 65016d5ade
deps/obs-scripting: Fix tick function arg number
Tick function was smashing stack every time it was called due to arg number mismatch.
2018-03-12 10:57:43 -05:00
jp9000 c7c5bb999a deps/obs-scripting: Fix cur. script being NULL for script_tick
Fixes a bug where the thread local variable "current_lua_script" is not
set when calling script_tick.
2018-02-01 20:01:46 -08:00
jp9000 a2ae16e98c deps/obs-scripting: Allow NULL script with script_log
(This commit also modifies the frontend-tools module)

Prevents a potential crash when script_log is called by a thread spawned
by a python library.
2018-01-31 16:20:45 -08:00
Colin Edwards 285d9bd6f1 CI: Add rpath info to _obspython 2018-01-30 18:15:44 -06:00
jp9000 dce311cf1a deps/obs-scripting: Make ENABLE_SCRIPTING a user variable
Makes it so that the scripting cmake variable ENABLE_SCRIPTING is a user
variable rather than a global internal cmake variable, and defers the
internal global cmake variable to SCRIPTING_ENABLED instead.
2018-01-23 20:57:48 -08:00
jp9000 c5b58211da deps/obs-scripting: Prevent potential python startup issues
Prevents Python from automatically trying to load from PATH on startup
on windows.  The user should set their Python 3 path themselves.
2018-01-22 07:33:17 -08:00
jp9000 3259269c99 deps/obs-scripting: Fix script_log in python to append newline 2018-01-19 11:10:45 -08:00
jp9000 c9c7dc5748 deps/obs-scripting: Fix frontend API lua table creation
Lua uses 1-based index on table insertions, and lua_newtable has a bit
better performance than lua_createtable if initializing tables with an
unknown item count.
2018-01-18 05:59:20 -08:00
jp9000 d01632a4f0 deps/obs-scripting: Fix a few more VC warnings from swigluarun.h 2018-01-18 05:35:19 -08:00
Colin Edwards f06c0dd7d5 deps/obs-scripting: Ensure that ffi module gets loaded
Closes jp9000/obs-studio#1158
2018-01-18 01:49:07 -08:00
Jim 8d60404663
Merge pull request #1155 from DDRBoxman/scripting
deps/obs-scripting: Various scripting fixes
2018-01-16 05:24:26 -08:00
jp9000 db2d4c97e8 deps/obs-scripting: Fix installed files/locations on linux
Uses the 'install' command in cmake to install scripting modules/files
(such as _obspython.so, obslua.so, and obspython.py), and changes the
install location of those files on all operating systems.  If using a
non-unix structure install, those files will be installed in
data/obs-scripting/[32bit/64bit], otherwise with unix structure installs
those files will be installed to [/usr/local/lib]/obs-scripting.
2018-01-16 03:55:38 -08:00
Colin Edwards 4390a0e7e6 deps/obs-scripting: Add image-file to lua 2018-01-15 21:54:50 -06:00
Colin Edwards 3714424808 deps/obs-scripting: Set current_lua_script earlier to prevent a crash 2018-01-15 21:12:40 -06:00
Colin Edwards 1b49a0541e deps/obs-scripting: Don't crash obs trying to unload a script that failed to load 2018-01-15 20:38:58 -06:00
jp9000 2651d076db deps/obs-scripting: Fix swig/python lookup on windows
Fixes swig/python dependencies to search for the pre-compiled deps on
windows.
2018-01-07 17:47:55 -08:00
jp9000 9eabfdbf1e deps/obs-scripting: Add scripting support
Allows Lua/Python scripting support.
2018-01-04 11:37:42 -08:00