📄 test_jpege_host.c
字号:
} printf("\nWidth = %d", g_input_image_width); printf("\nHeight = %d", g_input_image_height); printf("\n%d frames are encoded.", g_number_of_frames); printf("\nJPEG output in '%snnn.jpg' file", g_out_filename); printf("\nComparison of output is %s.", (g_compare_output?("enabled"):("disabled"))); printf("\n\n");}int read_config_file(int argc, char *argv[], int *n_argc, char *n_argv[]){ int i; char *ptr; char config_file_name[100]; FILE *fp; char arg[100]; int count = 1; if (strcmp(argv[1], "@") == 0) { strcpy(config_file_name, argv[2]); fp = fopen(config_file_name,"r"); if (fp == NULL) { printf ("Not able to open the config file - '%s'\n",config_file_name); return ERROR; } while (fscanf(fp, "%s", arg) != EOF) { ptr = (char *)malloc(strlen(arg)+1); if (ptr == NULL) { printf ("Error: Malloc for command line args failed.\n"); return ERROR; } strcpy(ptr, arg); n_argv[count] = ptr; count++; } *n_argc = count; printf ("Read from config file - '%s'\n",config_file_name); fclose (fp); } else { for (i=0; i<argc; i++) { ptr = (char *)malloc(strlen(argv[i])+1); if (ptr == NULL) { printf ("Error: Malloc for command line args failed.\n"); return ERROR; } strcpy(ptr, argv[i]); n_argv[i] = ptr; } *n_argc = argc; } return SUCCESS;}int parse_arguments(int t_argc, char *t_argv[]){ int argc; char *argv[100]; int channel_no = 0; int argnum = 1; if (t_argc < 2) { return SUCCESS; } if ((read_config_file(t_argc, t_argv, &argc, argv)) == ERROR) { return ERROR; } while (argnum < argc) { if ( (strcmp(argv[argnum], "-?") == 0) || (strcmp(argv[argnum], "--help") == 0) ) { print_usage(); return ERROR; } else if ( (strcmp(argv[argnum], "-d") == 0) || (strcmp(argv[argnum], "--default") == 0) ) { print_default_arguments(); return ERROR; } else if ( (strcmp(argv[argnum], "-y") == 0) || (strcmp(argv[argnum], "--yuv_file") == 0) ) { if(++argnum < argc) { g_in_filename = argv[argnum]; } else { printf("\n Error: Wrong set of arguments .\n"); print_usage(); return ERROR; } } else if ( (strcmp(argv[argnum], "-j") == 0) || (strcmp(argv[argnum], "--jpeg_file") == 0) ) { if(++argnum < argc) { g_out_filename = argv[argnum]; } else { printf("\n Error: Wrong set of arguments .\n"); print_usage(); return ERROR; } } else if ( (strcmp(argv[argnum], "-w") == 0) || (strcmp(argv[argnum], "--width") == 0) ) { if(++argnum < argc) { g_input_image_width = atoi(argv[argnum]); } else { printf("\n Error: Wrong set of arguments .\n"); print_usage(); return ERROR; } } else if ( (strcmp(argv[argnum], "-h") == 0) || (strcmp(argv[argnum], "--height") == 0) ) { if(++argnum < argc) { g_input_image_height = atoi(argv[argnum]); } else { printf("\n Error: Wrong set of arguments .\n"); print_usage(); return ERROR; } } else if ( (strcmp(argv[argnum], "-s") == 0) || (strcmp(argv[argnum], "--skip_count") == 0) ) { if(++argnum < argc) { g_frames_to_skip = atoi(argv[argnum]); } else { printf("\n Error: Wrong set of arguments .\n"); print_usage(); return ERROR; } } else if ( (strcmp(argv[argnum], "-n") == 0) || (strcmp(argv[argnum], "--no_of-frames") == 0) ) { if(++argnum < argc) { g_number_of_frames = atoi(argv[argnum]); } else { printf("\n Error: Wrong set of arguments .\n"); print_usage(); return ERROR; } } else if ( (strcmp(argv[argnum], "-c") == 0) || (strcmp(argv[argnum], "--check_result") == 0) ) { if(++argnum < argc) { if (strcmp(argv[argnum], "on") == 0) { g_compare_output = 1; } else if (strcmp(argv[argnum], "off") == 0) { g_compare_output = 0; } else { printf("\n Error: Wrong set of arguments .\n"); print_usage(); return ERROR; } } else { printf("\n Error: Wrong set of arguments .\n"); print_usage(); return ERROR; } } else { printf("\n Error: Wrong set of arguments .\n"); print_usage(); return ERROR; } // else argnum++; } return SUCCESS;}int decode_arguments(void){ FILE *input_file; int skip_size; int ysize, uvsize; if (g_compare_output == 0) { // Read one yuv_frame input_file = fopen(g_in_filename, "rb"); if(input_file == NULL) { printf("Can't open input file\n"); return ERROR; } skip_size = (g_input_image_width * g_input_image_height * 3 * g_frames_to_skip) >> 1; if ((fseek(input_file, skip_size, SEEK_SET)) == EOF) { printf("Can't fseek input file\n"); return ERROR; } ysize = g_input_image_width * g_input_image_height; uvsize = (g_input_image_width * g_input_image_height) >> 2; g_p_ybuf = (unsigned char *)malloc(ysize); if (g_p_ybuf == NULL) { printf ("Error: Malloc for ybuffer failed.\n"); return ERROR; } g_p_ubuf = (unsigned char *)malloc(uvsize); if (g_p_ubuf == NULL) { printf ("Error: Malloc for ubuffer failed.\n"); return ERROR; } g_p_vbuf = (unsigned char *)malloc(uvsize); if (g_p_vbuf == NULL) { printf ("Error: Malloc for vbuffer failed.\n"); return ERROR; } if ((fread(g_p_ybuf, 1, ysize, input_file)) != ysize) { printf("Can't fread input file\n"); return ERROR; } if ((fread(g_p_ubuf, 1, uvsize, input_file)) != uvsize) { printf("Can't fread input file\n"); return ERROR; } if ((fread(g_p_vbuf, 1, uvsize, input_file)) != uvsize) { printf("Can't fread input file\n"); return ERROR; } if (input_file) { fclose(input_file); } } return SUCCESS;}int main(int argc, char *argv[]){ int exit_code = 0; set_default_arguments(); if ((parse_arguments(argc, argv)) == ERROR) { return -1; } if ((decode_arguments()) == ERROR) { return -1; } print_default_arguments(); exit_code = dspmain(); return exit_code;}#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -