JSInterleavedVideoFrame::~JSInterleavedVideoFrame() { TRACE_MEM(); // Release ourselves if we haven't yet - this also deletes our context, if // there was one. Release(); dataInstance.Dispose(); }
void JSPlanarVideoFrame::Release() { TRACE_MEM(); JSVideoFrame::Release(); v8::Isolate* isolate = v8::Isolate::GetCurrent(); v8::HandleScope scope(isolate); if (!dataYInstance.IsEmpty()) { v8::Local<v8::ArrayBuffer>::New(isolate, dataYInstance)->Neuter(); v8::Local<v8::ArrayBuffer>::New(isolate, dataUInstance)->Neuter(); v8::Local<v8::ArrayBuffer>::New(isolate, dataVInstance)->Neuter(); } }
void JSInterleavedVideoFrame::Release() { TRACE_MEM(); JSVideoFrame::Release(); v8::Isolate* isolate = v8::Isolate::GetCurrent(); v8::HandleScope scope(isolate); if (!dataInstance.IsEmpty()) { v8::Local<v8::ArrayBuffer>::New(isolate, dataInstance)->Neuter(); } if (simpleContext != NULL) { delete simpleContext; simpleContext = NULL; } }
int prealloc_buffers(struct vdisk_dev *dev) { int i, c, res = 0; if (sgv_disable_clustered_pool) c = 0; else c = 1; do { for (i = 0; i < prealloc_buffers_num; i++) { union scst_user_prealloc_buffer pre; memset(&pre, 0, sizeof(pre)); pre.in.pbuf = (unsigned long)alloc_fn(prealloc_buffer_size); pre.in.bufflen = prealloc_buffer_size; pre.in.for_clust_pool = c; if (pre.in.pbuf == 0) { res = errno; PRINT_ERROR("Unable to prealloc buffer: %s", strerror(res)); goto out; } res = ioctl(dev->scst_usr_fd, SCST_USER_PREALLOC_BUFFER, &pre); if (res != 0) { res = errno; PRINT_ERROR("Unable to send prealloced buffer: %s", strerror(res)); free((void *)(unsigned long)pre.in.pbuf); goto out; } TRACE_MEM("Prealloced buffer cmd_h %x", pre.out.cmd_h); } c--; } while (c >= 0); out: return res; }
JSPlanarVideoFrame::~JSPlanarVideoFrame() { TRACE_MEM(); dataYInstance.Dispose(); dataUInstance.Dispose(); dataVInstance.Dispose(); }
static void *align_alloc(size_t size) { TRACE_MEM("Request to alloc %zdKB", size / 1024); return memalign(PAGE_SIZE, size); }