@@ -48,6 +48,7 @@ osn::AudioEncoder::AudioEncoder(const Napi::CallbackInfo &info) : Napi::ObjectWr
4848 size_t length = info.Length ();
4949 this ->uid = 0 ;
5050 this ->encoderInitialized = false ;
51+ this ->connectionEpoch = 0 ;
5152
5253 if (length <= 0 || !info[0 ].IsNumber ()) {
5354 Napi::TypeError::New (env, " Number expected" ).ThrowAsJavaScriptException ();
@@ -56,6 +57,7 @@ osn::AudioEncoder::AudioEncoder(const Napi::CallbackInfo &info) : Napi::ObjectWr
5657
5758 this ->uid = (uint64_t )info[0 ].ToNumber ().Int64Value ();
5859 this ->encoderInitialized = true ;
60+ this ->connectionEpoch = Controller::GetInstance ().GetConnectionEpoch ();
5961}
6062
6163Napi::Value osn::AudioEncoder::Create (const Napi::CallbackInfo &info)
@@ -87,15 +89,23 @@ void osn::AudioEncoder::Finalize(Napi::Env env)
8789 if (!this ->encoderInitialized )
8890 return ;
8991
90- auto conn = GetConnection (env);
91- if (!conn)
92+ // If OBS was restarted/disconnected, skip IPC cleanup for this stale wrapper.
93+ if (this ->connectionEpoch != Controller::GetInstance ().GetConnectionEpoch ()) {
94+ this ->encoderInitialized = false ;
95+ this ->uid = UINT64_MAX;
9296 return ;
97+ }
9398
94- std::vector<ipc::value> response = conn->call_synchronous_helper (" AudioEncoder" , " Finalize" , {ipc::value (this ->uid )});
99+ auto conn = Controller::GetInstance ().GetConnection ();
100+ if (!conn) {
101+ this ->encoderInitialized = false ;
102+ this ->uid = UINT64_MAX;
103+ return ;
104+ }
105+
106+ conn->call_synchronous_helper (" AudioEncoder" , " Finalize" , {ipc::value (this ->uid )});
95107 this ->encoderInitialized = false ;
96108 this ->uid = UINT64_MAX;
97- if (!ValidateResponse (env, response))
98- return ;
99109}
100110
101111void osn::AudioEncoder::Release (const Napi::CallbackInfo &info)
@@ -160,4 +170,4 @@ void osn::AudioEncoder::SetBitrate(const Napi::CallbackInfo &info, const Napi::V
160170 return ;
161171
162172 conn->call (" AudioEncoder" , " SetBitrate" , {ipc::value (this ->uid ), ipc::value (value.ToNumber ().Uint32Value ())});
163- }
173+ }
0 commit comments