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

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

?? mp4emain.c

?? Linux下的基于intel的ipp庫的MPEG4編碼程序
?? C
字號:
/******************************************************************************
//               INTEL CORPORATION PROPRIETARY INFORMATION
//  This software is supplied under the terms of a license agreement or
//  nondisclosure agreement with Intel Corporation and may not be copied
//  or disclosed except in accordance with the terms of that agreement.
//        Copyright (c) 2003 Intel Corporation. All Rights Reserved.
//
//  Description:    Encoder main entry function of MPEG-4 video encoder sample
//                  code for Intel(R) Integrated Performance Primitives.
//  Functions List:
//		main()
//		print_help_infor()
//		parse_command_line_mpeg4()
******************************************************************************/

#include <memory.h>
#include <string.h>
#include <stdlib.h>
#include "sampmp4.h"

/*****************************************************************************
// Name:             print_help_infor
// Description:      Print help information about the encoder usage.
//
// Returns:
//                   None
*****************************************************************************/
void print_help_infor()
{
    printf("Usage: MPEG4Decoder.exe  infile  outfile  [options]\n"
           "       infile :  .yuv input filename\n"
           "       outfile:  .cmp output filename\n"
           "       options:	 -vi xx  vol verison id;\n"
           "                         (xx = 1 or 2, default = 2)\n"
           "                 -fw xx  frame width in pixel;\n"
           "                         (default = 176)\n"
           "                 -fh xx  frame height in pixel;\n"
           "                         (default = 144)\n"
           "                 -fr xx  frame rate in frames per second;\n"
           "                         (default = 25)\n"
           "                 -cr xx  source frame color format;\n"
           "                         (xx = 0, default = 0 for YUV4:1:1)\n"
           "                 -qt xx  quantisation method;\n"
           "                         (xx = 1 or 2, default = 1)\n"
           "                 -qp xx  initial quantiser step;\n"
           "                         (xx = 1 - 31, default = 16)\n"
           "                 -th xx  intra dc vlc threshold;\n"
           "                         (xx = 0 - 7, default = 0)\n"
           "                 -iv xx  ivop interval in number of pvops in between;\n"
           "                         (default = -1 for only the 1st frame is ivop)\n"
           "                 -sr xx  search range for motion estimation in pixel;\n"
           "                         (xx = 1 - 1023, default = 15)\n"
           "                 -us xx  use src data or not for motion estimation;\n"
           "                         (xx = 0 or 1, default = 0)\n"
           "                 -hp     for help information;\n");
    return;
}

/******************************************************************************
// Name:             parse_command_line_mpeg4
// Description:      Parse command line to get encoder configuration options.
//
// Input Arguments:
//      argc         Number of arguments passed from main entry
//      argv         Array of arguments passed from main entry
// Output Arguments:
//      enc_config   Pointer to structure to store encoder configuration
//                   parameters.
//      fpin_ptr     Pointer to the input .cmp file stream handle to be opened
//      fpout_ptr    Pointer to the output .yuv file stream handle to be opened
//
// Returns:
//      None
******************************************************************************/
sample_status parse_command_line_mpeg4
(int argc, char** argv, mp4_enc_params *enc_config, FILE **fpin_ptr,
 FILE **fpout_ptr)
{
    FILE *fpin = NULL, *fpout = NULL;
    int   i, tmp;

    /* argument check */
    if (3 > argc) {
        print_help_infor();
		return SAMPLE_STATUS_BADARG_ERR;
    }
    
    /* open input .yuv file handle */
    fpin = fopen(argv[1], "rb");
    if (!fpin) {
        printf("Can't open input .yuv file!\n");
        return SAMPLE_STATUS_BADARG_ERR;
    } else {
        *fpin_ptr = fpin;
    }

    /* open output .cmp file handle */
    fpout = fopen(argv[2], "wb");
    if (!fpout) {
        printf("Can't open output .cmp file!\n");
        return SAMPLE_STATUS_BADARG_ERR;
    } else {
        *fpout_ptr = fpout;
    }

    /* fill default configurations */
    enc_config->vol_verid     = 2;
    enc_config->vol_width     = 176;
    enc_config->vol_height    = 144;
    enc_config->frame_rate    = 25;
    enc_config->intra_dc_thr  = 0;
    enc_config->ivop_interval = -1;
    enc_config->quant_type    = Q_MPEG4;
    enc_config->vop_quant     = 16;
    enc_config->search_range  = 15;
    enc_config->use_src_me    = 0;
    enc_config->color_format  = SAMPLE_YCbCr411;    
    
    /* parse encoder configuration params */
    for (i = 3; i < argc; i++) {
        /* vol version id */
        if (!strcmp(argv[i], "-vi")) {
            
            tmp = atoi(argv[++i]);
            if ((1 != tmp) && (2 != tmp)) {
                printf("Warning: vol version id must be equal to 1 or 2!\n");
                return SAMPLE_STATUS_BADARG_ERR;
            } else {
                enc_config->vol_verid = tmp;
            }

        } else if (!strcmp(argv[i], "-fw")) { /* vol width */
            
            tmp = atoi(argv[++i]);
            if (0 >= tmp) {
                printf("Warning: vol width must be positive!\n");
                return SAMPLE_STATUS_BADARG_ERR;
            } else {
                enc_config->vol_width = tmp;
            }

        } else if (!strcmp(argv[i], "-fh")) { /* vol height */
            
            tmp = atoi(argv[++i]);
            if (0 >= tmp) {
                printf("Warning: vol height must be positive!\n");
                return SAMPLE_STATUS_BADARG_ERR;
            } else {
                enc_config->vol_height = tmp;
            }

        } else if(!strcmp(argv[i], "-cr")) {  /* source color format */

            tmp = atoi(argv[++i]);
            if (0 != tmp) {
                printf("Warning: source pic color format must be YUV4:1:1\n");
                return SAMPLE_STATUS_NOTSUPPORTED_ERR;
            } else {
                enc_config->color_format = SAMPLE_YCbCr411;
            }

        } else if (!strcmp(argv[i], "-qt")) {  /* quantisation method */
            
            tmp = atoi(argv[++i]);
            if ((1 != tmp) && (2 != tmp)) {
                printf("Warning: quantisation type must be equal to 1 or 2!\n");
                return SAMPLE_STATUS_BADARG_ERR;
            } else {
                enc_config->quant_type = (tmp == 1) ? Q_MPEG4 : Q_H263;
            }

        } else if (!strcmp(argv[i], "-qp")) {  /* initial quantiser */
            
            tmp = atoi(argv[++i]);
            if ((31 < tmp) || (1 > tmp)) {
                printf("Warning: quantiser must be within the range of [1,31]!\n");
                return SAMPLE_STATUS_BADARG_ERR;
            } else {
                enc_config->vop_quant = tmp;
            }
        } else if (!strcmp(argv[i], "-th")) {  /* intra dc vlc threshold */
            tmp = atoi(argv[++i]);
            if ((7 < tmp) || (0 > tmp)) {
                printf("Warning: intra dc vlc threshold must be within the range of [0, 7]!\n");
                return  SAMPLE_STATUS_BADARG_ERR;
            } else {
                enc_config->intra_dc_thr = tmp;
            }
        } else if (!strcmp(argv[i], "-iv")) { /* ivop interval */
            
            tmp = atoi(argv[++i]);
            enc_config->ivop_interval = (0 > tmp) ? -1 : tmp;
        
        } else if (!strcmp(argv[i], "-sr")) { /* search range in me */
            
            tmp = atoi(argv[++i]);            
            if ((1023 < tmp) || (1 > tmp)) {
                printf("Warning: search range must be within the range of [1, 1023]!\n");
                return SAMPLE_STATUS_BADARG_ERR;
            } else {
                enc_config->search_range = tmp;
            }

        } else if (!strcmp(argv[i], "-us")) { /* use src raw data in me */

            tmp = atoi(argv[++i]);
            if ((0 != tmp) && (1 != tmp)) {
                printf("Warning: whether use src data or not in motion estimation must be equal to 1 or 0!\n");
                return SAMPLE_STATUS_BADARG_ERR;
            } else {
                enc_config->use_src_me = tmp;
            }

        } else if (!strcmp(argv[i], "-fr")) { /* frame rate */
            
            enc_config->frame_rate = atoi(argv[++i]);
        }
        else {
            print_help_infor();
            return SAMPLE_STATUS_ERR;
        }
    }
    
    /* count the number of frames in source file */
    fseek(fpin, 0, SEEK_END);
    enc_config->num_frames = ftell(fpin) / (enc_config->vol_width
        * enc_config->vol_height * 3 / 2);
    if (-1 == enc_config->ivop_interval) {
        enc_config->ivop_interval = enc_config->num_frames;
    }

    fseek(fpin, 0, SEEK_SET);

    return SAMPLE_STATUS_NOERR;
}



/*****************************************************************************
// Name:             main
// Description:      Entry function for MPEG4 baseline encoder
//
// Returns:          0:       encoding okay
//                   others:  encoding fail
*****************************************************************************/
int main(int argc, char** argv)
{
    mp4_enc_state    enc_state;
    mp4_enc_params   enc_config;
    sample_bitstream stream_buf;
    sample_status    ret_code;
    int              buf_size, i;
    FILE             *fpin;
    FILE             *fpout;
    
    /* parse command line to obtain encoder configuration options */
    ret_code = parse_command_line_mpeg4(argc, argv, &enc_config, &fpin, &fpout);
    if (SAMPLE_STATUS_NOERR != ret_code) {
        return -1;
    }

    /* init the encoder state */
    ret_code = encoder_init_alloc_mpeg4(&enc_config, &enc_state);
    if (SAMPLE_STATUS_NOERR != ret_code) {
        return -1;
    }

    /* init output video bitstream buffer */
    buf_size = enc_state.frame_dimension.width
        * enc_state.frame_dimension.height * 3;
    ret_code = init_output_video_buffer(&stream_buf, buf_size);
    if (SAMPLE_STATUS_NOERR != ret_code) {
        encoder_free_mpeg4(&enc_state);
        return -1;
    }
  
    /* create vo and vol header */
    create_voandvol_header_mpeg4(&stream_buf, &enc_state);
    dump_video_buffer(&stream_buf, fpout);

    for (i = 0; i < enc_config.num_frames; i++) {

        load_extend_picture(fpin, enc_state.info_pic);

        ret_code = encode_mpeg4(&stream_buf, &enc_state);
        
        switch (ret_code) {
        case SAMPLE_STATUS_NOERR:
            printf("Frame encoding ... ... %d\r", i);
            dump_video_buffer(&stream_buf, fpout);
            break;
        default:
            i = enc_config.num_frames;
            break;
        }
    }
    if (SAMPLE_STATUS_NOERR == ret_code) {
        printf("Everything is OK!\n");
    }
    release_output_video_buffer(&stream_buf);
    encoder_free_mpeg4(&enc_state);
    return 0;
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精一区二区三区| 亚洲午夜一区二区三区| 国产精品综合视频| 久久日韩精品一区二区五区| 国产传媒久久文化传媒| 国产精品麻豆久久久| 色婷婷av一区| 视频在线观看91| 久久婷婷色综合| 不卡的av电影在线观看| 一区av在线播放| 在线播放欧美女士性生活| 久久精品国产免费看久久精品| 欧美变态tickle挠乳网站| 狠狠色综合色综合网络| 国产精品天美传媒沈樵| 欧美日韩国产一二三| 极品尤物av久久免费看| 1区2区3区欧美| 日韩欧美亚洲国产另类| 国产成人aaaa| 亚洲国产精品久久久久婷婷884| 日韩欧美电影在线| 97aⅴ精品视频一二三区| 午夜激情久久久| 国产亚洲va综合人人澡精品| 色婷婷亚洲一区二区三区| 日韩福利视频导航| 国产精品传媒视频| 精品奇米国产一区二区三区| 成人18视频日本| 美国十次了思思久久精品导航| 国产精品久久久久久久第一福利| 欧美日韩国产影片| 成人听书哪个软件好| 天堂一区二区在线| 国产精品国产a| 精品免费日韩av| 欧美在线高清视频| 国产成人免费视频一区| 麻豆精品一区二区av白丝在线| 国产精品美日韩| 精品国产伦一区二区三区观看方式| 91美女片黄在线| 国产高清精品久久久久| 免费观看日韩电影| 亚洲综合色视频| 国产精品乱码一区二区三区软件| 欧美精品自拍偷拍| 日本国产一区二区| 成人av影视在线观看| 国产一区欧美一区| 丝袜美腿亚洲色图| 一区二区三区日韩欧美| 中文字幕高清一区| 久久一区二区三区国产精品| 制服丝袜成人动漫| 欧美三片在线视频观看| 91免费看视频| 99精品欧美一区二区蜜桃免费| 国产美女一区二区| 黄色成人免费在线| 狠狠色丁香婷婷综合久久片| 美女视频黄免费的久久| 日产国产欧美视频一区精品| 亚洲一区二区影院| 亚洲在线免费播放| 亚洲国产日日夜夜| 亚洲线精品一区二区三区八戒| 亚洲视频免费在线| 亚洲日本免费电影| 亚洲天堂免费看| 亚洲欧美色图小说| 亚洲同性gay激情无套| 亚洲欧洲成人自拍| 亚洲色图丝袜美腿| 一区二区三区中文在线观看| 一区二区三区四区亚洲| 一区二区三区四区五区视频在线观看 | 色乱码一区二区三区88| av成人老司机| 色综合 综合色| 欧洲一区二区av| 欧美三级日韩在线| 欧美精品在线观看一区二区| 日韩丝袜情趣美女图片| 久久丝袜美腿综合| 国产精品家庭影院| 亚洲视频一二区| 亚洲成人综合在线| 日韩高清一级片| 国产乱子伦一区二区三区国色天香| 久久99精品久久久久久国产越南| 久久国产尿小便嘘嘘尿| 国产一区二区日韩精品| www.99精品| 欧美日韩综合不卡| 精品久久国产老人久久综合| 精品福利视频一区二区三区| 国产精品拍天天在线| 亚洲精品日韩专区silk| 日韩精品成人一区二区三区| 精品一区二区三区视频在线观看| 国产精品99久久久| 一本到三区不卡视频| 欧美女孩性生活视频| 久久夜色精品国产欧美乱极品| 国产调教视频一区| 一区av在线播放| 国内精品国产成人| 欧洲一区二区三区在线| 精品久久久久一区| 亚洲女子a中天字幕| 蜜臀av性久久久久蜜臀aⅴ流畅| 国产乱码一区二区三区| 欧美在线999| 久久婷婷国产综合国色天香| 亚洲主播在线观看| 国产成人av网站| 欧美一级片在线看| 中文字幕在线不卡国产视频| 日韩精品一区第一页| 春色校园综合激情亚洲| 制服丝袜成人动漫| 亚洲男人天堂av网| 国产成人自拍在线| 欧美精品aⅴ在线视频| 最新国产精品久久精品| 久久国产精品99精品国产| 色噜噜狠狠色综合欧洲selulu| 欧美成人猛片aaaaaaa| 亚洲线精品一区二区三区| 成人性生交大片免费看在线播放| 欧美日韩亚洲国产综合| 亚洲人成伊人成综合网小说| 卡一卡二国产精品| 欧美久久一二三四区| 亚洲欧洲精品天堂一级| 国产一区二区在线看| 6080亚洲精品一区二区| 一区二区三区在线免费播放 | 国产白丝网站精品污在线入口| 欧美做爰猛烈大尺度电影无法无天| 国产网红主播福利一区二区| 美女脱光内衣内裤视频久久网站 | 国产精品影视网| 欧美高清一级片在线| 中文字幕亚洲在| 美女在线视频一区| 在线免费观看一区| 国产精品美女久久久久高潮| 婷婷久久综合九色国产成人| 91视频在线观看免费| 国产女人aaa级久久久级| 蜜桃一区二区三区在线观看| 欧美日韩在线综合| 亚洲精品免费播放| 成人av网址在线| 久久精品视频在线免费观看| 美女一区二区在线观看| 欧美色图一区二区三区| 美女在线视频一区| 3d动漫精品啪啪| 午夜成人在线视频| 欧美日韩国产小视频在线观看| 日韩理论片在线| 91国产免费看| 一区二区三区四区在线免费观看 | 欧美日韩免费电影| 亚洲尤物在线视频观看| 欧美亚一区二区| 亚洲激情网站免费观看| 97精品久久久午夜一区二区三区 | 欧美一区二区三区系列电影| 亚洲福利一区二区| 欧美二区乱c少妇| 人人狠狠综合久久亚洲| 欧美成人欧美edvon| 国产一区二区三区久久久| 国产日韩影视精品| 91小视频在线免费看| 一二三区精品福利视频| 欧美视频一区在线| 日本欧洲一区二区| 精品毛片乱码1区2区3区| 国产酒店精品激情| 中文字幕一区av| 欧美日韩亚洲综合在线 欧美亚洲特黄一级 | 精品国产污污免费网站入口| 国产成人综合在线观看| 国产乱码精品一品二品| 中文字幕一区二区三区精华液| 在线欧美日韩国产| 美女网站在线免费欧美精品| 国产欧美日韩激情| 91极品美女在线| 美女脱光内衣内裤视频久久网站| 国产区在线观看成人精品| 欧美影视一区二区三区| 精油按摩中文字幕久久|