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; }
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; }