⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test_jpege_host.c

📁 motion Jpeg 在SPI DSP平台优化好的代码
💻 C
📖 第 1 页 / 共 2 页
字号:
	}    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 + -