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

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

?? edid_maker.c

?? Sample code for use on smp 863x processor.
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* * * Copyright (c) Sigma Designs, Inc. 2005. All rights reserved. * *//**	@file edid_maker.c	@brief sample application to create EDID / CEA extension version 3 data blocks		@author Christian Wolff*/#include <stdio.h>#include <stdlib.h>#include <string.h>#include <unistd.h>#define ALLOW_OS_CODE 1#include "../rua/include/rua.h"#include "../rua/include/rua_property.h"#include "../rmcore/include/rmstatustostring.h"#include "../rmlibcw/include/rmlibcw.h"#include "common.h"#define EDID_PNP_ID   "SMA"     // PRELIMINARY (i.e.: made up) Sigma Designs, Inc.#define EDID_IEEE_OUI 0x0016E8  // Sigma Designs, Inc., issued 2005-12-22#define HDMI_IEEE_OUI 0x000C03   // HDMI Licensing, LLCstatic RMstatus edid_start(RMuint8 *edid, RMuint32 *offset, 	RMascii *vendor, 	RMuint16 product_code, 	RMuint32 serial, 	RMuint8 week, 	RMuint32 year){	RMuint32 i;	RMuint16 v;		if (edid == NULL) return RM_INVALID_PARAMETER;		// header	edid[0x00] = 0x00;	edid[0x01] = 0xFF;	edid[0x02] = 0xFF;	edid[0x03] = 0xFF;	edid[0x04] = 0xFF;	edid[0x05] = 0xFF;	edid[0x06] = 0xFF;	edid[0x07] = 0x00;		// vendor / product info	if ((week == 0) && year) week = 0xFF;	v = 0;	for (i = 0; i < 3; i++) {		v = (v << 5) | (vendor[i] - 'A' + 1);	}	edid[0x08] = v >> 8;	edid[0x09] = v & 0xFF;	edid[0x0A] = product_code >> 8;	edid[0x0B] = product_code & 0xFF;	edid[0x0C] = serial >> 24;	edid[0x0D] = (serial >> 16) & 0xFF;	edid[0x0E] = (serial >> 8) & 0xFF;	edid[0x0F] = serial & 0xFF;	edid[0x10] = week;	edid[0x11] = year ? (year - 1990) : 0x00;	edid[0x12] = 1;	edid[0x13] = 3;		edid[0x7E] = 0;		*offset = 0x36;		return RM_OK;}static RMstatus edid_add_display(RMuint8 *edid, 	RMuint8 h_size_cm, 	RMuint8 v_size_cm, 	RMuint8 gamma100, // gamma * 100 - 100	RMbool standby, 	RMbool suspend, 	RMbool active_off, 	RMbool rgb){	RMuint32 i;		if (edid == NULL) return RM_INVALID_PARAMETER;		edid[0x14] = 0x80;	edid[0x15] = h_size_cm;	edid[0x16] = v_size_cm;	edid[0x17] = gamma100;	edid[0x18] = (standby ? 0x80 : 0) | (suspend ? 0x40 : 0) | (active_off ? 0x20 : 0) | (rgb ? 0x08 : 0x10) | 0x02;		// default color characteristics	edid[0x19] = 0x0D;	edid[0x1A] = 0xC9;	edid[0x1B] = 0xA0;	edid[0x1C] = 0x57;	edid[0x1D] = 0x47;	edid[0x1E] = 0x98;	edid[0x1F] = 0x27;	edid[0x20] = 0x12;	edid[0x21] = 0x48;	edid[0x22] = 0x4C;		// supports 640x480@60Hz	edid[0x23] = 0x20;	edid[0x24] = 0x00;	edid[0x25] = 0x00;		// no further VESA formats	for (i = 0x26; i <= 0x35; i++) {		edid[i] = 0x01;	}		return RM_OK;}static RMstatus edid_add_monitor(RMuint8 *edid, 	RMascii *name, 	RMuint8 min_v_rate, 	RMuint8 max_v_rate, 	RMuint8 min_h_rate, 	RMuint8 max_h_rate, 	RMuint32 max_pix_clk_mhz){	RMuint32 i;		if (edid == NULL) return RM_INVALID_PARAMETER;		edid[0x5A] = 0x00;	edid[0x5B] = 0x00;	edid[0x5C] = 0x00;	edid[0x5D] = 0xFC;	edid[0x5E] = 0x00;		i = 0; 	while (name[i] && (i < 13)) {		edid[0x5F + i] = name[i];		i++;	}	if (i < 13) {		RMuint32 j;		edid[0x5F + i] = 0x0A;		for (j = 1; j < 13; j++) {			edid[0x5F + j] = 0x20;		}	}		edid[0x6C] = 0x00;	edid[0x6D] = 0x00;	edid[0x6E] = 0x00;	edid[0x6F] = 0xFD;	edid[0x70] = 0x00;	edid[0x71] = min_v_rate;	edid[0x72] = max_v_rate;	edid[0x73] = min_h_rate;	edid[0x74] = max_h_rate;	edid[0x75] = max_pix_clk_mhz / 10;	edid[0x76] = 0x00;	edid[0x77] = 0x0A;	edid[0x78] = 0x20;	edid[0x79] = 0x20;	edid[0x7A] = 0x20;	edid[0x7B] = 0x20;	edid[0x7C] = 0x20;	edid[0x7D] = 0x20;		return RM_OK;}// Please be aware that according to spec either none or both of the yuv settings have to be TRUEstatic RMstatus edid_add_extension_block(RMuint8 *edid, 	RMbool underscan, 	RMbool audio, 	RMbool yuv444, 	RMbool yuv422){	RMuint32 block, i;		block = (++(edid[0x7E]) << 7);	for (i = 0; i < 0x80; i++) {		edid[block + i] = 0;	}		edid[block + 0] = 0x02;	edid[block + 1] = 0x03;	edid[block + 2] = 4;	edid[block + 3] = (underscan ? 0x80 : 0) | (audio ? 0x40 : 0) | (yuv444 ? 0x20 : 0) | (yuv422 ? 0x10 : 0);		return RM_OK;}static RMstatus edid_add_video_tag(RMuint8 *edid, 	RMuint8 VIC, 	RMbool native){	RMuint32 block, offs;		block = (edid[0x7E] << 7);		if (edid[block + 3] & 0x0F) {		RMDBGPRINT((ENABLE, "Extension already contains DTD!\n"));		return RM_ERROR;	}		offs = edid[block + 2];	if ((offs == 4) || (offs == 36)) {		edid[block + offs] = 0x41;		offs++;	} else if (offs < 68) {		if (offs > 36) {			edid[block + 36] = 0x40 | ((edid[block + 36] & 0x1F) + 1);		} else {			edid[block + 4] = 0x40 | ((edid[block + 4] & 0x1F) + 1);		}	} else {		RMDBGPRINT((ENABLE, "Extension full!\n"));		return RM_ERROR;	}	edid[block + offs] = (native ? 0x80 : 0) | (VIC & 0x7F);	offs++;	edid[block + 2] = offs;		return RM_OK;}// PCM, 2 ch., 32/44.1/48 kHz// Speaker allocation L_Rstatic RMstatus edid_add_basic_audio_tag(RMuint8 *edid){	RMuint32 block, offs;		block = (edid[0x7E] << 7);		if (edid[block + 3] & 0x0F) {		RMDBGPRINT((ENABLE, "Extension already contains DTD!\n"));		return RM_ERROR;	}		offs = edid[block + 2];		edid[block + offs++] = 0x23;  // audio format, 1 descr.	edid[block + offs++] = 0x09;  // pcm, 2 ch.	edid[block + offs++] = 0x07;  // sample rates	edid[block + offs++] = 0x07;  // 24/20/16 bit		edid[block + offs++] = 0x83;  // speaker allocation	edid[block + offs++] = 0x01;  // L+R only	edid[block + offs++] = 0x00;  // res.	edid[block + offs++] = 0x00;  // res.		edid[block + 2] = offs;		return RM_OK;}// audio capabilities of one I2S line (-source 0)// Speaker allocation L_Rstatic RMstatus edid_add_1I2S_audio_tag(RMuint8 *edid){	RMuint32 block, offs;		block = (edid[0x7E] << 7);		if (edid[block + 3] & 0x0F) {		RMDBGPRINT((ENABLE, "Extension already contains DTD!\n"));		return RM_ERROR;	}		offs = edid[block + 2];		edid[block + offs++] = 0x23;  // audio format, 1 descr.	// 1	edid[block + offs++] = 0x09;  // pcm, 2 ch.	edid[block + offs++] = 0x7F;  // all sample rates	edid[block + offs++] = 0x07;  // 16, 20, 24 bit		edid[block + offs++] = 0x83;  // speaker allocation	edid[block + offs++] = 0x7F;  // all speakers	edid[block + offs++] = 0x00;  // res.	edid[block + offs++] = 0x00;  // res.		edid[block + 2] = offs;		return RM_OK;}// audio capabilities of four I2S lines// Speaker allocation L_Rstatic RMstatus edid_add_4I2S_audio_tag(RMuint8 *edid){	RMuint32 block, offs;		block = (edid[0x7E] << 7);		if (edid[block + 3] & 0x0F) {		RMDBGPRINT((ENABLE, "Extension already contains DTD!\n"));		return RM_ERROR;	}		offs = edid[block + 2];		edid[block + offs++] = 0x23;  // audio format, 1 descr.	// 1	edid[block + offs++] = 0x0F;  // pcm, 8 ch.	edid[block + offs++] = 0x7F;  // all sample rates	edid[block + offs++] = 0x07;  // 16, 20, 24 bit		edid[block + offs++] = 0x83;  // speaker allocation	edid[block + offs++] = 0x7F;  // all speakers	edid[block + offs++] = 0x00;  // res.	edid[block + offs++] = 0x00;  // res.		edid[block + 2] = offs;		return RM_OK;}// audio capabilities of one 96kHz SPDIF line (-source 1, HDMI 1.2 chip)// Speaker allocation: allstatic RMstatus edid_add_SPDIF96_audio_tag(RMuint8 *edid){	RMuint32 block, offs;		block = (edid[0x7E] << 7);		if (edid[block + 3] & 0x0F) {		RMDBGPRINT((ENABLE, "Extension already contains DTD!\n"));		return RM_ERROR;	}		offs = edid[block + 2];		edid[block + offs++] = 0x38;  // audio format, 8 descr.	// 1	edid[block + offs++] = 0x09;  // pcm, up to 2 ch.	edid[block + offs++] = 0x1F;  // sample rates up to 96kHz	edid[block + offs++] = 0x07;  // 16, 20, 24 bit	// 2	edid[block + offs++] = 0x17;  // ac3, up to 8 ch.	edid[block + offs++] = 0x1F;  // sample rates up to 96kHz	edid[block + offs++] = 12;    // 96 kbit/sec	// 3	edid[block + offs++] = 0x1F;  // mpeg1, up to 8 ch.	edid[block + offs++] = 0x1F;  // sample rates up to 96kHz	edid[block + offs++] = 12;    // 96 kbit/sec	// 4	edid[block + offs++] = 0x27;  // mp3, up to 8 ch.	edid[block + offs++] = 0x1F;  // sample rates up to 96kHz	edid[block + offs++] = 12;    // 96 kbit/sec	// 5	edid[block + offs++] = 0x2F;  // mpeg2, up to 8 ch.	edid[block + offs++] = 0x1F;  // sample rates up to 96kHz	edid[block + offs++] = 12;    // 96 kbit/sec	// 6	edid[block + offs++] = 0x37;  // aac, up to 8 ch.	edid[block + offs++] = 0x1F;  // sample rates up to 96kHz	edid[block + offs++] = 12;    // 96 kbit/sec	// 7	edid[block + offs++] = 0x3F;  // dts, up to 8 ch.	edid[block + offs++] = 0x1F;  // sample rates up to 96kHz	edid[block + offs++] = 12;    // 96 kbit/sec	// 8	edid[block + offs++] = 0x77;  // wma pro, up to 8 ch.	edid[block + offs++] = 0x1F;  // sample rates up to 96kHz	edid[block + offs++] = 0;     // reserved		edid[block + offs++] = 0x83;  // speaker allocation	edid[block + offs++] = 0x7F;  // all speakers	edid[block + offs++] = 0x00;  // res.	edid[block + offs++] = 0x00;  // res.		edid[block + 2] = offs;		return RM_OK;}// audio capabilities of one 192kHz SPDIF line (-source 1, HDMI 1.3 chip)// Speaker allocation: allstatic RMstatus edid_add_SPDIF192_audio_tag(RMuint8 *edid){	RMuint32 block, offs;		block = (edid[0x7E] << 7);		if (edid[block + 3] & 0x0F) {		RMDBGPRINT((ENABLE, "Extension already contains DTD!\n"));		return RM_ERROR;	}		offs = edid[block + 2];		edid[block + offs++] = 0x38;  // audio format, 8 descr.	// 1	edid[block + offs++] = 0x09;  // pcm, up to 2 ch.	edid[block + offs++] = 0x7F;  // all sample rates	edid[block + offs++] = 0x07;  // 16, 20, 24 bit	// 2	edid[block + offs++] = 0x17;  // ac3, up to 8 ch.	edid[block + offs++] = 0x7F;  // all sample rates	edid[block + offs++] = 24;    // 192 kbit/sec	// 3	edid[block + offs++] = 0x1F;  // mpeg1, up to 8 ch.	edid[block + offs++] = 0x7F;  // all sample rates	edid[block + offs++] = 24;    // 192 kbit/sec	// 4	edid[block + offs++] = 0x27;  // mp3, up to 8 ch.	edid[block + offs++] = 0x7F;  // all sample rates	edid[block + offs++] = 24;    // 192 kbit/sec	// 5	edid[block + offs++] = 0x2F;  // mpeg2, up to 8 ch.	edid[block + offs++] = 0x7F;  // all sample rates	edid[block + offs++] = 24;    // 192 kbit/sec	// 6	edid[block + offs++] = 0x37;  // aac, up to 8 ch.	edid[block + offs++] = 0x7F;  // all sample rates	edid[block + offs++] = 24;    // 192 kbit/sec	// 7	edid[block + offs++] = 0x3F;  // dts, up to 8 ch.	edid[block + offs++] = 0x7F;  // all sample rates	edid[block + offs++] = 24;    // 192 kbit/sec	// 8	edid[block + offs++] = 0x77;  // wma pro, up to 8 ch.	edid[block + offs++] = 0x7F;  // all sample rates	edid[block + offs++] = 0;     // reserved		edid[block + offs++] = 0x83;  // speaker allocation	edid[block + offs++] = 0x7F;  // all speakers	edid[block + offs++] = 0x00;  // res.	edid[block + offs++] = 0x00;  // res.		edid[block + 2] = offs;		return RM_OK;}// All codecs, all ch., all fs, 24 bit// Speaker allocation L_Rstatic RMstatus edid_add_all_audio_tags(RMuint8 *edid){	RMuint32 block, offs;		block = (edid[0x7E] << 7);		if (edid[block + 3] & 0x0F) {		RMDBGPRINT((ENABLE, "Extension already contains DTD!\n"));		return RM_ERROR;	}		offs = edid[block + 2];		edid[block + offs++] = 0x3E;  // audio format, 10 descr.	// 1	edid[block + offs++] = 0x0F;  // pcm, up to 8 ch.	edid[block + offs++] = 0x7F;  // all sample rates	edid[block + offs++] = 0x07;  // 16, 20, 24 bit	// 2	edid[block + offs++] = 0x17;  // ac3, up to 8 ch.	edid[block + offs++] = 0x7F;  // all sample rates	edid[block + offs++] = 250;   // 2 Mbit/sec	// 3	edid[block + offs++] = 0x1F;  // mpeg1, up to 8 ch.	edid[block + offs++] = 0x7F;  // all sample rates

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色av成人天堂桃色av| 久久99精品国产.久久久久久| 一区二区久久久久| 石原莉奈在线亚洲二区| 国产精品一二三四| 在线精品观看国产| 久久久久高清精品| 亚洲自拍偷拍av| 精品一区二区三区在线观看国产 | 欧美日韩欧美一区二区| 日韩欧美国产一区在线观看| 国产精品欧美一区喷水| 亚洲电影在线播放| 国产精品99久久久| 欧美人与禽zozo性伦| 久久久精品国产免费观看同学| 亚洲卡通欧美制服中文| 久久99久久99小草精品免视看| av激情成人网| 337p粉嫩大胆噜噜噜噜噜91av| 亚洲精品免费在线播放| 久久www免费人成看片高清| 99精品欧美一区| 久久综合色之久久综合| 亚洲美女视频在线观看| 国产激情偷乱视频一区二区三区 | 国产一区二区三区久久久 | 1024国产精品| 精品中文字幕一区二区小辣椒| 91麻豆免费看片| 精品国产电影一区二区| 午夜欧美视频在线观看| 91在线你懂得| 久久久久国产成人精品亚洲午夜| 视频一区二区国产| 色欲综合视频天天天| 久久久久久黄色| 日韩激情av在线| 色综合中文字幕国产| 精品国产1区二区| 亚洲aⅴ怡春院| 91香蕉视频mp4| 国产精品欧美久久久久一区二区 | 欧美不卡一区二区三区| 一区二区三区四区亚洲| 成人免费电影视频| 2023国产一二三区日本精品2022| 日韩黄色免费电影| 日本韩国欧美国产| 国产精品高潮久久久久无| 国产白丝网站精品污在线入口| 欧美电影精品一区二区| 日韩精品一二区| 欧美日韩在线播| 有码一区二区三区| 91麻豆精东视频| 一区在线中文字幕| av综合在线播放| 国产精品污www在线观看| 国产一区二区伦理片| ww亚洲ww在线观看国产| 精品亚洲成a人在线观看| 欧美一区二区三区婷婷月色 | 欧美xxxxxxxx| 麻豆freexxxx性91精品| 欧美一区午夜精品| 日韩av在线播放中文字幕| 在线观看91av| 色8久久精品久久久久久蜜| 亚洲欧洲另类国产综合| 91在线观看视频| 亚洲免费观看在线观看| 色欧美日韩亚洲| 亚洲综合小说图片| 欧美视频一区在线观看| 午夜精品久久久久久不卡8050| 欧美视频一区在线观看| 日韩福利视频导航| 日韩一区二区免费视频| 韩国v欧美v亚洲v日本v| 国产日韩欧美激情| 成人激情小说网站| 亚洲精品国产精华液| 欧美三级中文字幕在线观看| 日韩制服丝袜先锋影音| 精品久久久久一区二区国产| 国产一区 二区 三区一级| 欧美激情艳妇裸体舞| 成人aaaa免费全部观看| 亚洲一区二区三区四区在线| 欧美绝品在线观看成人午夜影视| 日本vs亚洲vs韩国一区三区二区 | 精品午夜一区二区三区在线观看| 亚洲蜜臀av乱码久久精品蜜桃| 国产一区二三区好的| 久久久影视传媒| www.综合网.com| 亚洲午夜日本在线观看| 91精品国产综合久久精品| 国产一区二区影院| 中文字幕av资源一区| 91美女福利视频| 日韩av一二三| 欧美韩国日本一区| 欧洲精品一区二区| 美美哒免费高清在线观看视频一区二区| 久久这里都是精品| 一本色道久久综合亚洲91| 日本中文字幕一区二区视频 | 亚洲国产精品嫩草影院| 日韩你懂的在线观看| 国产成人av自拍| 一卡二卡三卡日韩欧美| 88在线观看91蜜桃国自产| 国产一区欧美一区| 亚洲精选视频在线| 国产精品久久久久一区二区三区 | 天天综合天天做天天综合| 欧美电影免费提供在线观看| 福利电影一区二区| 日韩精品免费视频人成| 欧美国产亚洲另类动漫| 欧美日韩一区在线| 国产传媒欧美日韩成人| 亚洲午夜精品17c| 欧美sm极限捆绑bd| 色哟哟日韩精品| 国产一区二区网址| 香蕉久久夜色精品国产使用方法| 久久久综合激的五月天| 欧美色老头old∨ideo| 成人综合在线观看| 日韩国产精品久久久久久亚洲| 欧美经典一区二区| 3atv一区二区三区| 99久久免费精品| 国产中文字幕一区| 亚洲成av人**亚洲成av**| 欧美国产日韩一二三区| 在线成人午夜影院| 91免费在线视频观看| 狠狠v欧美v日韩v亚洲ⅴ| 亚洲第一成人在线| 综合久久给合久久狠狠狠97色| 欧美tickling挠脚心丨vk| 欧美日韩国产a| 99re这里只有精品6| 国产美女主播视频一区| 日一区二区三区| 亚洲女同女同女同女同女同69| 久久久不卡网国产精品一区| 91精品国产综合久久香蕉的特点| 色欲综合视频天天天| 成人午夜激情片| 激情六月婷婷久久| 五月天婷婷综合| 一区二区三区成人| 欧美激情一区在线| 久久精品网站免费观看| 欧美不卡在线视频| 日韩一级视频免费观看在线| 欧美日韩一区精品| 91精彩视频在线| 99久久久无码国产精品| 成人福利视频在线看| 国产中文字幕精品| 国产在线麻豆精品观看| 久久成人久久鬼色| 蜜臀av性久久久久蜜臀aⅴ| 香蕉成人伊视频在线观看| 亚洲福利电影网| 洋洋成人永久网站入口| 久久成人精品无人区| 裸体歌舞表演一区二区| 日本va欧美va精品发布| 日韩精品欧美成人高清一区二区| 亚洲丶国产丶欧美一区二区三区| 亚洲精品v日韩精品| 日韩美女精品在线| 亚洲色大成网站www久久九九| 中文字幕在线不卡一区二区三区| 国产精品入口麻豆九色| 国产精品久久久久影院色老大| 欧美国产一区在线| 自拍偷拍欧美精品| 亚洲欧美一区二区三区久本道91| 亚洲日本青草视频在线怡红院| 国产精品成人一区二区艾草| 欧美国产乱子伦| 国产精品美女久久久久久| 国产精品久久久久久亚洲伦| 99国产精品久久久| 欧美日本乱大交xxxxx| 在线日韩国产精品| 日本二三区不卡| 色婷婷精品大在线视频| 91精彩视频在线观看| 欧美丝袜第三区| 日韩亚洲欧美成人一区| 日韩av电影免费观看高清完整版 |