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

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

?? gtkanal.c

?? JPEG-MPEG編解碼技術(shù)書集的代碼
?? C
?? 第 1 頁 / 共 4 頁
字號:
}

static void plotclick( GtkWidget *widget, gpointer   data )
{   analyze(); }




static int frameadv1(GtkWidget *widget, gpointer   data )
{
  int i;
  if (idle_keepgoing ){
    if (idle_back) {
      /* frame displayed is the old frame.  to advance, just swap in new frame */
      idle_back--;
      pplot = &Pinfo[READ_AHEAD+idle_back];
    }else{
      /* advance the frame by reading in a new frame */
      pplot = &Pinfo[READ_AHEAD];
      if (mp3done) { 
	/* dont try to read any more frames, and quit if "finish MP3" was selected */
	/*	if (idle_finish) gtk_main_quit(); */
	idle_count_max=0; 
        idle_end=0;
      } else {
	/* read in the next frame */
	for (i=NUMPINFO-1 ; i>0 ; i--)
	  memcpy(&Pinfo[i],&Pinfo[i-1],sizeof(plotting_data));
	pinfo = &Pinfo[0];
	pinfo->num_samples = gtkmakeframe();
	if (pinfo->num_samples==0 && gtkinfo.totalframes==0) 
	  /* allow an extra frame to flush decoder buffers */
	  gtkinfo.totalframes = pinfo->frameNum +2;

	if (pinfo->sampfreq) 
	  pinfo->frametime = (pinfo->frameNum)*1152.0/pinfo->sampfreq;
	else pinfo->frametime=0;

        /* eof? 
	if (!pinfo->num_samples) if (idle_finish) gtk_main_quit();
	*/

	pinfo->totbits = 0;
	{ int gr,ch;
	for (gr = 0 ; gr < 2 ; gr ++) 
	  for (ch = 0 ; ch < 2 ; ch ++) {
	    gtkinfo.totshort += (pinfo->mpg123blocktype[gr][ch]==2);
	    gtkinfo.totmix  += !(pinfo->mixed[gr][ch]==0);
	    pinfo->totbits += pinfo->mainbits[gr][ch];
	  }
	}
	if (pinfo->frameNum > 0) /* start averaging at second frame */
	  gtkinfo.avebits = (gtkinfo.avebits*((pinfo->frameNum)-1)
	  + pinfo->totbits ) /(pinfo->frameNum);

	gtkinfo.maxbits=MAX(gtkinfo.maxbits,pinfo->totbits);
	gtkinfo.totemph += !(pinfo->emph==0);
	gtkinfo.totms   += !(pinfo->ms_stereo==0);
	gtkinfo.totis   += !(pinfo->i_stereo==0);

	if (gtkinfo.totalframes>0)
	  if (pplot->frameNum >= gtkinfo.totalframes-1) mp3done=1;
      }
    }

    idle_count++;
    if (gtkinfo.pupdate) plot_frame();
    update_progress();
    if ((idle_count>=idle_count_max) && (! idle_end)) analyze();
  }
  return 1;
}


static void frameadv( GtkWidget *widget, gpointer   data )
{
    int adv;

    if (!strcmp((char *) data,"-1")) {
      /* ignore if we've already gone back as far as possible */
      if (pplot->frameNum==0 || (idle_back==NUMBACK)) return;  
      idle_back++;
      pplot = &Pinfo[READ_AHEAD+idle_back];
      analyze();
      return;
    }


    adv = 1;
    if (!strcmp((char *) data,"1")) adv = 1;
    if (!strcmp((char *) data,"10")) adv = 10;
    if (!strcmp((char *) data,"100")) adv = 100;
    if (!strcmp((char *) data,"finish")) idle_end = 1;


    if (idle_keepgoing) {
      /* already running - que up additional frame advance requests */
      idle_count_max += adv; 
    }
    else {
      /* turn on idleing */
      idle_count_max = adv;
      idle_count = 0;
      idle_keepgoing = 1;
    }
}




/* another callback */
static void delete_event( GtkWidget *widget,
                   GdkEvent  *event,
		   gpointer   data )
{
    gtk_main_quit ();
}







static void channel_option (GtkWidget *widget, gpointer data)
{
  long option;
  option = (long) data;
  switch (option) {
  case 1:
    gtkinfo.msflag=0;
    gtkinfo.chflag=0; 
    break;
  case 2:
    gtkinfo.msflag=0;
    gtkinfo.chflag=1; 
    break;
  case 3:
    gtkinfo.msflag=1;
    gtkinfo.chflag=0; 
    break;
  case 4:
    gtkinfo.msflag=1;
    gtkinfo.chflag=1; 
  }
  analyze();
}
static void spec_option (GtkWidget *widget, gpointer data)
{
  long option;
  option = (long) data;
  switch (option) {
  case 1:
    gtkinfo.kbflag=0;
    break;
  case 2:
    gtkinfo.kbflag=1;
    break;
  case 3:
    gtkinfo.flag123=0;
    break;
  case 4:
    gtkinfo.flag123=1;
    break;
  case 5:
    gtkinfo.pupdate=1;
    break;
  case 6:
    gtkinfo.pupdate=0;
    break;
  case 7:
    gtkinfo.sfblines = !gtkinfo.sfblines;
    break;
  }
  analyze();
}

static gint key_press_event (GtkWidget *widget, GdkEventKey *event)
{
  if (event->keyval == '1') {
    subblock_draw[0] = 1;
    subblock_draw[1] = 0;
    subblock_draw[2] = 0;
    analyze();
  }
  else if (event->keyval == '2') {
    subblock_draw[0] = 0;
    subblock_draw[1] = 1;
    subblock_draw[2] = 0;
    analyze();
  }
  else if (event->keyval == '3') {
    subblock_draw[0] = 0;
    subblock_draw[1] = 0;
    subblock_draw[2] = 1;
    analyze();
  }
  else if (event->keyval == '0') {
    subblock_draw[0] = 1;
    subblock_draw[1] = 1;
    subblock_draw[2] = 1;
    analyze();
  }
  /* analyze(); */  /* dont redraw entire window for every key! */
  return 0;
}



static void text_window (GtkWidget *widget, gpointer data)
{
  long option;
  GtkWidget *hbox,*vbox,*button,*box;
  GtkWidget *textwindow,*vscrollbar;
  char text[80];

  option = (long) data;
  
  textwindow = gtk_window_new(GTK_WINDOW_DIALOG);
  gtk_signal_connect_object (GTK_OBJECT (window), "delete_event",
		      GTK_SIGNAL_FUNC(gtk_widget_destroy),
		      GTK_OBJECT (textwindow));

  gtk_container_set_border_width (GTK_CONTAINER (textwindow), 0);
  vbox = gtk_vbox_new(FALSE,0);
  hbox = gtk_hbox_new(FALSE,0);

  button = gtk_button_new_with_label ("close");
  gtk_signal_connect_object (GTK_OBJECT (button), "clicked",
			     GTK_SIGNAL_FUNC(gtk_widget_destroy),
			     GTK_OBJECT (textwindow));

  box = gtk_text_new (NULL, NULL);
  gtk_text_set_editable (GTK_TEXT (box), FALSE);
  vscrollbar = gtk_vscrollbar_new (GTK_TEXT(box)->vadj);


  switch (option) {
  case 0: 
    gtk_window_set_title (GTK_WINDOW (textwindow), "Documentation");
    gtk_widget_set_usize(box,450,500); 
    gtk_text_set_word_wrap(GTK_TEXT(box),TRUE);
    gtk_text_insert(GTK_TEXT(box),NULL,NULL,NULL,
		"Frame header information: "\
		"First the bitrate, sampling frequency and mono, stereo or jstereo "\
		"indicators are displayed .  If the bitstream is jstereo, then mid/side "\
		"stereo or intensity stereo may be on (indicated in red).  If "\
		"de-emphasis is used, this is also indicated in red.  The mdb value is "\
		"main_data_begin.  The encoded data starts this many bytes *before* the "\
		"frame header.  A large value of mdb means the bitstream has saved some "\
		"bits into the reservoir, which it may allocate for some future frame. "\
		"The two numbers after mdb are the size (in bits) used to encode the "\
		"MDCT coefficients for this frame, followed byt the size of the bit "\
		"resevoir before encoding this frame.  The maximum frame size and a "\
		"running average are given in the Stats pull down menu.  A large "\
		"maximum frame size indicates the bitstream has made use of the bit "\
		"reservoir. \n\n",-1);

    gtk_text_insert(GTK_TEXT(box),NULL,NULL,NULL,
		"PCM data (top graph): "\
		"The PCM data is plotted in black.  The layer3 frame is divided into 2 "\
		"granules of 576 samples (marked with yellow vertical lines).  In the "\
		"case of normal, start and stop blocks, the MDCT coefficients for each "\
		"granule are computed using a 1152 sample window centered over the "\
		"granule.  In the case of short blocks, the granule is further divided "\
		"into 3 blocks of 192 samples (also marked with yellow vertical lines)."\
		"The MDCT coefficients for these blocks are computed using 384 sample "\
		"windows centered over the 192 sample window.  (This info not available "\
		"when analyzing .mp3 files.)  For the psycho-acoustic model, a windowed "\
		"FFT is computed for each granule.  The range of these windows "\
		"is denoted by the blue and green bars.\n\n",-1);

		gtk_text_insert(GTK_TEXT(box),NULL,NULL,NULL,
		"PCM re-synthesis data (second graph): "\
		"Same as the PCM window described above.  The data displayed is the "\
		"result of encoding and then decoding the original sample. \n\n",-1);

		gtk_text_insert(GTK_TEXT(box),NULL,NULL,NULL,
		"MDCT windows: "\
		"Shows the energy in the MDCT spectrum for granule 0 (left window) "\
		"and granule 1 (right window).  The text also shows the blocktype "\
		"used, the number of bits used to encode the coefficients and the "\
		"number of extra bits allocated from the reservoir.  The MDCT pull down "\
		"window will toggle between the original unquantized MDCT coefficients "\
		"and the compressed (quantized) coefficients.\n\n",-1); 
 
		gtk_text_insert(GTK_TEXT(box),NULL,NULL,NULL,
		"FFT window: "\
		"The gray bars show the energy in the FFT spectrum used by the "\
		"psycho-acoustic model.  Granule 0 is in the left window, granule 1 in "\
		"the right window.  The green and blue bars show how much distortion is "\
		"allowable, as computed by the psycho-acoustic model. The red bars show "\
		"the actual distortion after encoding.  There is one FFT for each "\
		"granule, computed with a 1024 Hann window centered over the "\
		"appropriate granule.  (the range of this 1024 sample window is shown "\
		"by the blue and green bars in the PCM data window).  The Spectrum pull "\
		"down window will toggle between showing the energy in equally spaced "\
		"frequency domain and the scale factor bands used by layer3.  Finally, "\
		"the perceptual entropy, total energy and number of scalefactor bands "\
		"with audible distortion is shown.  (This info not available when "\
		"analyzing .mp3 files.)",-1);

    break;
  case 1:
	/* Set the about box information */
    gtk_window_set_title (GTK_WINDOW (textwindow), "About");
    gtk_widget_set_usize(box,350,260);

    sprintf(text,"LAME version %s \nwww.sulaco.org/mp3\n\n",get_lame_version());
    gtk_text_insert(GTK_TEXT(box),NULL,NULL,NULL,text,-1);

    sprintf(text,"psycho-acoustic model:  GPSYCHO version %s\n",get_psy_version());
    gtk_text_insert(GTK_TEXT(box),NULL,NULL,NULL,text,-1);
    
    sprintf(text,"frame analyzer: MP3x version %s\n\n",get_mp3x_version());
    gtk_text_insert(GTK_TEXT(box),NULL,NULL,NULL,text,-1);
    
    gtk_text_insert(GTK_TEXT(box),NULL,NULL,NULL,
		    "decoder:  mpg123/mpglib  .59q  \nMichael Hipp (www.mpg123.de)\n\n",-1);
    
    gtk_text_insert(GTK_TEXT(box),NULL,NULL,NULL,
    "Encoder, decoder & psy-models based on ISO\ndemonstration source. ",-1);
    break;

  case 2:
    gtk_window_set_title (GTK_WINDOW (textwindow), "Statistics");
    gtk_widget_set_usize(box,350,260);
    sprintf(text,"frames processed so far: %i \n",Pinfo[0].frameNum+1);
    gtk_text_insert(GTK_TEXT(box),NULL,NULL,NULL,text,-1);
    sprintf(text,"granules processed so far: %i \n\n",4*(Pinfo[0].frameNum+1));
    gtk_text_insert(GTK_TEXT(box),NULL,NULL,NULL,text,-1);
    sprintf(text,"mean bits/frame (approximate): %i\n",
	    gtkinfo.approxbits);
    gtk_text_insert(GTK_TEXT(box),NULL,NULL,NULL,text,-1);
    sprintf(text,"mean bits/frame (from LAME): %i\n",
	    4*Pinfo[0].mean_bits);
    gtk_text_insert(GTK_TEXT(box),NULL,NULL,NULL,text,-1);
    sprintf(text,"bitsize of largest frame: %i \n",gtkinfo.maxbits);
    gtk_text_insert(GTK_TEXT(box),NULL,NULL,NULL,text,-1);
    sprintf(text,"average bits/frame: %3.1f \n\n",gtkinfo.avebits);
    gtk_text_insert(GTK_TEXT(box),NULL,NULL,NULL,text,-1);
    sprintf(text,"ms_stereo frames: %i \n",gtkinfo.totms);
    gtk_text_insert(GTK_TEXT(box),NULL,NULL,NULL,text,-1);
    sprintf(text,"i_stereo frames: %i \n",gtkinfo.totis);
    gtk_text_insert(GTK_TEXT(box),NULL,NULL,NULL,text,-1);
    sprintf(text,"de-emphasis frames: %i \n",gtkinfo.totemph);
    gtk_text_insert(GTK_TEXT(box),NULL,NULL,NULL,text,-1);
    sprintf(text,"short block granules: %i \n",gtkinfo.totshort);
    gtk_text_insert(GTK_TEXT(box),NULL,NULL,NULL,text,-1);
    sprintf(text,"mixed block granules: %i \n",gtkinfo.totmix);
    gtk_text_insert(GTK_TEXT(box),NULL,NULL,NULL,text,-1);
    break;
  }

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人av第一页| 国产剧情一区二区| 久久九九99视频| 欧美性一二三区| 国产成人在线色| 午夜电影一区二区| 国产精品妹子av| 久久久美女艺术照精彩视频福利播放| 日本电影亚洲天堂一区| 国产麻豆成人传媒免费观看| 五月综合激情婷婷六月色窝| 日韩一区欧美小说| 欧美国产1区2区| 久久综合色婷婷| 91精品国产丝袜白色高跟鞋| 日本韩国精品一区二区在线观看| 国产成人在线网站| 精品一区二区三区的国产在线播放| 一区二区三区资源| 国产精品电影院| 国产欧美精品在线观看| 久久久五月婷婷| 欧美tk—视频vk| 欧美va亚洲va香蕉在线| 欧美一区二区三区不卡| 欧美日韩久久久| 日本乱人伦一区| 91无套直看片红桃| av中文字幕亚洲| 成人黄色av电影| 成人aaaa免费全部观看| 国产成人精品一区二区三区四区| 久久99精品视频| 看电视剧不卡顿的网站| 秋霞av亚洲一区二区三| 免费精品99久久国产综合精品| 一区二区三区毛片| 亚洲国产精品久久久男人的天堂 | 国产999精品久久| 激情综合亚洲精品| 激情五月激情综合网| 久久99久久精品| 国产精品538一区二区在线| 国模娜娜一区二区三区| 国产激情视频一区二区三区欧美| 国产精品一区二区视频| 国产成人精品午夜视频免费| 国产91精品久久久久久久网曝门| 国产东北露脸精品视频| 高清视频一区二区| 成人黄页在线观看| 色哟哟在线观看一区二区三区| 色哟哟一区二区在线观看| 欧美视频三区在线播放| 欧美一区二区高清| 久久久综合激的五月天| 国产精品无码永久免费888| 专区另类欧美日韩| 亚洲一二三四区| 蜜臀99久久精品久久久久久软件| 韩国成人在线视频| av中文字幕一区| 欧美日韩国产高清一区| 欧美成人福利视频| 亚洲国产岛国毛片在线| 亚洲日本韩国一区| 偷拍亚洲欧洲综合| 国产精品中文有码| 日本精品一区二区三区高清 | 欧美一区二区在线免费播放| 26uuu亚洲综合色欧美| 国产精品久久毛片av大全日韩| 亚洲精品国产a| 老汉av免费一区二区三区| 成人va在线观看| 欧美久久久久久久久久| 国产片一区二区| 亚洲国产精品天堂| 国产精品99久久久久久久女警 | 日韩精品一区二区三区swag| 国产精品欧美一区二区三区| 亚洲国产精品天堂| 丁香六月综合激情| 欧美日韩国产在线观看| 国产亚洲成年网址在线观看| 亚洲一区二区高清| 国产精品亚洲午夜一区二区三区 | 天堂一区二区在线| 国产成人精品一区二区三区四区| 欧美日韩在线免费视频| 久久久精品综合| 日韩va亚洲va欧美va久久| av电影在线观看完整版一区二区| 在线电影欧美成精品| 日韩一区在线看| 精品一区二区三区香蕉蜜桃| 日本韩国视频一区二区| 中文无字幕一区二区三区| 日本女人一区二区三区| 99re成人精品视频| 久久日韩粉嫩一区二区三区 | 亚洲精品视频在线观看网站| 国产自产高清不卡| 欧美日韩精品系列| 一区二区中文视频| 国产高清一区日本| 欧美一区二区三区爱爱| 一个色综合av| 99精品国产热久久91蜜凸| 久久奇米777| 全国精品久久少妇| 欧美久久高跟鞋激| 亚洲午夜激情av| 色综合色狠狠综合色| 亚洲国产精品精华液2区45| 精品午夜久久福利影院| 91.麻豆视频| 亚洲国产欧美在线| 91成人免费在线视频| 亚洲天堂久久久久久久| 丁香亚洲综合激情啪啪综合| 欧美精品一区男女天堂| 美女任你摸久久| 91精品国模一区二区三区| 亚洲成人免费电影| 欧美三级蜜桃2在线观看| 亚洲一级二级三级| 欧美视频第二页| 亚洲福中文字幕伊人影院| 91国偷自产一区二区开放时间| 中文字幕五月欧美| 成人h动漫精品一区二| 亚洲欧美自拍偷拍色图| 99视频在线精品| 亚洲三级小视频| 91丨九色丨黑人外教| 亚洲男同性恋视频| 91久久精品一区二区| 亚洲美女淫视频| 欧美做爰猛烈大尺度电影无法无天| 樱花草国产18久久久久| 欧美三级日韩三级| 日本午夜一区二区| wwwwww.欧美系列| 国产成人啪免费观看软件| 日本一二三不卡| 色婷婷综合久久| 亚洲成人激情av| 欧美一级欧美三级| 国产一区二区三区香蕉| 国产精品久久久久一区二区三区 | 欧美日韩aaaaa| 日本亚洲视频在线| 久久久亚洲综合| 国产成人福利片| 亚洲欧美日韩人成在线播放| 欧美在线一区二区三区| 日韩av电影免费观看高清完整版| 欧美大片顶级少妇| www.性欧美| 亚洲一二三四区| 2021中文字幕一区亚洲| av亚洲精华国产精华精华| 一区二区三区精品视频在线| 91精品国产全国免费观看| 国产一区二区三区精品欧美日韩一区二区三区 | 91麻豆免费观看| 午夜影视日本亚洲欧洲精品| 精品噜噜噜噜久久久久久久久试看| 国产精品影视在线观看| 亚洲精品乱码久久久久| 日韩欧美电影在线| 99视频超级精品| 奇米一区二区三区av| 国产精品久久影院| 日韩一区二区三区四区五区六区| 豆国产96在线|亚洲| 亚洲午夜久久久久久久久电影院| 精品日产卡一卡二卡麻豆| av激情成人网| 男人的天堂亚洲一区| 国产精品久久久久久妇女6080| 欧美日韩性生活| 国产白丝网站精品污在线入口| 亚洲成人激情自拍| 欧美国产激情二区三区| 欧美一区二区美女| 99国产精品一区| 国产永久精品大片wwwapp| 亚洲第一会所有码转帖| 国产精品素人视频| 91精品在线观看入口| 色天使久久综合网天天| 国产在线一区二区综合免费视频| 亚洲综合网站在线观看| 国产视频一区二区三区在线观看| 欧美日韩视频专区在线播放| 波多野结衣的一区二区三区| 激情综合色播五月| 日日夜夜精品视频天天综合网|