亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? x264.c

?? x264/h264 編碼, you can put any dir, No error, No warnning.In vc6 build.
?? C
?? 第 1 頁 / 共 3 頁
字號:
    /* Get the file name */    if( optind > argc - 1 || !opt->hout )    {        fprintf( stderr, "x264 [error]: No %s file. Run x264 --help for a list of options.\n",                 optind > argc - 1 ? "input" : "output" );        return -1;    }    psz_filename = argv[optind++];    /* check demuxer type */    psz = psz_filename + strlen(psz_filename) - 1;  //  初始定義 char *psz_filename = NULL;  psz_filename為指針變量名 , psz獲得地址psz_filename + strlen(psz_filename) - 1    while( psz > psz_filename && *psz != '.' )      //  將 psz 地址退回到輸入文件名后綴前,以便下一步對輸入文件類型做判斷        psz--;    if( !strncasecmp( psz, ".avi", 4 ) || !strncasecmp( psz, ".avs", 4 ) )        b_avis = 1;    if( !strncasecmp( psz, ".y4m", 4 ) )        b_y4m = 1;    if( !(b_avis || b_y4m) ) // raw yuv  ,以上類型都不是時,判斷為原始YUV文件    {        if( optind > argc - 1 )        {            /* try to parse the file name */            for( psz = psz_filename; *psz; psz++ )            {                if( *psz >= '0' && *psz <= '9'                    && sscanf( psz, "%ux%u", &param->i_width, &param->i_height ) == 2 )                {                    if( param->i_log_level >= X264_LOG_INFO )                        fprintf( stderr, "x264 [info]: file name gives %dx%d\n", param->i_width, param->i_height );                    break;                }            }        }        else        {            sscanf( argv[optind++], "%ux%u", &param->i_width, &param->i_height ); // sscanf表示從字符串中格式化輸入        }    }            if( !(b_avis || b_y4m) && ( !param->i_width || !param->i_height ) )    {        fprintf( stderr, "x264 [error]: Rawyuv input requires a resolution.\n" );        return -1;    }    /* open the input */    {        if( b_avis )        {#ifdef AVIS_INPUT            p_open_infile = open_file_avis;            p_get_frame_total = get_frame_total_avis;            p_read_frame = read_frame_avis;            p_close_infile = close_file_avis;#else            fprintf( stderr, "x264 [error]: not compiled with AVIS input support\n" );            return -1;#endif        }        if ( b_y4m )        {            p_open_infile = open_file_y4m;            p_get_frame_total = get_frame_total_y4m;            p_read_frame = read_frame_y4m;            p_close_infile = close_file_y4m;        }        if( p_open_infile( psz_filename, &opt->hin, param ) )        {            fprintf( stderr, "x264 [error]: could not open input file '%s'\n", psz_filename );            return -1;        }    }#ifdef HAVE_PTHREAD    if( b_thread_input || param->i_threads > 1 )    {        if( open_file_thread( NULL, &opt->hin, param ) )        {            fprintf( stderr, "x264 [warning]: threaded input failed\n" );        }        else        {            p_open_infile = open_file_thread;            p_get_frame_total = get_frame_total_thread;            p_read_frame = read_frame_thread;            p_close_infile = close_file_thread;        }    }#endif    return 0;}static void parse_qpfile( cli_opt_t *opt, x264_picture_t *pic, int i_frame ){    int num = -1, qp;    char type;    while( num < i_frame )    {        int ret = fscanf( opt->qpfile, "%d %c %d\n", &num, &type, &qp );        if( num < i_frame )            continue;        pic->i_qpplus1 = qp+1;        if     ( type == 'I' ) pic->i_type = X264_TYPE_IDR;        else if( type == 'i' ) pic->i_type = X264_TYPE_I;        else if( type == 'P' ) pic->i_type = X264_TYPE_P;        else if( type == 'B' ) pic->i_type = X264_TYPE_BREF;        else if( type == 'b' ) pic->i_type = X264_TYPE_B;        else ret = 0;        if( ret != 3 || qp < 0 || qp > 51 || num > i_frame )        {            fprintf( stderr, "x264 [error]: can't parse qpfile for frame %d\n", i_frame );            fclose( opt->qpfile );            opt->qpfile = NULL;            pic->i_type = X264_TYPE_AUTO;            pic->i_qpplus1 = 0;            break;        }    }}/***************************************************************************** * Decode: *****************************************************************************/static int  Encode_frame( x264_t *h, hnd_t hout, x264_picture_t *pic ){    x264_picture_t pic_out;    x264_nal_t *nal;    int i_nal, i;    int i_file = 0;    if( x264_encoder_encode( h, &nal, &i_nal, pic, &pic_out ) < 0 )    {        fprintf( stderr, "x264 [error]: x264_encoder_encode failed\n" );    }    for( i = 0; i < i_nal; i++ )    {        int i_size;        int i_data;        i_data = DATA_MAX;        if( ( i_size = x264_nal_encode( data, &i_data, 1, &nal[i] ) ) > 0 )        {            i_file += p_write_nalu( hout, data, i_size );        }        else if( i_size < 0 )        {            fprintf( stderr, "x264 [error]: need to increase buffer size (size=%d)\n", -i_size );        }    }    if (i_nal)        p_set_eop( hout, &pic_out );    return i_file;}/***************************************************************************** * Encode: *****************************************************************************/static int  Encode( x264_param_t *param, cli_opt_t *opt ){    x264_t *h;    x264_picture_t pic;    int     i_frame, i_frame_total;    int64_t i_start, i_end;    int64_t i_file;    int     i_frame_size;    int     i_progress;    i_frame_total = p_get_frame_total( opt->hin );    i_frame_total -= opt->i_seek;    if( ( i_frame_total == 0 || param->i_frame_total < i_frame_total )        && param->i_frame_total > 0 )        i_frame_total = param->i_frame_total;    param->i_frame_total = i_frame_total;    if( ( h = x264_encoder_open( param ) ) == NULL )  // x264_encoder_open( param )    {        fprintf( stderr, "x264 [error]: x264_encoder_open failed\n" );        p_close_infile( opt->hin );        p_close_outfile( opt->hout );        return -1;    }    if( p_set_outfile_param( opt->hout, param ) )    {        fprintf( stderr, "x264 [error]: can't set outfile param\n" );        p_close_infile( opt->hin );        p_close_outfile( opt->hout );        return -1;    }    /* Create a new pic */    x264_picture_alloc( &pic, X264_CSP_I420, param->i_width, param->i_height );    i_start = x264_mdate();    /* Encode frames */    for( i_frame = 0, i_file = 0, i_progress = 0;         b_ctrl_c == 0 && (i_frame < i_frame_total || i_frame_total == 0); )    {        if( p_read_frame( &pic, opt->hin, i_frame + opt->i_seek ) )            break;        pic.i_pts = (int64_t)i_frame * param->i_fps_den;        if( opt->qpfile )            parse_qpfile( opt, &pic, i_frame + opt->i_seek );        else        {            /* Do not force any parameters */            pic.i_type = X264_TYPE_AUTO;   //Slice type            pic.i_qpplus1 = 0;        }        i_file += Encode_frame( h, opt->hout, &pic );        i_frame++;        /* update status line (up to 1000 times per input file) */        if( opt->b_progress && param->i_log_level < X264_LOG_DEBUG &&             ( i_frame_total ? i_frame * 1000 / i_frame_total > i_progress                            : i_frame % 10 == 0 ) )        {            int64_t i_elapsed = x264_mdate() - i_start;            double fps = i_elapsed > 0 ? i_frame * 1000000. / i_elapsed : 0;            if( i_frame_total )            {                int eta = (int)(i_elapsed * (i_frame_total - i_frame) / ((int64_t)i_frame * 1000000));                i_progress = i_frame * 1000 / i_frame_total;                fprintf( stderr, "encoded frames: %d/%d (%.1f%%), %.2f fps, eta %d:%02d:%02d  \r",                         i_frame, i_frame_total, (float)i_progress / 10, fps,                         eta/3600, (eta/60)%60, eta%60 );            }            else                fprintf( stderr, "encoded frames: %d, %.2f fps   \r", i_frame, fps );            fflush( stderr ); // needed in windows        }    }    /* Flush delayed B-frames */    do {        i_file +=        i_frame_size = Encode_frame( h, opt->hout, NULL );    } while( i_frame_size );    i_end = x264_mdate();    x264_picture_clean( &pic );    x264_encoder_close( h );    fprintf( stderr, "\n" );    if( b_ctrl_c )        fprintf( stderr, "aborted at input frame %d\n", opt->i_seek + i_frame );    p_close_infile( opt->hin );    p_close_outfile( opt->hout );    if( i_frame > 0 )    {        double fps = (double)i_frame * (double)1000000 /                     (double)( i_end - i_start );        fprintf( stderr, "encoded %d frames, %.2f fps, %.2f kb/s\n", i_frame, fps,                 (double) i_file * 8 * param->i_fps_num /                 ( (double) param->i_fps_den * i_frame * 1000 ) );    }    return 0;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美精品乱码久久久久久| 日韩欧美资源站| 夜夜嗨av一区二区三区中文字幕| 欧美性大战久久久| 国产原创一区二区三区| 亚洲精品精品亚洲| 亚洲欧洲av另类| 国产精品久久久久一区二区三区共| 欧美变态tickling挠脚心| 欧美三级中文字| 欧美日韩综合不卡| 麻豆精品在线观看| 日韩经典一区二区| 婷婷亚洲久悠悠色悠在线播放| 亚洲另类在线制服丝袜| 国产精品影视网| 亚洲成a人片在线不卡一二三区| 亚洲国产精品一区二区www在线 | 国产成人免费在线观看不卡| 色成年激情久久综合| 国产剧情一区在线| 91精品国产一区二区三区蜜臀| 欧美电影免费观看高清完整版在线| 久久新电视剧免费观看| 2017欧美狠狠色| 日韩二区三区四区| 国产91在线看| 91麻豆国产精品久久| 欧美性视频一区二区三区| 国产精品情趣视频| 一区二区三区不卡视频| 91偷拍与自偷拍精品| 国产精品久久久久四虎| 国产宾馆实践打屁股91| 国产蜜臀av在线一区二区三区| 亚洲色图另类专区| 免费成人在线观看视频| 成人免费福利片| 欧美精品99久久久**| 午夜电影一区二区三区| 欧洲在线/亚洲| 久久亚洲免费视频| 丰满放荡岳乱妇91ww| 久久精品在这里| 日韩国产精品久久久久久亚洲| 8x8x8国产精品| 国产精品久久久久一区二区三区| 成人激情av网| 日韩一区二区在线看片| 精品一区二区免费看| 色婷婷综合久久久中文字幕| 久久中文字幕电影| 国产成人免费在线视频| 日韩理论片网站| 精品婷婷伊人一区三区三| 日本欧美一区二区三区乱码| 精品国产一区a| 视频一区在线播放| 日韩精品一区在线观看| 国产一区二区三区蝌蚪| 国产精品国产自产拍高清av| 色综合久久天天综合网| 日韩不卡免费视频| 2017欧美狠狠色| 91福利视频网站| 国内成人精品2018免费看| 欧美绝品在线观看成人午夜影视| 久久精品国产亚洲aⅴ| 欧美日韩国产综合视频在线观看| 亚洲欧美在线视频| 欧美日韩国产123区| 激情亚洲综合在线| 1024成人网色www| 欧美一区二区黄色| 成人免费精品视频| 日本成人中文字幕在线视频| 亚洲国产高清在线观看视频| 精品午夜久久福利影院| 一区二区三区在线视频免费| 精品噜噜噜噜久久久久久久久试看 | 亚洲一二三区不卡| 欧美xingq一区二区| 99精品久久99久久久久| 亚洲国产电影在线观看| 欧美精品在线观看播放| 不卡视频一二三| 麻豆一区二区在线| 亚洲乱码一区二区三区在线观看| 精品久久五月天| 欧美日韩午夜在线视频| 国产+成+人+亚洲欧洲自线| 婷婷一区二区三区| 亚洲欧美区自拍先锋| 日本伦理一区二区| 成人性生交大片免费看中文网站| 五月激情综合网| 亚洲美女免费在线| 欧美高清在线一区| 欧美大尺度电影在线| 精品污污网站免费看| 色综合久久88色综合天天| 国产精品自拍网站| 捆绑紧缚一区二区三区视频 | 五月综合激情网| 综合亚洲深深色噜噜狠狠网站| 久久久噜噜噜久久中文字幕色伊伊| 国产成人精品在线看| 男女激情视频一区| 五月婷婷久久综合| 亚洲国产综合91精品麻豆| 日韩理论片网站| 国产精品国产三级国产aⅴ中文| 久久蜜臀精品av| 久久青草国产手机看片福利盒子 | 国产欧美日韩在线看| 欧美精品一区二区三区四区 | 激情亚洲综合在线| 久久99日本精品| 老司机午夜精品99久久| 免费欧美高清视频| 久久疯狂做爰流白浆xx| 激情综合网av| 国产精品一区二区免费不卡 | 蜜臀av性久久久久av蜜臀妖精| 午夜精品福利久久久| 免费视频最近日韩| 久久国内精品视频| 狠狠久久亚洲欧美| 国产高清不卡一区二区| 成人午夜电影小说| 99天天综合性| 久久 天天综合| 国产专区欧美精品| aaa欧美大片| 欧美三级资源在线| 欧美一区二区二区| 国产日韩v精品一区二区| 国产精品久久看| 亚洲综合网站在线观看| 国产精品久久99| 一区二区三区四区乱视频| 午夜精品久久久久| 加勒比av一区二区| 91原创在线视频| 欧美美女直播网站| 久久久不卡影院| 亚洲综合男人的天堂| 日本欧洲一区二区| 成人av在线资源| 欧美精品乱码久久久久久| 久久日韩粉嫩一区二区三区| 亚洲人成精品久久久久| 亚洲不卡在线观看| 狠狠狠色丁香婷婷综合激情 | 69久久夜色精品国产69蝌蚪网| 欧美成人精品1314www| 国产精品私人影院| 视频在线观看91| 成人不卡免费av| 69av一区二区三区| 亚洲色图清纯唯美| 久久丁香综合五月国产三级网站| 9l国产精品久久久久麻豆| 欧美裸体一区二区三区| 国产精品免费av| 看电影不卡的网站| 91成人网在线| 久久一区二区三区国产精品| 艳妇臀荡乳欲伦亚洲一区| 国产一区二区三区| 欧美人伦禁忌dvd放荡欲情| 久久精品视频在线看| 亚洲妇女屁股眼交7| 国产成人精品亚洲午夜麻豆| 欧美精品高清视频| 亚洲欧美激情插| 国产激情精品久久久第一区二区| 欧美三级电影网站| 国产精品对白交换视频| 麻豆久久一区二区| 欧美日韩成人综合天天影院| 国产精品麻豆久久久| 国产专区欧美精品| 日韩欧美一区二区三区在线| 一区二区不卡在线视频 午夜欧美不卡在| 精油按摩中文字幕久久| 欧美日韩成人综合| 亚洲福中文字幕伊人影院| 色综合色综合色综合色综合色综合 | 青青草伊人久久| 欧美三级电影在线观看| 依依成人精品视频| 99久久免费精品| 国产精品你懂的在线欣赏| 国产伦精品一区二区三区免费| 日韩欧美亚洲一区二区| 青青草精品视频| 日韩精品一区二区三区在线播放| 亚洲成人免费观看| 在线观看区一区二|