コード例 #1
0
ファイル: x264Encode.c プロジェクト: lukechampine/mkvsynth
void *x264Encode(void *filterParams) {
	struct x264EncodeParams *params = (struct x264EncodeParams*)filterParams;

	char fullCommand[1024];
	
	snprintf(fullCommand, sizeof(fullCommand), "x264 - --input-csp rgb --input-depth %i --fps %i/%i --input-res %ix%i %s -o %s",
		getDepth(params->input->metaData),
		params->input->metaData->fpsNumerator,
		params->input->metaData->fpsDenominator,
		params->input->metaData->width,
		params->input->metaData->height,
		params->x264params,
		params->filename);

	FILE *x264Proc = popen(fullCommand, "w");

	MkvsynthFrame *workingFrame = getReadOnlyFrame(params->input);

	while(workingFrame->payload != NULL) {
		fwrite(workingFrame->payload, 1, getBytes(params->input->metaData), x264Proc);
		clearReadOnlyFrame(workingFrame);
		workingFrame = getReadOnlyFrame(params->input);
	}

	pclose(x264Proc);
	free(params);
	return NULL;
}
コード例 #2
0
ファイル: writeRawFile.c プロジェクト: DavidVorick/mkvsynth
void *writeRawFile(void *filterParams) {
	struct writeRawFileParams *params = (struct writeRawFileParams *)filterParams;

	/////////////////
	// Filter Loop //
	/////////////////
	MkvsynthFrame *workingFrame = getReadOnlyFrame(params->input);

	int frame = 1;
	while(workingFrame->payload != NULL) {
		fwrite(workingFrame->payload, 1, getBytes(params->input->metaData), params->file);
		printf("output frame %i\n", frame);
		frame++;
		clearReadOnlyFrame(workingFrame);
		workingFrame = getReadOnlyFrame(params->input);
	}

	free(params);
	return NULL;
}