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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? puthdr.c

?? MPEG2解編碼程序源代碼
?? C
字號:
/* puthdr.c, generation of headers                                          */

/* 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 <math.h>
#include "config.h"
#include "global.h"

/* private prototypes */
static int frametotc _ANSI_ARGS_((int frame));

/* generate sequence header (6.2.2.1, 6.3.3)
 *
 * matrix download not implemented
 */
void putseqhdr()
{
  int i;

  alignbits();
  putbits(SEQ_START_CODE,32); /* sequence_header_code */
  putbits(horizontal_size,12); /* horizontal_size_value */
  putbits(vertical_size,12); /* vertical_size_value */
  putbits(aspectratio,4); /* aspect_ratio_information */
  putbits(frame_rate_code,4); /* frame_rate_code */
  putbits((int)ceil(bit_rate/400.0),18); /* bit_rate_value */
  putbits(1,1); /* marker_bit */
  putbits(vbv_buffer_size,10); /* vbv_buffer_size_value */
  putbits(constrparms,1); /* constrained_parameters_flag */

  putbits(load_iquant,1); /* load_intra_quantizer_matrix */
  if (load_iquant)
    for (i=0; i<64; i++)  /* matrices are always downloaded in zig-zag order */
      putbits(intra_q[zig_zag_scan[i]],8); /* intra_quantizer_matrix */

  putbits(load_niquant,1); /* load_non_intra_quantizer_matrix */
  if (load_niquant)
    for (i=0; i<64; i++)
      putbits(inter_q[zig_zag_scan[i]],8); /* non_intra_quantizer_matrix */
}

/* generate sequence extension (6.2.2.3, 6.3.5) header (MPEG-2 only) */
void putseqext()
{
  alignbits();
  putbits(EXT_START_CODE,32); /* extension_start_code */
  putbits(SEQ_ID,4); /* extension_start_code_identifier */
  putbits((profile<<4)|level,8); /* profile_and_level_indication */
  putbits(prog_seq,1); /* progressive sequence */
  putbits(chroma_format,2); /* chroma_format */
  putbits(horizontal_size>>12,2); /* horizontal_size_extension */
  putbits(vertical_size>>12,2); /* vertical_size_extension */
  putbits(((int)ceil(bit_rate/400.0))>>18,12); /* bit_rate_extension */
  putbits(1,1); /* marker_bit */
  putbits(vbv_buffer_size>>10,8); /* vbv_buffer_size_extension */
  putbits(0,1); /* low_delay  -- currently not implemented */
  putbits(0,2); /* frame_rate_extension_n */
  putbits(0,5); /* frame_rate_extension_d */
}

/* generate sequence display extension (6.2.2.4, 6.3.6)
 *
 * content not yet user setable
 */
void putseqdispext()
{
  alignbits();
  putbits(EXT_START_CODE,32); /* extension_start_code */
  putbits(DISP_ID,4); /* extension_start_code_identifier */
  putbits(video_format,3); /* video_format */
  putbits(1,1); /* colour_description */
  putbits(color_primaries,8); /* colour_primaries */
  putbits(transfer_characteristics,8); /* transfer_characteristics */
  putbits(matrix_coefficients,8); /* matrix_coefficients */
  putbits(display_horizontal_size,14); /* display_horizontal_size */
  putbits(1,1); /* marker_bit */
  putbits(display_vertical_size,14); /* display_vertical_size */
}

/* output a zero terminated string as user data (6.2.2.2.2, 6.3.4.1)
 *
 * string must not emulate start codes
 */
void putuserdata(userdata)
char *userdata;
{
  alignbits();
  putbits(USER_START_CODE,32); /* user_data_start_code */
  while (*userdata)
    putbits(*userdata++,8);
}

/* generate group of pictures header (6.2.2.6, 6.3.9)
 *
 * uses tc0 (timecode of first frame) and frame0 (number of first frame)
 */
void putgophdr(frame,closed_gop)
int frame,closed_gop;
{
  int tc;

  alignbits();
  putbits(GOP_START_CODE,32); /* group_start_code */
  tc = frametotc(tc0+frame);
  putbits(tc,25); /* time_code */
  putbits(closed_gop,1); /* closed_gop */
  putbits(0,1); /* broken_link */
}

/* convert frame number to time_code
 *
 * drop_frame not implemented
 */
static int frametotc(frame)
int frame;
{
  int fps, pict, sec, minute, hour, tc;

  fps = (int)(frame_rate+0.5);
  pict = frame%fps;
  frame = (frame-pict)/fps;
  sec = frame%60;
  frame = (frame-sec)/60;
  minute = frame%60;
  frame = (frame-minute)/60;
  hour = frame%24;
  tc = (hour<<19) | (minute<<13) | (1<<12) | (sec<<6) | pict;

  return tc;
}

/* generate picture header (6.2.3, 6.3.10) */
void putpicthdr()
{
  alignbits();
  putbits(PICTURE_START_CODE,32); /* picture_start_code */
  calc_vbv_delay();
  putbits(temp_ref,10); /* temporal_reference */
  putbits(pict_type,3); /* picture_coding_type */
  putbits(vbv_delay,16); /* vbv_delay */

  if (pict_type==P_TYPE || pict_type==B_TYPE)
  {
    putbits(0,1); /* full_pel_forward_vector */
    if (mpeg1)
      putbits(forw_hor_f_code,3);
    else
      putbits(7,3); /* forward_f_code */
  }

  if (pict_type==B_TYPE)
  {
    putbits(0,1); /* full_pel_backward_vector */
    if (mpeg1)
      putbits(back_hor_f_code,3);
    else
      putbits(7,3); /* backward_f_code */
  }

  putbits(0,1); /* extra_bit_picture */
}

/* generate picture coding extension (6.2.3.1, 6.3.11)
 *
 * composite display information (v_axis etc.) not implemented
 */
void putpictcodext()
{
  alignbits();
  putbits(EXT_START_CODE,32); /* extension_start_code */
  putbits(CODING_ID,4); /* extension_start_code_identifier */
  putbits(forw_hor_f_code,4); /* forward_horizontal_f_code */
  putbits(forw_vert_f_code,4); /* forward_vertical_f_code */
  putbits(back_hor_f_code,4); /* backward_horizontal_f_code */
  putbits(back_vert_f_code,4); /* backward_vertical_f_code */
  putbits(dc_prec,2); /* intra_dc_precision */
  putbits(pict_struct,2); /* picture_structure */
  putbits((pict_struct==FRAME_PICTURE)?topfirst:0,1); /* top_field_first */
  putbits(frame_pred_dct,1); /* frame_pred_frame_dct */
  putbits(0,1); /* concealment_motion_vectors  -- currently not implemented */
  putbits(q_scale_type,1); /* q_scale_type */
  putbits(intravlc,1); /* intra_vlc_format */
  putbits(altscan,1); /* alternate_scan */
  putbits(repeatfirst,1); /* repeat_first_field */
  putbits(prog_frame,1); /* chroma_420_type */
  putbits(prog_frame,1); /* progressive_frame */
  putbits(0,1); /* composite_display_flag */
}

/* generate sequence_end_code (6.2.2) */
void putseqend()
{
  alignbits();
  putbits(SEQ_END_CODE,32);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91欧美一区二区| 亚洲精品视频免费看| 免费人成在线不卡| 日韩一区二区电影| 久久99这里只有精品| 日韩欧美国产系列| 国产毛片精品视频| 亚洲欧洲另类国产综合| 一本色道亚洲精品aⅴ| 亚洲精品午夜久久久| 欧美午夜精品免费| 久久精品国产久精国产| 精品国产百合女同互慰| 成人午夜激情片| 亚洲精品成人悠悠色影视| 在线精品视频免费播放| 麻豆成人91精品二区三区| 久久精品亚洲精品国产欧美 | 久久亚洲私人国产精品va媚药| 麻豆极品一区二区三区| 中文字幕欧美三区| 欧美色精品天天在线观看视频| 日韩黄色片在线观看| 国产视频一区二区在线| 在线免费精品视频| 精品亚洲成a人| 亚洲欧洲日产国码二区| 欧美一级黄色片| 成人福利视频网站| 日韩高清一区二区| 国产精品视频在线看| 欧美日韩高清一区二区三区| 国产乱色国产精品免费视频| 一区二区在线免费| 久久久亚洲国产美女国产盗摄| 91精品1区2区| 国内精品第一页| 亚洲高清免费观看高清完整版在线观看| 欧美电影免费观看完整版| 成人国产精品视频| 精品一区二区三区在线观看 | 精品女同一区二区| 欧美伊人久久久久久午夜久久久久| 久久国产尿小便嘘嘘| 亚洲一区二区精品3399| 亚洲国产高清不卡| 日韩欧美美女一区二区三区| 色婷婷亚洲精品| 国产成人精品免费| 日韩电影在线一区二区| 亚洲激情第一区| 国产日韩三级在线| 精品久久久三级丝袜| 欧美日韩一区二区在线观看| 国产不卡在线播放| 国产一区二区日韩精品| 欧美aaaaa成人免费观看视频| 樱花影视一区二区| 亚洲人成人一区二区在线观看| xfplay精品久久| 欧美一级二级三级蜜桃| 欧美三级在线播放| 91浏览器在线视频| 色综合网色综合| aa级大片欧美| 成人激情小说乱人伦| 国产精品中文欧美| 韩国精品一区二区| 美国十次综合导航| 日韩电影在线一区二区| 日韩高清在线一区| 无吗不卡中文字幕| 日韩精品国产精品| 日本成人在线网站| 久久精品国产一区二区三区免费看 | 欧美卡1卡2卡| 欧美日韩精品三区| 欧美三级三级三级| 欧美日韩国产一级| 91超碰这里只有精品国产| 欧美情侣在线播放| 制服丝袜亚洲色图| 日韩精品一区二区三区视频播放 | 91精品欧美久久久久久动漫| 欧美日韩免费在线视频| 欧美精品在线观看一区二区| 欧美精品777| 日韩精品中文字幕一区二区三区| 制服丝袜亚洲播放| 久久这里只精品最新地址| 久久你懂得1024| 国产欧美视频一区二区三区| 欧美激情综合在线| 亚洲女性喷水在线观看一区| 亚洲另类春色国产| 五月激情综合色| 国内久久精品视频| 成人伦理片在线| 欧美最猛黑人xxxxx猛交| 欧美日韩国产小视频在线观看| 欧美一区二区成人| 国产日韩欧美综合在线| 亚洲精品国产精品乱码不99| 午夜精品久久久久久久| 久久国产剧场电影| 99精品久久99久久久久| 欧美性受xxxx黑人xyx性爽| 91精品欧美久久久久久动漫| 久久蜜桃一区二区| 亚洲欧美另类综合偷拍| 久草中文综合在线| 91丨九色丨黑人外教| 日韩一区二区在线观看视频播放| 国产视频一区二区三区在线观看| 亚洲男帅同性gay1069| 日本视频一区二区三区| 成人午夜大片免费观看| 欧美精品视频www在线观看| 国产日产欧美一区| 亚洲福利一二三区| 成人动漫中文字幕| 欧美一区二区三区公司| 中文字幕中文字幕一区二区| 日韩中文字幕麻豆| 91在线视频在线| 欧美不卡一区二区| 亚洲综合在线观看视频| 黄色资源网久久资源365| 欧美亚洲国产一区二区三区 | 亚洲美女偷拍久久| 视频在线观看国产精品| 国产精品资源站在线| 在线成人高清不卡| 国产日韩高清在线| 婷婷夜色潮精品综合在线| 国产乱理伦片在线观看夜一区| 成人免费av资源| 欧美一区三区二区| 国产精品乱码人人做人人爱| 亚洲成av人在线观看| 亚洲成人福利片| 色域天天综合网| 26uuu亚洲婷婷狠狠天堂| 悠悠色在线精品| 国产精品99久久久久久久vr | 老司机精品视频一区二区三区| 国产一区二区福利视频| 欧美最猛性xxxxx直播| 久久影音资源网| 日韩av电影天堂| 国产成人精品免费视频网站| 精品乱人伦小说| 亚洲大片精品永久免费| 风流少妇一区二区| 精品嫩草影院久久| 麻豆精品一区二区| 欧美日韩中文一区| 一区二区久久久久| 成人av网在线| 亚洲精品一区二区三区香蕉| 亚洲国产精品久久久男人的天堂| 国产suv精品一区二区883| 91精品欧美一区二区三区综合在| 一区二区三区毛片| 在线精品视频一区二区| 日韩美女久久久| 99re成人精品视频| 国产日韩欧美不卡| 不卡一区二区中文字幕| 国产日韩精品一区二区三区| 久久国产三级精品| 日韩欧美色综合网站| 国产一区999| 精品福利二区三区| 蜜桃视频在线观看一区| 91在线国产观看| 亚洲精品亚洲人成人网| 91小视频免费观看| 亚洲欧美日韩久久| 91亚洲国产成人精品一区二三| 夜夜操天天操亚洲| 在线免费精品视频| 亚洲成av人影院| 欧美视频三区在线播放| 天天色天天操综合| 91精品欧美久久久久久动漫| 肉丝袜脚交视频一区二区| 4hu四虎永久在线影院成人| 美女视频第一区二区三区免费观看网站| 欧美日韩精品系列| 蜜臀av亚洲一区中文字幕| 日韩欧美国产1| 大胆亚洲人体视频| 亚洲视频中文字幕| 欧美日韩三级视频| 日韩精品电影在线观看| 国产视频一区在线播放| av中文字幕在线不卡| 亚洲精品日韩一| 欧美体内she精高潮|