exeldro / obs-source-record

GNU General Public License v2.0
351 stars 40 forks source link

Fix compatibility and crashes with OBS 29.1.2 #83

Closed ujifgc closed 6 months ago

ujifgc commented 1 year ago

This PR fixes 3 things:

1) replaces deprecated calls to API

2) fixes crash on loading filter properties. This was probably introcuded with https://github.com/obsproject/obs-studio/commit/78aa4e03dca62c3e1439cae2eade1c6d247c8a78

Downside of this fix is that now the user has to re-select filter page after changing the encoder. Current OBS API does not fully support property callbacks despite stating in the documentation https://docs.obsproject.com/reference-properties#c.obs_property_set_modified_callback2

3) fixes crash on changing source resolution. It seems that creating a thread with closing routines causes racing condition. When calling routines directly it works fine and the recording restarts properly.

flexiondotorg commented 1 year ago

Excellent work @ujifgc

I'm using your fixes branch in my build system for OBS Studio (and many plugins) that compiles OBS Studio from source for multiple Ubuntu releases. Your changes address some FTBFS issues :+1:

jprobichaud commented 1 year ago

I hope this gets picked soon, getting to 29.1.2 was nice for a bunch of new features, but the fact the the plugin breaks here is really messing up with our workflow

exeldro commented 1 year ago

The deprecated call are needed to keep supporting older versions of OBS. OBS 29.1.3 has a fix for the properties of source record. The thread with closing routines was made to prevent deadlocks.

joronaud commented 1 year ago

Can someone compile it for me? I don't know how to do that. I'm using Windows x64.

jaminmc commented 6 months ago

I think this PR is obsolete now, as Source-Record supports up to 30.0.2. Currently, it causes an issue because the recordings don't stop when they are stopped. but that is being worked on)