Example #1
0
JSInterleavedVideoFrame::~JSInterleavedVideoFrame() {
	TRACE_MEM();
	// Release ourselves if we haven't yet - this also deletes our context, if
	// there was one.
	Release();
	dataInstance.Dispose();
}
Example #2
0
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();
	}
}
Example #3
0
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;
	}
}
Example #4
0
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;
}
Example #5
0
JSPlanarVideoFrame::~JSPlanarVideoFrame() {
	TRACE_MEM();
	dataYInstance.Dispose();
	dataUInstance.Dispose();
	dataVInstance.Dispose();
}
Example #6
0
static void *align_alloc(size_t size)
{
	TRACE_MEM("Request to alloc %zdKB", size / 1024);
	return memalign(PAGE_SIZE, size);
}