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

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

?? jerror.c

?? 基于Linux的ffmepg decoder
?? C
字號:
/* * jerror.c * * Copyright (C) 1991-1998, Thomas G. Lane. * This file is part of the Independent JPEG Group's software. * For conditions of distribution and use, see the accompanying README file. * * This file contains simple error-reporting and trace-message routines. * These are suitable for Unix-like systems and others where writing to * stderr is the right thing to do.  Many applications will want to replace * some or all of these routines. * * If you define USE_WINDOWS_MESSAGEBOX in jconfig.h or in the makefile, * you get a Windows-specific hack to display error messages in a dialog box. * It ain't much, but it beats dropping error messages into the bit bucket, * which is what happens to output to stderr under most Windows C compilers. * * These routines are used by both the compression and decompression code. *//* this is not a core library module, so it doesn't define JPEG_INTERNALS */#include "jinclude.h"#include "jpeglib.h"#include "jversion.h"#include "jerror.h"#ifdef USE_WINDOWS_MESSAGEBOX#include <windows.h>#endif#ifndef EXIT_FAILURE		/* define exit() codes if not provided */#define EXIT_FAILURE  1#endif/* * Create the message string table. * We do this from the master message list in jerror.h by re-reading * jerror.h with a suitable definition for macro JMESSAGE. * The message table is made an external symbol just in case any applications * want to refer to it directly. */#ifdef NEED_SHORT_EXTERNAL_NAMES#define jpeg_std_message_table	jMsgTable#endif#define JMESSAGE(code,string)	string ,const char * const jpeg_std_message_table[] = {#include "jerror.h"  NULL};/* * Error exit handler: must not return to caller. * * Applications may override this if they want to get control back after * an error.  Typically one would longjmp somewhere instead of exiting. * The setjmp buffer can be made a private field within an expanded error * handler object.  Note that the info needed to generate an error message * is stored in the error object, so you can generate the message now or * later, at your convenience. * You should make sure that the JPEG object is cleaned up (with jpeg_abort * or jpeg_destroy) at some point. */METHODDEF(void)error_exit (j_common_ptr cinfo){  /* Always display the message */  (*cinfo->err->output_message) (cinfo);    /* Let the memory manager delete any temp files before we die */  jpeg_destroy(cinfo);  // because we have already allocated this object in 'jpeg_dec.c' file    free((j_decompress_ptr)cinfo);    exit(EXIT_FAILURE);  //while(1) ;  }/* * Actual output of an error or trace message. * Applications may override this method to send JPEG messages somewhere * other than stderr. * * On Windows, printing to stderr is generally completely useless, * so we provide optional code to produce an error-dialog popup. * Most Windows applications will still prefer to override this routine, * but if they don't, it'll do something at least marginally useful. * * NOTE: to use the library in an environment that doesn't support the * C stdio library, you may have to delete the call to fprintf() entirely, * not just not use this routine. */METHODDEF(void)output_message (j_common_ptr cinfo){#ifdef FPGA_PLATFORM    char buffer[JMSG_LENGTH_MAX];  // Create the message   (*cinfo->err->format_message) (cinfo, buffer);  // Send it to stderr, adding a newline   fprintf(stderr, "%s\n", buffer);#endif}/* * Decide whether to emit a trace or warning message. * msg_level is one of: *   -1: recoverable corrupt-data warning, may want to abort. *    0: important advisory messages (always display to user). *    1: first level of tracing detail. *    2,3,...: successively more detailed tracing messages. * An application might override this method if it wanted to abort on warnings * or change the policy about which messages to display. */METHODDEF(void)emit_message (j_common_ptr cinfo, int msg_level){  struct jpeg_error_mgr * err = cinfo->err;  if (msg_level < 0) {    /* It's a warning message.  Since corrupt files may generate many warnings,     * the policy implemented here is to show only the first warning,     * unless trace_level >= 3.     */    if (err->num_warnings == 0 || err->trace_level >= 3)      (*err->output_message) (cinfo);    /* Always count warnings in num_warnings. */    err->num_warnings++;  } else {    /* It's a trace message.  Show it if trace_level >= msg_level. */    if (err->trace_level >= msg_level)      (*err->output_message) (cinfo);  }}/* * Format a message string for the most recent JPEG error or message. * The message is stored into buffer, which should be at least JMSG_LENGTH_MAX * characters.  Note that no '\n' character is added to the string. * Few applications should need to override this method. */METHODDEF(void)format_message (j_common_ptr cinfo, char * buffer){#ifdef FPGA_PLATFORM    struct jpeg_error_mgr * err = cinfo->err;  int msg_code = err->msg_code;  const char * msgtext = NULL;  const char * msgptr;  char ch;  boolean isstring;  // Look up message string in proper table  if (msg_code > 0 && msg_code <= err->last_jpeg_message) {    msgtext = err->jpeg_message_table[msg_code];  } else if (err->addon_message_table != NULL &&	     msg_code >= err->first_addon_message &&	     msg_code <= err->last_addon_message) {    msgtext = err->addon_message_table[msg_code - err->first_addon_message];  }  // Defend against bogus message number  if (msgtext == NULL) {    err->msg_parm.i[0] = msg_code;    msgtext = err->jpeg_message_table[0];  }  // Check for string parameter, as indicated by %s in the message text   isstring = FALSE;  msgptr = msgtext;  while ((ch = *msgptr++) != '\0') {    if (ch == '%') {      if (*msgptr == 's') isstring = TRUE;      break;    }  }  // Format the message into the passed buffer  if (isstring)    sprintf(buffer, msgtext, err->msg_parm.s);  else    sprintf(buffer, msgtext,	    err->msg_parm.i[0], err->msg_parm.i[1],	    err->msg_parm.i[2], err->msg_parm.i[3],	    err->msg_parm.i[4], err->msg_parm.i[5],	    err->msg_parm.i[6], err->msg_parm.i[7]);#endif}/* * Reset error state variables at start of a new image. * This is called during compression startup to reset trace/error * processing to default state, without losing any application-specific * method pointers.  An application might possibly want to override * this method if it has additional error processing state. */METHODDEF(void)reset_error_mgr (j_common_ptr cinfo){  cinfo->err->num_warnings = 0;  /* trace_level is not reset since it is an application-supplied parameter */  cinfo->err->msg_code = 0;	/* may be useful as a flag for "no error" */}/* * Fill in the standard error-handling methods in a jpeg_error_mgr object. * Typical call is: *	struct jpeg_compress_struct cinfo; *	struct jpeg_error_mgr err; * *	cinfo.err = jpeg_std_error(&err); * after which the application may override some of the methods. */GLOBAL(struct jpeg_error_mgr *)jpeg_std_error (struct jpeg_error_mgr * err){  err->error_exit = error_exit;  err->emit_message = emit_message;  err->output_message = output_message;  err->format_message = format_message;  err->reset_error_mgr = reset_error_mgr;  err->trace_level = 0;		/* default = no tracing */  err->num_warnings = 0;	/* no warnings emitted yet */  err->msg_code = 0;		/* may be useful as a flag for "no error" */  /* Initialize message table pointers */  err->jpeg_message_table = jpeg_std_message_table;  err->last_jpeg_message = (int) JMSG_LASTMSGCODE - 1;  err->addon_message_table = NULL;  err->first_addon_message = 0;	/* for safety */  err->last_addon_message = 0;  return err;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
夜夜夜精品看看| 亚洲国产你懂的| 亚洲国产精品久久久久婷婷884| 亚洲国产视频直播| 国产a级毛片一区| 欧美一区在线视频| 日韩伦理av电影| 韩国成人精品a∨在线观看| 欧美色图一区二区三区| 国产精品久线观看视频| 精品一区二区精品| 欧美精品在线观看播放| 亚洲色图色小说| 国产98色在线|日韩| 欧美mv日韩mv亚洲| 青青青爽久久午夜综合久久午夜 | 国内外成人在线| 欧美日韩在线精品一区二区三区激情| 久久久99久久| 国产黄人亚洲片| 337p日本欧洲亚洲大胆色噜噜| 亚洲成人动漫精品| 在线观看日产精品| 一区精品在线播放| zzijzzij亚洲日本少妇熟睡| 久久夜色精品一区| 国产成人小视频| 久久久久久久久久久久久夜| 狠狠狠色丁香婷婷综合激情| 精品国偷自产国产一区| 久久精品国产99国产| 日韩欧美久久一区| 久88久久88久久久| 精品国内二区三区| 国产美女主播视频一区| 久久久久久久久久久久电影| 国产一区在线观看麻豆| 久久久久久久网| 国产成人精品免费网站| 亚洲国产高清不卡| 99综合影院在线| 夜夜夜精品看看| 日韩欧美亚洲国产另类| 国产在线精品一区二区| 亚洲国产精品v| 色偷偷88欧美精品久久久| 亚洲午夜视频在线观看| 777色狠狠一区二区三区| 裸体健美xxxx欧美裸体表演| 久久你懂得1024| www.视频一区| 亚洲第四色夜色| 久久久久久久久久美女| av在线免费不卡| 午夜久久电影网| 欧美精品一区二| 91欧美激情一区二区三区成人| 一区二区三区四区不卡在线| 欧美精选在线播放| 国产精品中文字幕日韩精品| 中文欧美字幕免费| 欧美日韩一二三区| 国产真实精品久久二三区| 亚洲欧洲av色图| 欧美一区二区三区视频免费| 国产一区999| 亚洲一区二区三区四区五区黄| 91精品国产综合久久久蜜臀粉嫩| 国产一二三精品| 香蕉影视欧美成人| 亚洲国产精品成人综合| 欧美精品第1页| av在线综合网| 狠狠色丁香久久婷婷综合_中| 国产精品久久久久毛片软件| 91精品国产欧美一区二区成人| 粉嫩aⅴ一区二区三区四区 | 欧美日韩精品二区第二页| 韩国欧美国产一区| 亚洲成av人片一区二区三区| 国产亚洲一区二区三区四区| 欧美日韩国产a| 成人av电影在线播放| 另类中文字幕网| 亚洲综合免费观看高清完整版| 久久综合九色综合97婷婷女人| 精品视频免费看| 色综合色综合色综合色综合色综合| 美女网站色91| 亚洲一区二区三区中文字幕在线| 国产丝袜美腿一区二区三区| 制服丝袜成人动漫| 性久久久久久久| 国产欧美日韩不卡| 精品少妇一区二区三区在线播放 | 欧美在线观看视频在线| 国产精一区二区三区| 视频在线观看国产精品| 亚洲女女做受ⅹxx高潮| 中文字幕一区二区三区在线观看 | 日韩欧美激情一区| 欧美人与z0zoxxxx视频| 欧洲一区二区av| 成av人片一区二区| 丰满亚洲少妇av| 国产精品1区二区.| 国产一区二区调教| 韩国一区二区在线观看| 国产a久久麻豆| 视频一区二区三区在线| 亚洲精选视频免费看| 久久精品一区二区三区av| 亚洲欧美另类在线| 69堂国产成人免费视频| 欧美日韩久久一区| 久久精品人人做人人爽97| 亚洲伦在线观看| 久久不见久久见免费视频1| jlzzjlzz欧美大全| 欧美二区三区的天堂| 欧美激情综合在线| 亚洲国产精品一区二区久久| 国产真实精品久久二三区| 色综合视频一区二区三区高清| 337p亚洲精品色噜噜| 亚洲图片欧美激情| 美女视频黄 久久| 色综合婷婷久久| 久久久久久影视| 午夜精品久久一牛影视| 成人开心网精品视频| 67194成人在线观看| 中文字幕亚洲不卡| 国产麻豆一精品一av一免费| 欧美色图在线观看| 国产精品久久看| 国产一区二区不卡在线| 4438x成人网最大色成网站| 国产精品美女久久久久久久久| 日本最新不卡在线| 色琪琪一区二区三区亚洲区| 国产色爱av资源综合区| 免费的成人av| 欧美顶级少妇做爰| 亚洲一区二区av在线| 99久久精品一区| 久久久亚洲国产美女国产盗摄| 丝袜国产日韩另类美女| 在线影视一区二区三区| 国产精品毛片无遮挡高清| 国产综合久久久久久鬼色| 欧美一区二区在线免费观看| 亚洲乱码日产精品bd| eeuss国产一区二区三区| 国产偷国产偷亚洲高清人白洁| 久久激情综合网| 日韩欧美精品在线视频| 美女脱光内衣内裤视频久久影院| 欧美在线观看18| 亚洲制服丝袜一区| 在线观看日韩av先锋影音电影院| 中文字幕一区二区三区不卡在线| 国产乱妇无码大片在线观看| 精品久久久久av影院| 久久超级碰视频| 精品第一国产综合精品aⅴ| 蜜桃视频在线一区| 精品少妇一区二区三区日产乱码| 丝瓜av网站精品一区二区| 欧美日韩激情一区二区| 亚洲国产精品视频| 欧美日韩免费不卡视频一区二区三区| 亚洲午夜一区二区| 7777精品久久久大香线蕉| 青青草国产成人av片免费| 日韩免费高清视频| 国产精品自拍网站| 国产精品网曝门| 91捆绑美女网站| 亚洲一区二区视频在线观看| 欧美精品黑人性xxxx| 美国毛片一区二区| 国产午夜久久久久| 99精品欧美一区二区蜜桃免费 | 久久久精品tv| 成人深夜在线观看| 亚洲精品网站在线观看| 欧美日韩三级一区二区| 日韩国产高清影视| 久久久久久久久免费| 99精品在线观看视频| 亚洲愉拍自拍另类高清精品| 777午夜精品免费视频| 国模无码大尺度一区二区三区| 欧美国产精品中文字幕| 欧美中文字幕一区| 麻豆国产精品一区二区三区 | 色婷婷精品久久二区二区蜜臂av| 亚洲综合小说图片| 亚洲精品一区二区三区精华液|