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

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

?? mpeg2enc.c

?? MPEG2解編碼程序源代碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* mpeg2enc.c, main() and parameter file reading                            */



/* Copyright (C) 1996, MPEG Software Simulation Group. All Rights Reserved. */



/*

 * Disclaimer of Warranty

 *

 * These software programs are available to the user without any license fee or

 * royalty on an "as is" basis.  The MPEG Software Simulation Group disclaims

 * any and all warranties, whether express, implied, or statuary, including any

 * implied warranties or merchantability or of fitness for a particular

 * purpose.  In no event shall the copyright-holder be liable for any

 * incidental, punitive, or consequential damages of any kind whatsoever

 * arising from the use of these programs.

 *

 * This disclaimer of warranty extends to the user of these programs and user's

 * customers, employees, agents, transferees, successors, and assigns.

 *

 * The MPEG Software Simulation Group does not represent or warrant that the

 * programs furnished hereunder are free of infringement of any third-party

 * patents.

 *

 * Commercial implementations of MPEG-1 and MPEG-2 video, including shareware,

 * are subject to royalty fees to patent holders.  Many of these patents are

 * general enough such that they are unavoidable regardless of implementation

 * design.

 *

 */



#include <stdio.h>

#include <stdlib.h>



#define GLOBAL /* used by global.h */

#include "config.h"

#include "global.h"



/* private prototypes */

static void init _ANSI_ARGS_((void));

static void readparmfile _ANSI_ARGS_((char *fname));

static void readquantmat _ANSI_ARGS_((void));





int main(argc,argv)

int argc;

char *argv[];

{

  if (argc!=3)

  {

    printf("\n%s, %s\n",version,author);

    printf("Usage: mpeg2encode in.par out.m2v\n");

    exit(0);

  }



  /* read parameter file */

  readparmfile(argv[1]);



  /* read quantization matrices */

  readquantmat();



  /* open output file */

  if (!(outfile=fopen(argv[2],"wb")))

  {

    sprintf(errortext,"Couldn't create output file %s",argv[2]);

    error(errortext);

  }



  init();

  putseq();



  fclose(outfile);

  fclose(statfile);

  fclose(matlab_file);



  return 0;

}



static void init()

{

  int i, size;

  static int block_count_tab[3] = {6,8,12};



  initbits();

  init_fdct();

  init_idct();



  /* round picture dimensions to nearest multiple of 16 or 32 */

  mb_width = (horizontal_size+15)/16;

  mb_height = prog_seq ? (vertical_size+15)/16 : 2*((vertical_size+31)/32);

  mb_height2 = fieldpic ? mb_height>>1 : mb_height; /* for field pictures */

  width = 16*mb_width;

  height = 16*mb_height;



  chrom_width = (chroma_format==CHROMA444) ? width : width>>1;

  chrom_height = (chroma_format!=CHROMA420) ? height : height>>1;



  height2 = fieldpic ? height>>1 : height;

  width2 = fieldpic ? width<<1 : width;

  chrom_width2 = fieldpic ? chrom_width<<1 : chrom_width;

  

  block_count = block_count_tab[chroma_format-1];



  /* clip table */

  if (!(clp = (unsigned char *)malloc(1024)))

    error("malloc failed\n");

  clp+= 384;

  for (i=-384; i<640; i++)

    clp[i] = (i<0) ? 0 : ((i>255) ? 255 : i);



  for (i=0; i<3; i++)

  {

    size = (i==0) ? width*height : chrom_width*chrom_height;



    if (!(newrefframe[i] = (unsigned char *)malloc(size)))

      error("malloc failed\n");

    if (!(oldrefframe[i] = (unsigned char *)malloc(size)))

      error("malloc failed\n");

    if (!(auxframe[i] = (unsigned char *)malloc(size)))

      error("malloc failed\n");

    if (!(neworgframe[i] = (unsigned char *)malloc(size)))

      error("malloc failed\n");

    if (!(oldorgframe[i] = (unsigned char *)malloc(size)))

      error("malloc failed\n");

    if (!(auxorgframe[i] = (unsigned char *)malloc(size)))

      error("malloc failed\n");

    if (!(predframe[i] = (unsigned char *)malloc(size)))

      error("malloc failed\n");

  }



  mbinfo = (struct mbinfo *)malloc(mb_width*mb_height2*sizeof(struct mbinfo));



  if (!mbinfo)

    error("malloc failed\n");



  blocks =

    (short (*)[64])malloc(mb_width*mb_height2*block_count*sizeof(short [64]));



  if (!blocks)

    error("malloc failed\n");



  /* open statistics output file */

  if (statname[0]=='-')

    statfile = stdout;

  else if (!(statfile = fopen(statname,"w")))

  {

    sprintf(errortext,"Couldn't create statistics output file %s",statname);

    error(errortext);

  }



  matlab_file = fopen("stat.dat","w");

}



void error(text)

char *text;

{

  fprintf(stderr,text);

  putc('\n',stderr);

  exit(1);

}



static void readparmfile(fname)

char *fname;

{

  int i;

  int h,m,s,f;

  FILE *fd;

  char line[256];

  static double ratetab[8]=

    {24000.0/1001.0,24.0,25.0,30000.0/1001.0,30.0,50.0,60000.0/1001.0,60.0};

  extern int r,Xi,Xb,Xp,d0i,d0p,d0b; /* rate control */

  extern double avg_act; /* rate control */



  if (!(fd = fopen(fname,"r")))

  {

    sprintf(errortext,"Couldn't open parameter file %s",fname);

    error(errortext);

  }



  fgets(id_string,254,fd);

  fgets(line,254,fd); sscanf(line,"%s",tplorg);

  fgets(line,254,fd); sscanf(line,"%s",tplref);

  fgets(line,254,fd); sscanf(line,"%s",iqname);

  fgets(line,254,fd); sscanf(line,"%s",niqname);

  fgets(line,254,fd); sscanf(line,"%s",statname);

  fgets(line,254,fd); sscanf(line,"%d",&inputtype);

  fgets(line,254,fd); sscanf(line,"%d",&nframes);

  fgets(line,254,fd); sscanf(line,"%d",&frame0);

  fgets(line,254,fd); sscanf(line,"%d:%d:%d:%d",&h,&m,&s,&f);

  fgets(line,254,fd); sscanf(line,"%d",&N);

  fgets(line,254,fd); sscanf(line,"%d",&M);

  fgets(line,254,fd); sscanf(line,"%d",&mpeg1);

  fgets(line,254,fd); sscanf(line,"%d",&fieldpic);

  fgets(line,254,fd); sscanf(line,"%d",&horizontal_size);

  fgets(line,254,fd); sscanf(line,"%d",&vertical_size);

  fgets(line,254,fd); sscanf(line,"%d",&aspectratio);

  fgets(line,254,fd); sscanf(line,"%d",&frame_rate_code);

  fgets(line,254,fd); sscanf(line,"%lf",&bit_rate);

  fgets(line,254,fd); sscanf(line,"%d",&vbv_buffer_size);   

  fgets(line,254,fd); sscanf(line,"%d",&low_delay);     

  fgets(line,254,fd); sscanf(line,"%d",&constrparms);

  fgets(line,254,fd); sscanf(line,"%d",&profile);

  fgets(line,254,fd); sscanf(line,"%d",&level);

  fgets(line,254,fd); sscanf(line,"%d",&prog_seq);

  fgets(line,254,fd); sscanf(line,"%d",&chroma_format);

  fgets(line,254,fd); sscanf(line,"%d",&video_format);

  fgets(line,254,fd); sscanf(line,"%d",&color_primaries);

  fgets(line,254,fd); sscanf(line,"%d",&transfer_characteristics);

  fgets(line,254,fd); sscanf(line,"%d",&matrix_coefficients);

  fgets(line,254,fd); sscanf(line,"%d",&display_horizontal_size);

  fgets(line,254,fd); sscanf(line,"%d",&display_vertical_size);

  fgets(line,254,fd); sscanf(line,"%d",&dc_prec);

  fgets(line,254,fd); sscanf(line,"%d",&topfirst);

  fgets(line,254,fd); sscanf(line,"%d %d %d",

    frame_pred_dct_tab,frame_pred_dct_tab+1,frame_pred_dct_tab+2);

  

  fgets(line,254,fd); sscanf(line,"%d %d %d",

    conceal_tab,conceal_tab+1,conceal_tab+2);

  

  fgets(line,254,fd); sscanf(line,"%d %d %d",

    qscale_tab,qscale_tab+1,qscale_tab+2);



  fgets(line,254,fd); sscanf(line,"%d %d %d",

    intravlc_tab,intravlc_tab+1,intravlc_tab+2);

  fgets(line,254,fd); sscanf(line,"%d %d %d",

    altscan_tab,altscan_tab+1,altscan_tab+2);

  fgets(line,254,fd); sscanf(line,"%d",&repeatfirst);

  fgets(line,254,fd); sscanf(line,"%d",&prog_frame);

/* intra slice interval refresh period */  

  fgets(line,254,fd); sscanf(line,"%d",&P);

  fgets(line,254,fd); sscanf(line,"%d",&r);

  fgets(line,254,fd); sscanf(line,"%lf",&avg_act);

  fgets(line,254,fd); sscanf(line,"%d",&Xi);

  fgets(line,254,fd); sscanf(line,"%d",&Xp);

  fgets(line,254,fd); sscanf(line,"%d",&Xb);

  fgets(line,254,fd); sscanf(line,"%d",&d0i);

  fgets(line,254,fd); sscanf(line,"%d",&d0p);

  fgets(line,254,fd); sscanf(line,"%d",&d0b);



  if (N<1)

    error("N must be positive");

  if (M<1)

    error("M must be positive");

  if (N%M != 0)

    error("N must be an integer multiple of M");



  motion_data = (struct motion_data *)malloc(M*sizeof(struct motion_data));

  if (!motion_data)

    error("malloc failed\n");



  for (i=0; i<M; i++)

  {

    fgets(line,254,fd);

    sscanf(line,"%d %d %d %d",

      &motion_data[i].forw_hor_f_code, &motion_data[i].forw_vert_f_code,

      &motion_data[i].sxf, &motion_data[i].syf);



    if (i!=0)

    {

      fgets(line,254,fd);

      sscanf(line,"%d %d %d %d",

        &motion_data[i].back_hor_f_code, &motion_data[i].back_vert_f_code,

        &motion_data[i].sxb, &motion_data[i].syb);

    }

  }



  fclose(fd);



  /* make flags boolean (x!=0 -> x=1) */

  mpeg1 = !!mpeg1;

  fieldpic = !!fieldpic;

  low_delay = !!low_delay;

  constrparms = !!constrparms;

  prog_seq = !!prog_seq;

  topfirst = !!topfirst;



  for (i=0; i<3; i++)

  {

    frame_pred_dct_tab[i] = !!frame_pred_dct_tab[i];

    conceal_tab[i] = !!conceal_tab[i];

    qscale_tab[i] = !!qscale_tab[i];

    intravlc_tab[i] = !!intravlc_tab[i];

    altscan_tab[i] = !!altscan_tab[i];

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美成人官网二区| 亚洲一级电影视频| 五月激情丁香一区二区三区| 高清视频一区二区| 欧美精品xxxxbbbb| 一区二区三区视频在线看| 久久精品国产网站| 欧美日韩精品福利| 亚洲国产精品av| 久草热8精品视频在线观看| 日本韩国欧美在线| 亚洲视频1区2区| 成人晚上爱看视频| 久久新电视剧免费观看| 日韩高清欧美激情| 欧美精选一区二区| 亚洲成av人影院| 欧美在线观看禁18| 一区二区三区在线看| 99riav一区二区三区| 国产欧美精品在线观看| 国内精品在线播放| 久久婷婷综合激情| 国产一区二区伦理| 久久嫩草精品久久久精品一| 九色综合狠狠综合久久| 日韩亚洲欧美在线| 日本麻豆一区二区三区视频| 欧美精品日韩精品| 无码av免费一区二区三区试看| 在线观看免费一区| 亚洲一卡二卡三卡四卡五卡| 在线观看免费亚洲| 婷婷综合五月天| 日韩三级免费观看| 黄色成人免费在线| 国产欧美日韩一区二区三区在线观看| 国产一区二区不卡| 国产精品久久久久久久蜜臀| 色综合天天综合给合国产| 亚洲美女一区二区三区| 欧美日韩一二三区| 免费观看在线综合色| 欧美成人综合网站| 成人午夜激情视频| 亚洲欧美激情视频在线观看一区二区三区 | 久久久精品国产免大香伊| 国产高清在线观看免费不卡| 国产三级精品视频| 99久久婷婷国产| 亚洲综合免费观看高清完整版| 欧美人伦禁忌dvd放荡欲情| 九色porny丨国产精品| 国产精品午夜久久| 欧美日韩一区二区三区在线看| 老司机免费视频一区二区| 国产丝袜在线精品| 欧美午夜精品一区二区蜜桃| 麻豆精品新av中文字幕| 国产精品人妖ts系列视频| 91黄色激情网站| 国内精品嫩模私拍在线| 亚洲视频免费在线观看| 日韩午夜激情av| 99国产精品久久久久久久久久久 | 久久er99精品| 日韩久久一区二区| 日韩欧美精品三级| 99久久er热在这里只有精品15| 午夜成人免费电影| 日本一区二区免费在线| 欧美另类变人与禽xxxxx| 国产成人aaa| 青娱乐精品视频| 亚洲视频在线一区观看| 欧美成人精品二区三区99精品| 色综合天天综合网国产成人综合天| 麻豆一区二区在线| 综合激情网...| 亚洲精品在线三区| 欧美日韩一区高清| 91网站黄www| 国产激情精品久久久第一区二区 | 91论坛在线播放| 国产美女精品人人做人人爽| 亚洲aaa精品| **性色生活片久久毛片| 国产亚洲精品7777| 欧美电视剧免费全集观看| 色88888久久久久久影院按摩| 国产一区二区影院| 日韩精品高清不卡| 亚洲一区精品在线| 亚洲婷婷综合色高清在线| 久久精品欧美日韩精品| 欧美成人vr18sexvr| 91精品久久久久久蜜臀| 在线观看日韩国产| 91在线观看高清| 成人国产一区二区三区精品| 国产激情精品久久久第一区二区| 热久久一区二区| 三级亚洲高清视频| 五月激情丁香一区二区三区| 亚洲成人动漫在线免费观看| 一区二区三区精品视频| 中文字幕中文在线不卡住| 国产欧美一区二区三区鸳鸯浴| 欧美变态tickling挠脚心| 91精品视频网| 日韩精品一区二区三区在线播放 | 国产麻豆成人精品| 精品一区二区久久| 久久99精品久久久久久国产越南| 日本女人一区二区三区| 日本午夜一区二区| 久久国产欧美日韩精品| 久久精品av麻豆的观看方式| 天堂成人国产精品一区| 午夜a成v人精品| 麻豆91在线播放| 国产最新精品精品你懂的| 国产一区在线不卡| 国产乱国产乱300精品| 成人黄色片在线观看| 一本久道中文字幕精品亚洲嫩| 色噜噜狠狠成人网p站| 日韩视频不卡中文| 久久久久亚洲综合| 中文av字幕一区| 亚洲裸体xxx| 视频一区视频二区中文字幕| 麻豆91精品视频| 丁香桃色午夜亚洲一区二区三区| 成人免费毛片高清视频| 91黄色激情网站| 日韩一级欧美一级| 久久久99精品免费观看| 亚洲激情在线播放| 蜜桃视频第一区免费观看| 国产成人精品免费看| 日本精品视频一区二区| 欧美一区二区私人影院日本| 国产欧美日韩在线视频| 伊人色综合久久天天| 蜜臀精品一区二区三区在线观看| 激情亚洲综合在线| 一本大道综合伊人精品热热| 欧美日韩一区精品| 中文字幕乱码一区二区免费| 亚洲成人av一区二区| 国产高清不卡一区二区| 欧美视频在线一区二区三区 | 国产在线看一区| 91久久精品国产91性色tv| 精品国产乱码久久久久久牛牛| 日韩一区在线看| 狠狠久久亚洲欧美| 91精品1区2区| 国产欧美日韩综合精品一区二区 | 国产一区二区免费视频| 欧美色成人综合| 中文字幕一区二区三区在线不卡| 蜜臀国产一区二区三区在线播放 | 图片区小说区区亚洲影院| 9i看片成人免费高清| 日韩美一区二区三区| 一区二区三区资源| 成人爱爱电影网址| 精品国产91九色蝌蚪| 偷拍亚洲欧洲综合| 99在线精品视频| 欧美韩国一区二区| 久久国产福利国产秒拍| 欧美日韩国产高清一区二区 | 欧美色网一区二区| 奇米综合一区二区三区精品视频 | 国产精品1区2区3区| 7777精品伊人久久久大香线蕉完整版| 中文字幕一区不卡| 粗大黑人巨茎大战欧美成人| 日韩欧美色综合| 日韩va欧美va亚洲va久久| 色丁香久综合在线久综合在线观看| 久久女同性恋中文字幕| 极品少妇一区二区| 日韩精品一区国产麻豆| 日韩精品久久久久久| 9191成人精品久久| 亚洲地区一二三色| 欧美精品久久99久久在免费线 | 精品国产一区二区在线观看| 日韩精品色哟哟| 日韩亚洲电影在线| 蜜臀av性久久久久蜜臀aⅴ流畅| 欧美日韩中文精品| 手机精品视频在线观看| 3atv一区二区三区| 六月丁香综合在线视频| 精品欧美乱码久久久久久1区2区|