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

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

?? store.c

?? MPEG2解編碼程序源代碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* store.c, picture output routines                                         */

/* 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>
#include <fcntl.h>

#include "config.h"
#include "global.h"

/* private prototypes */
static void store_one _ANSI_ARGS_((char *outname, unsigned char *src[],
  int offset, int incr, int height));
static void store_yuv _ANSI_ARGS_((char *outname, unsigned char *src[],
  int offset, int incr, int height));
static void store_sif _ANSI_ARGS_((char *outname, unsigned char *src[],
  int offset, int incr, int height));
static void store_ppm_tga _ANSI_ARGS_((char *outname, unsigned char *src[],
  int offset, int incr, int height, int tgaflag));
static void store_yuv1 _ANSI_ARGS_((char *name, unsigned char *src,
  int offset, int incr, int width, int height));
static void putbyte _ANSI_ARGS_((int c));
static void putword _ANSI_ARGS_((int w));
static void conv422to444 _ANSI_ARGS_((unsigned char *src, unsigned char *dst));
static void conv420to422 _ANSI_ARGS_((unsigned char *src, unsigned char *dst));

#define OBFRSIZE 4096
static unsigned char obfr[OBFRSIZE];
static unsigned char *optr;
static int outfile;

/*
 * store a picture as either one frame or two fields
 */
void Write_Frame(src,frame)
unsigned char *src[];
int frame;
{
  char outname[FILENAME_LENGTH];

  if (progressive_sequence || progressive_frame || Frame_Store_Flag)
  {
    /* progressive */
    sprintf(outname,Output_Picture_Filename,frame,'f');
    store_one(outname,src,0,Coded_Picture_Width,vertical_size);
  }
  else
  {
    /* interlaced */
    sprintf(outname,Output_Picture_Filename,frame,'a');
    store_one(outname,src,0,Coded_Picture_Width<<1,vertical_size>>1);

    sprintf(outname,Output_Picture_Filename,frame,'b');
    store_one(outname,src,
      Coded_Picture_Width,Coded_Picture_Width<<1,vertical_size>>1);
  }
}

/*
 * store one frame or one field
 */
static void store_one(outname,src,offset,incr,height)
char *outname;
unsigned char *src[];
int offset, incr, height;
{
  switch (Output_Type)
  {
  case T_YUV:
    store_yuv(outname,src,offset,incr,height);
    break;
  case T_SIF:
    store_sif(outname,src,offset,incr,height);
    break;
  case T_TGA:
    store_ppm_tga(outname,src,offset,incr,height,1);
    break;
  case T_PPM:
    store_ppm_tga(outname,src,offset,incr,height,0);
    break;
#ifdef DISPLAY
  case T_X11:
    dither(src);
    break;
#endif
  default:
    break;
  }
}

/* separate headerless files for y, u and v */
static void store_yuv(outname,src,offset,incr,height)
char *outname;
unsigned char *src[];
int offset,incr,height;
{
  int hsize;
  char tmpname[FILENAME_LENGTH];

  hsize = horizontal_size;

  sprintf(tmpname,"%s.Y",outname);
  store_yuv1(tmpname,src[0],offset,incr,hsize,height);

  if (chroma_format!=CHROMA444)
  {
    offset>>=1; incr>>=1; hsize>>=1;
  }

  if (chroma_format==CHROMA420)
  {
    height>>=1;
  }

  sprintf(tmpname,"%s.U",outname);
  store_yuv1(tmpname,src[1],offset,incr,hsize,height);

  sprintf(tmpname,"%s.V",outname);
  store_yuv1(tmpname,src[2],offset,incr,hsize,height);
}

/* auxiliary routine */
static void store_yuv1(name,src,offset,incr,width,height)
char *name;
unsigned char *src;
int offset,incr,width,height;
{
  int i, j;
  unsigned char *p;

  if (!Quiet_Flag)
    fprintf(stderr,"saving %s\n",name);

  if ((outfile = open(name,O_CREAT|O_TRUNC|O_WRONLY|O_BINARY,0666))==-1)
  {
    sprintf(Error_Text,"Couldn't create %s\n",name);
    Error(Error_Text);
  }

  optr=obfr;

  for (i=0; i<height; i++)
  {
    p = src + offset + incr*i;
    for (j=0; j<width; j++)
      putbyte(*p++);
  }

  if (optr!=obfr)
    write(outfile,obfr,optr-obfr);

  close(outfile);
}

/*
 * store as headerless file in U,Y,V,Y format
 */
static void store_sif (outname,src,offset,incr,height)
char *outname;
unsigned char *src[];
int offset, incr, height;
{
  int i,j;
  unsigned char *py, *pu, *pv;
  static unsigned char *u422, *v422;

  if (chroma_format==CHROMA444)
    Error("4:4:4 not supported for SIF format");

  if (chroma_format==CHROMA422)
  {
    u422 = src[1];
    v422 = src[2];
  }
  else
  {
    if (!u422)
    {
      if (!(u422 = (unsigned char *)malloc((Coded_Picture_Width>>1)
                                           *Coded_Picture_Height)))
        Error("malloc failed");
      if (!(v422 = (unsigned char *)malloc((Coded_Picture_Width>>1)
                                           *Coded_Picture_Height)))
        Error("malloc failed");
    }
  
    conv420to422(src[1],u422);
    conv420to422(src[2],v422);
  }

  strcat(outname,".SIF");

  if (!Quiet_Flag)
    fprintf(stderr,"saving %s\n",outname);

  if ((outfile = open(outname,O_CREAT|O_TRUNC|O_WRONLY|O_BINARY,0666))==-1)
  {
    sprintf(Error_Text,"Couldn't create %s\n",outname);
    Error(Error_Text);
  }

  optr = obfr;

  for (i=0; i<height; i++)
  {
    py = src[0] + offset + incr*i;
    pu = u422 + (offset>>1) + (incr>>1)*i;
    pv = v422 + (offset>>1) + (incr>>1)*i;

    for (j=0; j<horizontal_size; j+=2)
    {
      putbyte(*pu++);
      putbyte(*py++);
      putbyte(*pv++);
      putbyte(*py++);
    }
  }

  if (optr!=obfr)
    write(outfile,obfr,optr-obfr);

  close(outfile);
}

/*
 * store as PPM (PBMPLUS) or uncompressed Truevision TGA ('Targa') file
 */
static void store_ppm_tga(outname,src,offset,incr,height,tgaflag)
char *outname;
unsigned char *src[];
int offset, incr, height;
int tgaflag;
{
  int i, j;
  int y, u, v, r, g, b;
  int crv, cbu, cgu, cgv;
  unsigned char *py, *pu, *pv;
  static unsigned char tga24[14] = {0,0,2,0,0,0,0, 0,0,0,0,0,24,32};
  char header[FILENAME_LENGTH];
  static unsigned char *u422, *v422, *u444, *v444;

  if (chroma_format==CHROMA444)
  {
    u444 = src[1];
    v444 = src[2];
  }
  else
  {
    if (!u444)
    {
      if (chroma_format==CHROMA420)
      {
        if (!(u422 = (unsigned char *)malloc((Coded_Picture_Width>>1)
                                             *Coded_Picture_Height)))
          Error("malloc failed");
        if (!(v422 = (unsigned char *)malloc((Coded_Picture_Width>>1)
                                             *Coded_Picture_Height)))
          Error("malloc failed");
      }

      if (!(u444 = (unsigned char *)malloc(Coded_Picture_Width
                                           *Coded_Picture_Height)))
        Error("malloc failed");

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩午夜在线影院| 不卡av在线免费观看| 日韩三级中文字幕| 另类小说色综合网站| 精品处破学生在线二十三| 国产精品一区二区黑丝| 国产精品乱人伦| 91官网在线观看| 日本v片在线高清不卡在线观看| 91精品国产免费久久综合| 久久66热re国产| 亚洲欧洲精品成人久久奇米网| 色综合色狠狠天天综合色| 亚洲18色成人| 国产亚洲综合性久久久影院| 97精品久久久久中文字幕| 亚洲不卡一区二区三区| 久久久国产精品午夜一区ai换脸| www.欧美色图| 蜜桃精品视频在线观看| 国产日产欧美精品一区二区三区| 一本色道久久综合亚洲91 | 99精品久久99久久久久| 亚洲mv在线观看| 久久午夜电影网| 在线观看一区日韩| 捆绑调教一区二区三区| 亚洲三级理论片| 日韩午夜中文字幕| 色偷偷久久一区二区三区| 蜜臀久久久久久久| 亚洲欧美中日韩| 日韩欧美色综合| 91激情五月电影| 国产精品综合一区二区三区| 亚洲电影中文字幕在线观看| 久久久天堂av| 91麻豆精品国产| 粗大黑人巨茎大战欧美成人| 喷水一区二区三区| 亚洲人成网站精品片在线观看 | 国产成人午夜精品影院观看视频| 亚洲精品乱码久久久久久久久| 久久一日本道色综合| 欧美精品三级在线观看| 欧美色精品在线视频| 国产精品123| 麻豆视频一区二区| 五月天激情综合| 亚洲精品美国一| 国产精品三级视频| 国产欧美一区二区三区在线看蜜臀| 在线不卡一区二区| 欧洲视频一区二区| 色婷婷久久久久swag精品| 成人高清视频免费观看| 国产一区二区三区四区五区美女 | 色综合久久中文综合久久97| 国模娜娜一区二区三区| 美女视频一区二区三区| 天堂久久一区二区三区| 亚洲国产精品久久久男人的天堂| 国产精品久久久久影院老司| 欧美国产精品专区| 国产欧美一区二区在线| 国产亚洲综合在线| 亚洲精品在线观看网站| 欧美大片一区二区| 日韩欧美亚洲另类制服综合在线| 欧美精品九九99久久| 欧美日韩成人在线| 欧美日韩国产小视频在线观看| 在线视频综合导航| 色呦呦日韩精品| 日本乱人伦aⅴ精品| 色综合中文综合网| 另类小说视频一区二区| 麻豆精品久久精品色综合| 日精品一区二区三区| 日本亚洲三级在线| 蜜桃视频在线观看一区| 久久草av在线| 国产98色在线|日韩| 高清国产一区二区三区| 成人视屏免费看| 91首页免费视频| 欧美视频中文字幕| 国产精品无码永久免费888| 国产欧美日韩精品在线| 亚洲国产精品激情在线观看| 综合在线观看色| 亚洲资源中文字幕| 免费高清视频精品| 国产成人精品三级| 色综合天天性综合| 欧美美女激情18p| 精品国产1区2区3区| 国产精品视频麻豆| 亚洲人成电影网站色mp4| 亚洲综合久久av| 人人超碰91尤物精品国产| 国产美女在线精品| 91亚洲国产成人精品一区二区三| 欧美日韩精品免费| 久久婷婷成人综合色| 日韩一区中文字幕| 秋霞电影网一区二区| 国产成人免费av在线| 欧美午夜精品一区| 久久亚洲欧美国产精品乐播| 亚洲欧美日韩中文播放| 奇米888四色在线精品| 成人看片黄a免费看在线| 欧美日韩国产中文| 国产蜜臀av在线一区二区三区| 一区二区三区加勒比av| 另类小说一区二区三区| 色综合夜色一区| 精品国产免费人成电影在线观看四季 | 2023国产精品视频| 亚洲综合免费观看高清完整版在线 | 国产麻豆精品一区二区| 色先锋资源久久综合| 日韩亚洲欧美在线| 亚洲黄色录像片| 国产精品中文字幕日韩精品| 色8久久人人97超碰香蕉987| 久久久久久久久97黄色工厂| 亚洲福利一二三区| 成人黄色电影在线| 精品国产乱码久久久久久久| 亚洲激情欧美激情| 91成人网在线| 国产女同性恋一区二区| 美脚の诱脚舐め脚责91 | 亚洲免费在线看| 国产成人在线网站| 欧美一级爆毛片| 亚洲乱码国产乱码精品精98午夜| 国产成人午夜片在线观看高清观看| 7777精品久久久大香线蕉| 亚洲天堂2016| 丁香激情综合五月| www久久久久| 青青草原综合久久大伊人精品| 一本色道久久综合狠狠躁的推荐 | 精品日韩欧美在线| 亚洲成a人在线观看| 99久久精品免费看国产免费软件| 精品福利av导航| 麻豆国产91在线播放| 欧美情侣在线播放| 亚洲va天堂va国产va久| 欧美亚洲免费在线一区| 亚洲乱码国产乱码精品精小说 | 成人午夜碰碰视频| 亚洲精品一区二区精华| 蜜桃视频在线一区| 欧美一级免费大片| 日本欧美大码aⅴ在线播放| 欧美日韩国产综合草草| 亚洲高清免费观看高清完整版在线观看| 波多野结衣91| 综合在线观看色| 91麻豆精品一区二区三区| 中文字幕字幕中文在线中不卡视频| 国产·精品毛片| 国产精品女上位| 99久久免费视频.com| 国产精品女同一区二区三区| 99久久精品免费精品国产| 亚洲色图另类专区| 日本乱人伦一区| 亚洲成人激情社区| 日韩欧美二区三区| 九九精品一区二区| 国产精品全国免费观看高清| 99国产精品视频免费观看| 一区二区三区电影在线播| 欧美在线不卡一区| 手机精品视频在线观看| 日韩欧美国产小视频| 国产高清不卡二三区| 国产精品的网站| 欧美午夜电影网| 麻豆成人在线观看| 国产欧美日韩中文久久| 色狠狠色狠狠综合| 肉肉av福利一精品导航| 精品少妇一区二区三区在线视频| 国产成人av电影| 亚洲美女一区二区三区| 国产精品久久久久久妇女6080| 91网站黄www| 日本美女一区二区| 国产婷婷精品av在线| 91久久精品一区二区二区| 日本成人在线不卡视频| 国产精品日产欧美久久久久| 欧美区视频在线观看|