亚洲欧美第一页_禁久久精品乱码_粉嫩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色图| 丁香桃色午夜亚洲一区二区三区| 欧美日韩国产区一| 亚洲精品日产精品乱码不卡| 丁香激情综合国产| 欧美成人一区二区| 午夜久久久久久电影| 91麻豆精品在线观看| 中文无字幕一区二区三区| 久久国产精品区| 日韩亚洲欧美一区二区三区| 亚洲国产欧美另类丝袜| 成人短视频下载| 久久久久久99精品| 久久激五月天综合精品| 91麻豆精品国产91久久久资源速度 | 亚洲电影一级黄| 99这里都是精品| 国产人久久人人人人爽| 国产在线播放一区三区四| 日韩欧美一级片| 久久精品国产精品亚洲精品| 日韩视频免费观看高清完整版 | 成人av一区二区三区| 日本一区二区成人| 成人国产一区二区三区精品| 日本一区二区三区四区在线视频 | 日本三级韩国三级欧美三级| 欧美日韩五月天| 亚洲小说欧美激情另类| 在线看日本不卡| 亚洲综合成人网| 精品视频全国免费看| 日韩专区一卡二卡| 日韩视频在线你懂得| 美女任你摸久久 | 亚洲欧洲综合另类在线| 91小视频免费观看| 亚洲裸体xxx| 欧美在线视频不卡| 性欧美疯狂xxxxbbbb| 日韩午夜在线观看| 国产精品影视在线| 亚洲欧洲精品成人久久奇米网| 97久久精品人人澡人人爽| 一区二区三区四区视频精品免费 | 亚洲成人黄色小说| 欧美日韩亚洲综合在线 欧美亚洲特黄一级 | 粉嫩av一区二区三区粉嫩 | 99国产精品国产精品毛片| 成人免费一区二区三区视频| 在线观看日韩精品| 日韩高清欧美激情| 久久久精品免费观看| 日本韩国一区二区三区视频| 丝袜脚交一区二区| 国产日韩欧美精品在线| 欧美艳星brazzers| 极品瑜伽女神91| 一区二区三区四区中文字幕| 精品电影一区二区| 色一情一伦一子一伦一区| 美女网站一区二区| 一区二区三区在线视频观看58| 欧美xxx久久| 欧美三级日韩在线| 国产成人午夜电影网| 婷婷开心久久网| 亚洲视频一区在线| 精品国产乱码91久久久久久网站| 91在线观看视频| 国产乱子伦视频一区二区三区 | 日本不卡一区二区三区| 中文字幕精品综合| 日韩欧美www| 欧美日韩在线播放一区| 97se亚洲国产综合自在线不卡| 蜜臂av日日欢夜夜爽一区| 亚洲免费观看在线视频| 国产欧美在线观看一区| 日韩欧美国产三级电影视频| 在线观看91精品国产入口| jiyouzz国产精品久久| 精品一区二区久久久| 亚洲成人免费影院| 自拍视频在线观看一区二区| 久久精品夜夜夜夜久久| 日韩视频在线观看一区二区| 欧美日韩视频不卡| 在线观看中文字幕不卡| www.性欧美| 高清av一区二区| 国产一区二区精品久久| 久久精品国产久精国产爱| 日韩中文字幕一区二区三区| 亚洲欧美国产高清| 综合av第一页| 最新欧美精品一区二区三区| 欧美激情在线免费观看| 久久久久久97三级| 精品美女在线观看| 久久蜜桃一区二区| 久久综合精品国产一区二区三区| 日韩视频永久免费| 久久综合精品国产一区二区三区| 欧美变态口味重另类| 欧美tk丨vk视频| www精品美女久久久tv| 久久久国产一区二区三区四区小说 | 欧美日韩一区小说| 欧美性欧美巨大黑白大战| 色婷婷精品大视频在线蜜桃视频| 91视频国产资源| 在线亚洲高清视频| 欧美日韩小视频| 日韩精品一区二区三区在线播放 | 国产亚洲女人久久久久毛片| 精品99久久久久久| 国产亚洲欧美激情| 自拍偷拍国产亚洲| 亚洲1区2区3区视频| 日韩中文字幕麻豆| 国产一区不卡在线| a4yy欧美一区二区三区| 色噜噜夜夜夜综合网| 51午夜精品国产| www一区二区| 亚洲欧美日韩中文播放| 五月激情综合婷婷| 久久国产夜色精品鲁鲁99| 成人激情免费网站| 91成人在线精品| 欧美不卡一区二区三区四区| 久久久久久免费网| 亚洲综合在线第一页| 久久电影网电视剧免费观看| 成人av影院在线| 欧美日韩国产综合一区二区| 欧美va在线播放| 亚洲日本乱码在线观看| 天堂va蜜桃一区二区三区漫画版 | 久久色.com| 亚洲精品自拍动漫在线| 美女视频免费一区| 色偷偷一区二区三区| 日韩欧美在线1卡| 中文字幕中文字幕在线一区 | 日韩一区二区免费在线电影| 国产亚洲成年网址在线观看| 又紧又大又爽精品一区二区| 国产麻豆视频一区| 这里只有精品视频在线观看| 中文字幕一区二区三区乱码在线 | 一二三区精品视频| 国产一区二区三区在线观看免费| 91丨九色丨尤物| 久久女同精品一区二区| 五月婷婷综合网| 一本大道av一区二区在线播放| 精品国产亚洲在线| 亚洲综合清纯丝袜自拍| 成人v精品蜜桃久久一区| 精品久久久三级丝袜| 午夜婷婷国产麻豆精品| 99国产精品久久久久久久久久| 久久这里只有精品首页| 五月激情六月综合| 欧日韩精品视频| 国产精品麻豆视频| 国产一区二区三区免费| 在线综合视频播放| 图片区小说区区亚洲影院| 91老师国产黑色丝袜在线| 国产偷v国产偷v亚洲高清 | 欧美综合一区二区| 欧美经典一区二区三区| 精品一区二区三区影院在线午夜| 欧美午夜精品久久久久久超碰| 国产精品午夜久久| 国产成人综合亚洲91猫咪| 日韩午夜av一区| 免费在线观看一区二区三区| 欧美日韩国产首页| 亚洲国产精品精华液网站| 欧美性生活久久| 亚洲成人免费看| 678五月天丁香亚洲综合网| 午夜精品久久久久久不卡8050| 欧美图片一区二区三区| 亚洲bt欧美bt精品| 精品视频在线免费观看| 亚州成人在线电影| 日韩一级欧美一级|