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

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

?? output.c

?? jm_frext22.ZIP的壓縮文件,主要用于嵌入式系統圖象的編解碼的開發.
?? C
?? 第 1 頁 / 共 2 頁
字號:

/*!
 ************************************************************************
 * \file output.c
 *
 * \brief
 *    Output an image and Trance support
 *
 * \author
 *    Main contributors (see contributors.h for copyright, address and affiliation details)
 *    - Karsten Suehring               <suehring@hhi.de>
 ************************************************************************
 */

#include "contributors.h"

#include <stdlib.h>
#include <assert.h>
#include <string.h>

#ifdef WIN32
#include <io.h>
#else
#include <unistd.h>
#endif

#include "global.h"
#include "mbuffer.h"
#include "image.h"
#include "memalloc.h"

FrameStore* out_buffer;

StorablePicture *pending_output = NULL;
int              pending_output_state = FRAME;


void write_out_picture(StorablePicture *p, int p_out);

#ifdef PAIR_FIELDS_IN_OUTPUT

void clear_picture(StorablePicture *p);

/*!
 ************************************************************************
 * \brief
 *    output the pending frame buffer
 * \param p_out
 *    Output file
 ************************************************************************
 */
void flush_pending_output(int p_out)
{
  if (pending_output_state!=FRAME)
  {
    write_out_picture(pending_output, p_out);
  }
  
  if (pending_output->imgY)
  {
    free_mem2Dpel (pending_output->imgY);
    pending_output->imgY=NULL;
  }
  if (pending_output->imgUV)
  {
    free_mem3Dpel (pending_output->imgUV, 2);
    pending_output->imgUV=NULL;
  }

  pending_output_state = FRAME;
}


/*!
 ************************************************************************
 * \brief
 *    Writes out a storable picture 
 *    If the picture is a field, the output buffers the picture and tries 
 *    to pair it with the next field.
 * \param p
 *    Picture to be written
 * \param p_out
 *    Output file
 ************************************************************************
 */
void write_picture(StorablePicture *p, int p_out, int real_structure)
{
   int i, add;

  if (real_structure==FRAME)
  {
    flush_pending_output(p_out);
    write_out_picture(p, p_out);
    return;
  }
  if (real_structure==pending_output_state)
  {
    flush_pending_output(p_out);
    write_picture(p, p_out, real_structure);
    return;
  }

  if (pending_output_state == FRAME)
  {
    pending_output->size_x = p->size_x;
    pending_output->size_y = p->size_y;
    pending_output->size_x_cr = p->size_x_cr;
    pending_output->size_y_cr = p->size_y_cr;


    pending_output->frame_mbs_only_flag = p->frame_mbs_only_flag;
    pending_output->frame_cropping_flag = p->frame_cropping_flag;
    if (pending_output->frame_cropping_flag)
    {
      pending_output->frame_cropping_rect_left_offset = p->frame_cropping_rect_left_offset;
      pending_output->frame_cropping_rect_right_offset = p->frame_cropping_rect_right_offset;
      pending_output->frame_cropping_rect_top_offset = p->frame_cropping_rect_top_offset;
      pending_output->frame_cropping_rect_bottom_offset = p->frame_cropping_rect_bottom_offset;
    }

    get_mem2Dpel (&(pending_output->imgY), pending_output->size_y, pending_output->size_x);
    get_mem3Dpel (&(pending_output->imgUV), 2, pending_output->size_y_cr, pending_output->size_x_cr);

    clear_picture(pending_output);

    // copy first field
    if (real_structure == TOP_FIELD)
    {
      add = 0;
    }
    else
    {
      add = 1;
    }

    for (i=0; i<pending_output->size_y; i+=2)
    {
      memcpy(pending_output->imgY[(i+add)], p->imgY[(i+add)], p->size_x);
    }
    for (i=0; i<pending_output->size_y_cr; i+=2)
    {
      memcpy(pending_output->imgUV[0][(i+add)], p->imgUV[0][(i+add)], p->size_x_cr);
      memcpy(pending_output->imgUV[1][(i+add)], p->imgUV[1][(i+add)], p->size_x_cr);
    }
    pending_output_state = real_structure;
  }
  else
  {
    if (  (pending_output->size_x!=p->size_x) || (pending_output->size_y!= p->size_y) 
       || (pending_output->frame_mbs_only_flag != p->frame_mbs_only_flag)
       || (pending_output->frame_cropping_flag != p->frame_cropping_flag)
       || ( pending_output->frame_cropping_flag &&
            (  (pending_output->frame_cropping_rect_left_offset   != p->frame_cropping_rect_left_offset)
             ||(pending_output->frame_cropping_rect_right_offset  != p->frame_cropping_rect_right_offset)
             ||(pending_output->frame_cropping_rect_top_offset    != p->frame_cropping_rect_top_offset)
             ||(pending_output->frame_cropping_rect_bottom_offset != p->frame_cropping_rect_bottom_offset)
            )
          )
       )
    {
      flush_pending_output(p_out);
      write_picture (p, p_out, real_structure);
      return;
    }
    // copy second field
    if (real_structure == TOP_FIELD)
    {
      add = 0;
    }
    else
    {
      add = 1;
    }

    for (i=0; i<pending_output->size_y; i+=2)
    {
      memcpy(pending_output->imgY[(i+add)], p->imgY[(i+add)], p->size_x);
    }
    for (i=0; i<pending_output->size_y_cr; i+=2)
    {
      memcpy(pending_output->imgUV[0][(i+add)], p->imgUV[0][(i+add)], p->size_x_cr);
      memcpy(pending_output->imgUV[1][(i+add)], p->imgUV[1][(i+add)], p->size_x_cr);
    }

    flush_pending_output(p_out);
  }
}

#else

/*!
 ************************************************************************
 * \brief
 *    Writes out a storable picture without doing any output modifications
 * \param p
 *    Picture to be written
 * \param p_out
 *    Output file
 ************************************************************************
 */
void write_picture(StorablePicture *p, int p_out, int real_structure)
{
  write_out_picture(p, p_out);
}


#endif

/*!
************************************************************************
* \brief
*    Writes out a storable picture
* \param p
*    Picture to be written
* \param p_out
*    Output file
************************************************************************
*/
void write_out_picture(StorablePicture *p, int p_out)
{
  int i,j;
  
  int crop_left, crop_right, crop_top, crop_bottom;
  int crop_vert_mult;
  int symbol_size_in_bytes = img->pic_unit_bitsize_on_disk/8;
  Boolean rgb_output = (active_sps->vui_seq_parameters.matrix_coefficients==0);  // S.SUN 18072004
  char *buf;

  if (p->non_existing)
    return;

  if (p->frame_mbs_only_flag)
  {
    crop_vert_mult = 2;
  }
  else
  {
    if (p->structure != FRAME)
    {
      crop_vert_mult = 2;
    }
    else
    {
      crop_vert_mult = 4;
    }
  }

  if (p->frame_cropping_flag)
  {
    crop_left   = 2 * p->frame_cropping_rect_left_offset;
    crop_right  = 2 * p->frame_cropping_rect_right_offset;
    crop_top    = crop_vert_mult * p->frame_cropping_rect_top_offset;
    crop_bottom = crop_vert_mult * p->frame_cropping_rect_bottom_offset;
  }
  else
  {
    crop_left = crop_right = crop_top = crop_bottom = 0;
  }

  //printf ("write frame size: %dx%d\n", p->size_x-crop_left-crop_right,p->size_y-crop_top-crop_bottom );
  
  if(rgb_output)
  {  // S.SUN 18072004
    crop_left   /= 2;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美不卡视频一区| 亚洲摸摸操操av| 色综合天天综合给合国产| 午夜av电影一区| 国产精品久久久久三级| 欧美精品一卡两卡| 色综合天天在线| 成人性生交大片免费看中文网站| 日韩精品一二三| 亚洲欧美激情一区二区| 国产性天天综合网| 日韩精品在线看片z| 欧美日韩成人在线| 91老师片黄在线观看| 国产精品66部| 九九精品一区二区| 五月激情综合色| 亚洲电影你懂得| 亚洲韩国精品一区| 亚洲狼人国产精品| 亚洲天堂久久久久久久| 国产精品天美传媒| 久久久99久久精品欧美| 精品国产电影一区二区| 日韩免费观看2025年上映的电影| 欧美日韩一区视频| 欧洲亚洲精品在线| 欧洲精品视频在线观看| 91丝袜呻吟高潮美腿白嫩在线观看| 国产一区二区三区四区五区入口| 免费成人av资源网| 另类专区欧美蜜桃臀第一页| 美女一区二区三区在线观看| 青青草国产成人99久久| 日本亚洲免费观看| 日韩av电影免费观看高清完整版| 亚洲综合免费观看高清完整版| 亚洲人午夜精品天堂一二香蕉| 亚洲女同一区二区| 亚洲影院在线观看| 亚洲电影你懂得| 日本一不卡视频| 久久精品国产免费看久久精品| 看电影不卡的网站| 国内精品久久久久影院薰衣草| 狠狠狠色丁香婷婷综合久久五月| 国产精品一区二区三区乱码 | 91高清视频在线| 欧美三片在线视频观看| 3atv一区二区三区| 精品动漫一区二区三区在线观看| 精品久久人人做人人爱| 日本一区二区三区四区| 国产精品久久久久久久久免费丝袜 | 亚洲一区二区在线视频| 午夜激情久久久| 精品无人码麻豆乱码1区2区| 国产不卡免费视频| 99久久精品免费精品国产| 在线看国产一区二区| 在线不卡欧美精品一区二区三区| 日韩欧美一二三| 久久久另类综合| 国产精品国产三级国产aⅴ中文 | 欧美精品乱码久久久久久| 8v天堂国产在线一区二区| 精品国产自在久精品国产| 中文字幕精品三区| 亚洲国产精品综合小说图片区| 蜜桃传媒麻豆第一区在线观看| 东方欧美亚洲色图在线| 在线亚洲免费视频| 欧美精品一区二区精品网| 日韩美女视频19| 日日夜夜免费精品| 成人综合婷婷国产精品久久蜜臀 | 精品国产一区二区三区av性色| 欧美国产精品v| 午夜私人影院久久久久| 国产精品夜夜爽| 欧美色图第一页| 久久精品视频一区二区三区| 亚洲综合色噜噜狠狠| 国产综合一区二区| 日本韩国精品在线| 久久九九影视网| 三级久久三级久久久| 成人激情小说网站| 91精品久久久久久久91蜜桃| 国产精品女同互慰在线看| 日韩在线一区二区三区| 不卡视频一二三| 日韩精品一区二区三区视频播放| 尤物在线观看一区| 国产精品一级黄| 日韩一区二区精品在线观看| 自拍av一区二区三区| 国产乱理伦片在线观看夜一区| 欧美色综合网站| 欧美激情在线看| 激情亚洲综合在线| 在线观看日韩av先锋影音电影院| 国产网红主播福利一区二区| 免费成人结看片| 欧美日韩一区不卡| 欧美激情一区二区| 蜜桃一区二区三区在线观看| 欧美日韩三级一区二区| 中文字幕亚洲精品在线观看| 国产一区二区三区高清播放| 欧美一级高清大全免费观看| 一区二区欧美国产| 91老师片黄在线观看| 久久综合给合久久狠狠狠97色69| 视频在线观看91| k8久久久一区二区三区| 精品国产乱码久久久久久免费| 婷婷综合五月天| 在线亚洲一区观看| 日韩久久一区二区| 99re视频精品| 欧美高清在线精品一区| 国产成人免费视频网站 | 91蝌蚪porny九色| 中文字幕的久久| 成人免费毛片aaaaa**| 久久伊人蜜桃av一区二区| 蜜臀av一级做a爰片久久| 欧美剧情电影在线观看完整版免费励志电影 | 国产日韩视频一区二区三区| 激情综合色综合久久综合| 日韩一区二区三区精品视频| 蜜臀久久久久久久| 日韩免费性生活视频播放| 美女网站一区二区| 亚洲精品一区二区三区福利| 极品少妇xxxx偷拍精品少妇| 精品国产91乱码一区二区三区| 免费欧美高清视频| 精品粉嫩超白一线天av| 国产风韵犹存在线视精品| 欧美激情一区二区三区| www.久久精品| 亚洲精品v日韩精品| 欧美色偷偷大香| 免费在线成人网| 26uuu亚洲综合色| 国产成人免费网站| 国产精品高清亚洲| 色婷婷综合久久久中文一区二区| 亚洲精品乱码久久久久久久久| 欧美色中文字幕| 蜜臀久久99精品久久久画质超高清 | 久久精品视频免费观看| 国产在线国偷精品免费看| 国产精品网站在线观看| 色婷婷亚洲精品| 三级在线观看一区二区| 精品国产a毛片| zzijzzij亚洲日本少妇熟睡| 亚洲一级电影视频| 日韩免费观看高清完整版| 国产99久久久国产精品免费看| 亚洲欧美日韩在线不卡| 欧美精品一二三四| 国产精品亚洲一区二区三区在线 | 国产精品色哟哟| 在线亚洲精品福利网址导航| 美国三级日本三级久久99| 中文天堂在线一区| 日本乱码高清不卡字幕| 另类小说图片综合网| 日本一区二区电影| 欧美日本不卡视频| 国产盗摄精品一区二区三区在线 | 中文字幕在线播放不卡一区| 欧美午夜电影网| 国产精品1024久久| 亚洲国产视频网站| 国产欧美一区二区精品秋霞影院| 91麻豆成人久久精品二区三区| 日产国产欧美视频一区精品 | 国产精品久久国产精麻豆99网站 | 中文字幕亚洲一区二区va在线| 欧美日韩免费观看一区三区| 国产精品影视天天线| 亚洲va韩国va欧美va精品| 国产欧美日韩一区二区三区在线观看| 色哟哟精品一区| 毛片基地黄久久久久久天堂| 亚洲日本一区二区三区| 精品国产1区2区3区| 欧美乱熟臀69xxxxxx| 成人一区在线观看| 久久成人免费电影| 亚洲第一成年网| 亚洲免费在线看| 国产精品三级av| 精品久久久久香蕉网| 精品视频一区二区三区免费|