raw2yuv.c

来自「足球机器人自动程序」· C语言 代码 · 共 54 行

C
54
字号
#include "global.h"#include "dec.h"#include "utils.h"int main(int argc, char *argv[]) {	if (argc < 2) {		fprintf(stderr, "Usage: %s file\n", argv[0]);		return -1;	}	if (argc == 2 && !strcmp(argv[1], "-h")) {		fprintf(stderr, "Usage: %s file\n", argv[0]);		return 0;	}	char filename[24];	int i = 1;	for (; i<argc; ++i) {		int fdi = open(argv[i], O_RDONLY);		if (fdi < 0) {			perror(argv[i]);			return -1;		}		char *suffix = strrchr(argv[i], '.');		if (suffix != NULL && !strcmp(suffix + 1, "raw")) {			int len = suffix-argv[i];			memcpy(filename, argv[i], len);			sprintf(filename+len, ".yuv");		}		else {			fprintf(stderr, "invalid filename: %s\n", argv[i]);			return -1;		}		unsigned char *src = mmap(NULL, RAW_SIZE, PROT_READ, MAP_SHARED, fdi, 0);		if (src == MAP_FAILED) {			perror("mmap");			return -1;		}		unsigned char dst[YUV_SIZE];		dec_init();		dec_process(src, dst);		msave(filename, dst, YUV_SIZE);		close(fdi);	}	return 0;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?