mirror of
https://github.com/koush/scrypted.git
synced 2026-05-04 21:30:30 +01:00
python-codecs: implement image close
This commit is contained in:
4
plugins/python-codecs/package-lock.json
generated
4
plugins/python-codecs/package-lock.json
generated
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "@scrypted/python-codecs",
|
||||
"version": "0.1.56",
|
||||
"version": "0.1.57",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "@scrypted/python-codecs",
|
||||
"version": "0.1.56",
|
||||
"version": "0.1.57",
|
||||
"devDependencies": {
|
||||
"@scrypted/sdk": "file:../../sdk"
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@scrypted/python-codecs",
|
||||
"version": "0.1.56",
|
||||
"version": "0.1.57",
|
||||
"description": "Python Codecs for Scrypted",
|
||||
"keywords": [
|
||||
"scrypted",
|
||||
|
||||
@@ -122,8 +122,7 @@ async def generateVideoFramesGstreamer(mediaObject: scrypted_sdk.MediaObject, op
|
||||
try:
|
||||
yield createVideoFrame(mo)
|
||||
finally:
|
||||
vipsImage.vipsImage = None
|
||||
vips.invalidate()
|
||||
await vipsImage.close()
|
||||
else:
|
||||
pil = pilimage.new_from_memory(info.data, width, height, bands)
|
||||
|
||||
@@ -135,7 +134,6 @@ async def generateVideoFramesGstreamer(mediaObject: scrypted_sdk.MediaObject, op
|
||||
try:
|
||||
yield createVideoFrame(mo)
|
||||
finally:
|
||||
pilImage.pilImage = None
|
||||
pil.close()
|
||||
await pilImage.close()
|
||||
finally:
|
||||
gst_buffer.unmap(info)
|
||||
|
||||
@@ -60,8 +60,7 @@ async def generateVideoFramesLibav(mediaObject: scrypted_sdk.MediaObject, option
|
||||
try:
|
||||
yield createVideoFrame(mo)
|
||||
finally:
|
||||
vipsImage.vipsImage = None
|
||||
vips.invalidate()
|
||||
await vipsImage.close()
|
||||
else:
|
||||
if gray and frame.format.name.startswith('yuv') and frame.planes and len(frame.planes):
|
||||
pil = pilimage.new_from_memory(memoryview(frame.planes[0]), frame.width, frame.height, 1)
|
||||
@@ -82,7 +81,6 @@ async def generateVideoFramesLibav(mediaObject: scrypted_sdk.MediaObject, option
|
||||
try:
|
||||
yield createVideoFrame(mo)
|
||||
finally:
|
||||
pilImage.pilImage = None
|
||||
pil.close()
|
||||
await pilImage.close()
|
||||
finally:
|
||||
container.close()
|
||||
|
||||
@@ -16,6 +16,12 @@ class PILImage(scrypted_sdk.Image):
|
||||
self.width = pilImage.width
|
||||
self.height = pilImage.height
|
||||
|
||||
async def close(self):
|
||||
pil = self.pilImage
|
||||
self.pilImage = None
|
||||
if pil:
|
||||
pil.close()
|
||||
|
||||
async def toBuffer(self, options: scrypted_sdk.ImageOptions = None) -> bytearray:
|
||||
pilImage: PILImage = await self.toPILImage(options)
|
||||
|
||||
|
||||
@@ -16,6 +16,12 @@ class VipsImage(scrypted_sdk.Image):
|
||||
self.width = vipsImage.width
|
||||
self.height = vipsImage.height
|
||||
|
||||
async def close(self):
|
||||
vips = self.vipsImage
|
||||
self.vipsImage = None
|
||||
if vips:
|
||||
vips.invalidate()
|
||||
|
||||
async def toBuffer(self, options: scrypted_sdk.ImageOptions = None) -> bytearray:
|
||||
vipsImage: VipsImage = await self.toVipsImage(options)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user