mirror of
https://github.com/koush/scrypted.git
synced 2026-05-30 08:10:30 +01:00
wyze: better ffmpeg kill method
This commit is contained in:
5
plugins/wyze/package-lock.json
generated
5
plugins/wyze/package-lock.json
generated
@@ -1,17 +1,18 @@
|
||||
{
|
||||
"name": "@scrypted/wyze",
|
||||
"version": "0.0.48",
|
||||
"version": "0.0.49",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "@scrypted/wyze",
|
||||
"version": "0.0.48",
|
||||
"version": "0.0.49",
|
||||
"devDependencies": {
|
||||
"@scrypted/sdk": "file:../../sdk"
|
||||
}
|
||||
},
|
||||
"../../sdk": {
|
||||
"name": "@scrypted/sdk",
|
||||
"version": "0.3.3",
|
||||
"dev": true,
|
||||
"license": "ISC",
|
||||
|
||||
@@ -33,5 +33,5 @@
|
||||
"devDependencies": {
|
||||
"@scrypted/sdk": "file:../../sdk"
|
||||
},
|
||||
"version": "0.0.48"
|
||||
"version": "0.0.49"
|
||||
}
|
||||
|
||||
@@ -264,6 +264,11 @@ class WyzeCamera(scrypted_sdk.ScryptedDeviceBase, VideoCamera, Settings, PanTilt
|
||||
stderr=asyncio.subprocess.DEVNULL,
|
||||
)
|
||||
|
||||
def pkill(p: asyncio.subprocess.Process):
|
||||
p.stdin.write_eof()
|
||||
loop.call_later(5, lambda: p.terminate())
|
||||
loop.call_later(10, lambda: p.kill())
|
||||
|
||||
try:
|
||||
forked, gen = self.forkAndStream(substream)
|
||||
async for audio, data, codec, sampleRate in gen:
|
||||
@@ -280,11 +285,9 @@ class WyzeCamera(scrypted_sdk.ScryptedDeviceBase, VideoCamera, Settings, PanTilt
|
||||
forked.worker.terminate()
|
||||
writer.close()
|
||||
self.print("rfc reader closed")
|
||||
vprocess.stdin.write("q\n".encode())
|
||||
vprocess.terminate()
|
||||
pkill(vprocess)
|
||||
if aprocess:
|
||||
aprocess.stdin.write("q\n".encode())
|
||||
aprocess.terminate()
|
||||
pkill(aprocess)
|
||||
|
||||
async def ensureServer(self, cb) -> int:
|
||||
server = await asyncio.start_server(cb, "127.0.0.1", 0)
|
||||
|
||||
Reference in New Issue
Block a user