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

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

?? display.cc

?? ac3的解碼程序
?? CC
?? 第 1 頁 / 共 4 頁
字號:
/*   File: display.cc   By: Alex de Jong (original by MSSG)   Created: March 1996      Description:   Multi-Threaded display class. Displays class is able to    synchronize frames with a synchronoization object, which   in turn is updates by a decoder timer.*/#ifdef __GNUG__#pragma implementation#endif#include "athread.hh"#include <stdio.h>#include <fstream.h>#include <sys/time.h>#include "error.hh"#include "debug.hh"#include "util.hh"#include "videoconst.hh"#include "sync.hh"#include "display.hh"extern int quiet;extern int coded_picture_width;extern int coded_picture_height;extern int prog_seq;extern int chroma_format;extern int chrom_width;extern int pict_struct, topfirst;extern int convmat[8][4];extern int matrix_coefficients;extern int playedlastframe;// #define USE_DGA 1               /* enable this to use DGA extention */#ifdef SH_MEM// Dummies to get rid of warningsextern "C" {int XShmQueryExtension(Display*);int XShmGetEventBase(Display*);}#ifdef USE_DGA#include <X11/extensions/xf86dga.h>#include <X11/extensions/xf86vmode.h>#endif#endif#ifdef SOLARIS_SDK_XILXil_boolean error_handler(XilError error){  xil_call_next_error_handler(error);  error("XIL received an error: exiting!");  exit(1);  return True;}#endif // SOLARIS_SDK_XILDisplayX11::DisplayX11(const char* title, Synchronization* s){  TRACER("DisplayX11::DisplayX11(const char* title, Synchronization* s)");  int crv, cbu, cgu, cgv;  int y, u, v, r, g, b;  int i, j;  Colormap cmap;  XColor xcolor;  unsigned int fg, bg;  XSizeHints hint;  unsigned long tmp_pixel;  XWindowAttributes xwa;  int screen;    // init to avoid invalid destroy in destructor  ximage=0;  ximage2=0;  // Synchronization with decoder clock  sync=s;  // Init display lock/condition to prevent threads to pass eachother  source=0;#ifdef SOLARIS_SDK_XIL  resized=0;  // window has not been resized  horizontal_size=100;  vertical_size=100;  horizontal_factor=1.0;  vertical_factor=1.0;#else#ifdef SH_MEM  CompletionType = -1;#endif#endif  // create clipping table  clp=new unsigned char[1024];  // clip table  clp += 384;  for (i=-384; i<640; i++)     clp[i] = (i<0) ? 0 : ((i>255) ? 255 : i);  if (!(display=XOpenDisplay(0))){    error("Can not open display\n");    athr_exit(0);  }#ifdef TRACE  XSynchronize(display, 1);#endif      screen = DefaultScreen(display);  // find best display  if (XMatchVisualInfo(display, screen, 24, TrueColor, &vinfo)){  } else#if (defined(LINUX)&&defined(MMX))  if (XMatchVisualInfo(display, screen, 16, TrueColor, &vinfo)){  } else#endif  if (XMatchVisualInfo(display, screen, 8, PseudoColor, &vinfo)){  }  else if (XMatchVisualInfo(display, screen, 8, GrayScale, &vinfo)){  }  else if (XMatchVisualInfo(display, screen, 8, StaticGray, &vinfo)){  }  else if (XMatchVisualInfo(display, screen, 1, StaticGray, &vinfo)) {  }#ifdef LINUX  else error("requires 16 bit display\n");#else  else error("requires 8 bit or 24 bit display\n");#endif  // Make the window  hint.x = 200;  hint.y = 200;  hint.width = 100;  hint.height= 100;  hint.flags = PPosition | PSize;  bpp = vinfo.depth;  if (vinfo.red_mask == 0x7c00)    rgb_mode = 1;		// RGB555    for more modes see yuv12-rgb.s  else    rgb_mode = 0;		// RGB565  if (vinfo.c_class==TrueColor && bpp == 24 ){#ifdef SOLARIS_SDK_XIL    bands=3;#endif    cmap=XCreateColormap(display, DefaultRootWindow(display), vinfo.visual, AllocNone);        XSetWindowAttributes xswa;    xswa.colormap = cmap;    xswa.event_mask = StructureNotifyMask;    xswa.border_pixel = BlackPixel(display, screen);        window=XCreateWindow(display, DefaultRootWindow(display),                           hint.x, hint.y, hint.width, hint.height,                           0,                           vinfo.depth, InputOutput, vinfo.visual,                           CWBorderPixel | CWColormap | CWEventMask, &xswa);  }  else {#ifdef SOLARIS_SDK_XIL     bands=1;#endif    // Get some colors    bg = WhitePixel(display, screen);    fg = BlackPixel(display, screen);    window=XCreateSimpleWindow(display, DefaultRootWindow (display),                               hint.x, hint.y, hint.width, hint.height, 4, fg, bg);  }  // Tell other applications about this window  XSetStandardProperties(display, window, title, title, None, NULL, 0, &hint);  XSelectInput(display, window, StructureNotifyMask);  // Map window  XMapWindow(display, window);  // Wait for map.  do {    XNextEvent(display, &event);  }  while (event.type != MapNotify || event.xmap.event != window);  XSelectInput(display, window, NoEventMask);  if (vinfo.c_class==PseudoColor){     // Do dithering before display    int privte=0;        // allocate colors    gc = DefaultGC(display, screen);    cmap = DefaultColormap(display, screen);    // matrix coefficients    crv = convmat[matrix_coefficients][0];    cbu = convmat[matrix_coefficients][1];    cgu = convmat[matrix_coefficients][2];    cgv = convmat[matrix_coefficients][3];        /* color allocation:     * i is the (internal) 8 bit color number, it consists of separate     * bit fields for Y, U and V: i = (yyyyuuvv), we don't use yyyy=0000     * yyyy=0001 and yyyy=1111, this leaves 48 colors for other applications     *     * the allocated colors correspond to the following Y, U and V values:     * Y:   40, 56, 72, 88, 104, 120, 136, 152, 168, 184, 200, 216, 232     * U,V: -48, -16, 16, 48     *     * U and V values span only about half the color space; this gives     * usually much better quality, although highly saturated colors can     * not be displayed properly     *     * translation to R,G,B is implicitly done by the color look-up table     */    // THIS IS REALLY SLOW on a 24 Bit display. Please drop me a line if    // you know how to do this faster (alex.dejong@nist.gov)    // DON'T ALLOCATE 240 COLORS!! Just 215 will do and stops Solaris    // from colors blinking when moving the cursor#if (defined(SOLARIS))    int number_of_colors=215;#endif#if (defined(IRIX)|| defined(LINUX))    int number_of_colors=240;#endif    for (i=32; i<number_of_colors; i++){      /* color space conversion */      y = 16*((i>>4)&15) + 8;      u = 32*((i>>2)&3)  - 48;      v = 32*(i&3)       - 48;            y = 76309 * (y - 16); /* (255/219)*65536 */            r = clp[(y + crv*v + 32768)>>16];      g = clp[(y - cgu*u -cgv*v + 32768)>>16];      b = clp[(y + cbu*u + 32786)>>16];            /* X11 colors are 16 bit */      xcolor.red   = r << 8;      xcolor.green = g << 8;      xcolor.blue  = b << 8;            if (XAllocColor(display, cmap, &xcolor) != 0) pixel[i] = xcolor.pixel;      else {        /* allocation failed, have to use a private colormap */                if (privte) error("Couldn't allocate private colormap");                privte = 1;                if (!quiet)          fprintf(stderr, "Using private colormap (%d colors were available)\n",                  i-32);                /* Free colors. */        while (--i >= 32){          tmp_pixel = pixel[i]; /* because XFreeColors expects unsigned long */          XFreeColors(display, cmap, &tmp_pixel, 1, 0);        }         /* i is now 31, this restarts the outer loop */                /* create private colormap */                XGetWindowAttributes(display, window, &xwa);        cmap = XCreateColormap(display, window, xwa.visual, AllocNone);        XSetWindowColormap(display, window, cmap);      }    }  }  else    gc = DefaultGC(display, screen);/*   Init dither   4x4 ordered dither   threshold pattern:    0  8  2 10   12  4 14  6    3 11  1  9   15  7 13  5*/  unsigned char ctab[256+32];    for (i=0; i<256+16; i++){    v = (i-8)>>4;    if (v<2) v=2;    else if (v>14) v=14;    for (j=0; j<16; j++)       ytab[16*i+j] = pixel[(v<<4)+j];  }  for (i=0; i<256+32; i++){    v = (i+48-128)>>5;    if (v<0) v=0;    else if (v>3) v=3;    ctab[i]=v;  }  for (i=0; i<255+15; i++)    for (j=0; j<255+15; j++)      uvtab[256*i+j]=(ctab[i+16]<<6)|(ctab[j+16]<<4)|(ctab[i]<<2)|ctab[j];}DisplayX11::~DisplayX11(){   TRACER("DisplayX11::~DisplayX11()");  display_lock.lock();  if (!terminated) athr_join(thread_id);  exit_display();  delete clp; // delete clipping table  display_lock.unlock();}void* DisplayX11::dither_thread(DisplayX11* d){  d->display_lock.lock();  d->terminated=0;  d->dither_image(d->source);  d->display_image(d->ximage, d->dithered_image);   d->source=0;  d->display_cond.signal();  d->terminated=1;  d->display_lock.unlock(); #if !defined(IRIX) && !defined(SOLARIS_SDK_XIL) && !defined(LINUX)  athr_exit(0);#endif  return 0;}void* DisplayX11::display_thread(DisplayX11* d){#ifndef LINUX  d->display_lock.lock();  d->terminated=0;  d->display_image(d->ximage2, d->dithered_image2);   d->terminated=1;  d->display_lock.unlock();#if !defined(IRIX) && !defined(SOLARIS_SDK_XIL) && !defined(LINUX)  athr_exit(0);#endif#endif  return 0;}int DisplayX11::init(int h_size, int v_size){  TRACER("void DisplayX11::init(int h_size, int v_size)");  display_lock.lock();  // lock the display from others access for now  // resize window  horizontal_size=h_size;  vertical_size=v_size;  XResizeWindow(display, window, horizontal_size, vertical_size);#ifdef SOLARIS_SDK_XIL  if ((State = xil_open()) == NULL)    exit(1);   // XIL sends an error message to stderr if xil_open fails   // Install error handler  if (xil_install_error_handler(State, error_handler) == XIL_FAILURE)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
香蕉乱码成人久久天堂爱免费| 91蝌蚪porny| 91麻豆精品91久久久久同性| 天堂va蜜桃一区二区三区| 欧美视频日韩视频在线观看| 国产精品网站一区| 成人涩涩免费视频| 国产精品伦理在线| 国产成人在线视频播放| 久久久三级国产网站| 精品亚洲porn| 国产精品家庭影院| 一本一道综合狠狠老| 视频一区中文字幕| 久久婷婷成人综合色| 99久久夜色精品国产网站| 亚洲国产高清不卡| 欧洲另类一二三四区| 99re视频精品| 天天综合天天做天天综合| 欧美日韩国产经典色站一区二区三区| 一卡二卡欧美日韩| 日韩丝袜情趣美女图片| 国产伦精一区二区三区| 亚洲视频资源在线| 日韩一二在线观看| 国产馆精品极品| 亚洲一区二区三区美女| 精品日本一线二线三线不卡| 久久久久久久久久美女| 欧美综合久久久| 懂色av噜噜一区二区三区av| 亚洲尤物视频在线| 日本一区二区高清| 欧美吻胸吃奶大尺度电影| 成人动漫精品一区二区| 美女视频黄频大全不卡视频在线播放| 日本一区二区高清| 日韩欧美国产一区二区在线播放| 99久久久精品| 91啪九色porn原创视频在线观看| 成人毛片在线观看| 成人avav影音| 国产一区二区在线免费观看| 日韩不卡一区二区| 另类小说色综合网站| 久久精品噜噜噜成人av农村| 日韩中文字幕区一区有砖一区 | 欧美大胆一级视频| 日韩精品一区二区三区swag| 日韩精品一区二区三区在线播放| 欧美另类变人与禽xxxxx| 在线观看亚洲专区| 欧美日韩综合不卡| 欧美日韩免费电影| 欧美tk—视频vk| 国产精品美女一区二区在线观看| 国产喂奶挤奶一区二区三区| 欧美sm美女调教| www激情久久| 亚洲欧洲av在线| 亚洲成人福利片| 九色|91porny| 国产精品一区二区果冻传媒| 大桥未久av一区二区三区中文| 成人黄色国产精品网站大全在线免费观看 | 亚洲国产成人自拍| 亚洲色图.com| 中文字幕色av一区二区三区| 亚洲一区二区成人在线观看| 经典三级在线一区| 欧洲一区二区三区在线| 精品成人一区二区三区四区| 国产精品视频九色porn| 亚洲1区2区3区视频| 国产一区二区三区久久悠悠色av| 99国产精品久久久久久久久久| 7777精品久久久大香线蕉| 亚洲免费在线视频| 国产精品1区2区3区| 欧美日韩一区成人| 中文字幕久久午夜不卡| 天天综合色天天| 91久久国产最好的精华液| 国产精品久久久久一区二区三区共 | 欧美伊人久久久久久午夜久久久久| 国产欧美1区2区3区| 蜜臀va亚洲va欧美va天堂 | 91国偷自产一区二区三区观看| 久久欧美中文字幕| 国内久久精品视频| 日韩欧美一级片| 奇米影视7777精品一区二区| 91国产视频在线观看| 最新日韩av在线| heyzo一本久久综合| 国产午夜精品理论片a级大结局| 久久激五月天综合精品| 91精品久久久久久蜜臀| 五月综合激情网| 欧美久久久久久蜜桃| 亚洲va中文字幕| 日韩欧美美女一区二区三区| 久久成人久久鬼色| 日本一区二区动态图| 99国产一区二区三精品乱码| 亚洲免费av观看| 在线免费观看日本欧美| 一区二区三区高清| 337p亚洲精品色噜噜狠狠| 麻豆国产精品777777在线| 中国色在线观看另类| 日韩女优电影在线观看| 国产乱国产乱300精品| 国产精品欧美久久久久无广告| 99视频精品免费视频| 亚洲综合视频在线观看| 日韩一区二区三| 成人动漫一区二区在线| 亚洲国产欧美在线人成| 国产亚洲美州欧州综合国| 欧美日本韩国一区二区三区视频| 国产精品一二三四五| 日韩精品乱码免费| 亚洲欧美日韩系列| 国产亚洲精品福利| 欧美视频精品在线观看| 国产精品一区二区果冻传媒| 香蕉成人伊视频在线观看| 国产精品家庭影院| 国产清纯美女被跳蛋高潮一区二区久久w | 色综合久久66| 成人精品gif动图一区| 日韩精品成人一区二区在线| 国产精品久久网站| 久久一留热品黄| 精品国产凹凸成av人导航| **欧美大码日韩| 久久久国产一区二区三区四区小说| 欧美亚洲一区三区| 91免费精品国自产拍在线不卡| 国产一区二区三区蝌蚪| 免费看黄色91| 免费观看在线色综合| 美女视频黄 久久| 国产在线精品一区在线观看麻豆| 性久久久久久久久| 午夜精品视频一区| 亚洲国产一区二区三区| 亚洲成人你懂的| 日本不卡一区二区三区 | 亚洲欧美综合色| 亚洲欧美综合网| 天堂一区二区在线| 日本sm残虐另类| 国产一区视频在线看| 国产在线精品一区二区三区不卡 | 欧美国产精品久久| 最新中文字幕一区二区三区| 国产精品欧美一区喷水| 国产精品二三区| 日韩二区三区四区| 国产精品一线二线三线| 99久久精品国产麻豆演员表| 色乱码一区二区三区88| 欧美欧美欧美欧美| 久久久久国产精品麻豆ai换脸 | 欧美高清视频一二三区 | 成人高清免费观看| 91精品国产综合久久久久久久| 91精品国产全国免费观看| 久久色.com| 日韩高清在线观看| 成人99免费视频| 久久在线观看免费| 亚洲午夜激情网站| www.亚洲人| 国产午夜久久久久| 国产精品一品二品| 精品卡一卡二卡三卡四在线| 日本亚洲最大的色成网站www| 91麻豆文化传媒在线观看| 精品粉嫩超白一线天av| 亚洲免费伊人电影| 成人a区在线观看| 欧美极品aⅴ影院| 国产美女精品人人做人人爽| 欧美日韩国产一级二级| 舔着乳尖日韩一区| 精品久久人人做人人爱| 狠狠色丁香婷婷综合久久片| 精品国产免费一区二区三区香蕉| 免费欧美高清视频| 国产亚洲短视频| caoporen国产精品视频| 国产精品色哟哟| 91免费小视频| 亚洲国产精品99久久久久久久久| 成人国产精品免费网站| 中文字幕一区视频|