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

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

?? edid_maker.c

?? SigmDesign SMP8634 media decode chip development SDK
?? 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一区二区三区免费野_久草精品视频
欧美激情一区在线观看| 五月婷婷色综合| 欧美不卡123| 日韩一级成人av| 欧美日韩国产高清一区二区| 色综合天天综合网国产成人综合天| 国产福利视频一区二区三区| 国产一区二区主播在线| 精品一区二区三区影院在线午夜| 日韩电影免费在线看| 五月天亚洲婷婷| 九九热在线视频观看这里只有精品| 久久爱www久久做| 国产精品白丝jk白祙喷水网站| 国产精品一级在线| 91猫先生在线| 欧美肥妇free| 国产亚洲美州欧州综合国| 国产精品久久久久影院亚瑟| 综合av第一页| 亚洲成人av一区二区三区| 六月丁香综合在线视频| 国产成人小视频| 91福利精品第一导航| 宅男在线国产精品| 久久久久99精品一区| 国产精品久久久久一区二区三区| 艳妇臀荡乳欲伦亚洲一区| 日本91福利区| 爽好久久久欧美精品| 蜜桃视频在线一区| 91丨porny丨国产入口| 欧美一区三区四区| 国产精品不卡在线| 美腿丝袜亚洲一区| 91在线视频官网| 欧美高清视频一二三区 | 亚洲欧美国产77777| 亚洲丝袜另类动漫二区| 蜜桃传媒麻豆第一区在线观看| 国产精品 欧美精品| 欧美精选在线播放| 欧美韩日一区二区三区四区| 综合在线观看色| 精品午夜一区二区三区在线观看| 91麻豆国产福利在线观看| 精品国产电影一区二区| 亚洲国产成人av好男人在线观看| 国产91在线看| 精品久久久影院| 婷婷成人激情在线网| 成a人片国产精品| 久久众筹精品私拍模特| 天堂蜜桃一区二区三区| 日本久久精品电影| 日本一区二区在线不卡| 激情深爱一区二区| 欧美一区中文字幕| 婷婷成人激情在线网| 在线观看三级视频欧美| 国产精品福利电影一区二区三区四区| 久久99精品久久久久久动态图 | 国产精品996| 日韩一级片网站| 美日韩一区二区三区| 91精品国产综合久久精品图片| 亚洲午夜激情av| 91久久国产综合久久| 99视频精品在线| 欧美日韩精品一区二区| 国产日韩欧美高清| 国产麻豆精品在线观看| 精品三级在线看| 日本午夜一区二区| 欧美日韩中字一区| 日韩国产一二三区| 欧美一区二区三区啪啪| 精品一区二区日韩| 欧美成人女星排名| 国产在线看一区| 中文字幕免费观看一区| 99国产精品久久久久久久久久久| 欧美国产精品久久| 色综合夜色一区| 亚洲一区二区三区三| 717成人午夜免费福利电影| 秋霞成人午夜伦在线观看| 日韩视频在线一区二区| 国产麻豆一精品一av一免费| 国产欧美一区二区三区网站 | 91豆麻精品91久久久久久| 欧美成人高清电影在线| 日日摸夜夜添夜夜添精品视频| 色狠狠综合天天综合综合| 一区二区三区不卡视频在线观看| 在线视频一区二区三区| 一区二区免费视频| 欧美一区二区久久| 国产精品亚洲视频| 亚洲欧洲日韩综合一区二区| 99久久er热在这里只有精品66| 亚洲国产综合在线| 欧美日韩视频在线第一区| 国产一区二区三区四区在线观看| 中文字幕精品综合| 欧美精品亚洲一区二区在线播放| 激情久久五月天| 亚洲三级在线观看| 日韩精品专区在线影院重磅| www.亚洲色图.com| 日韩av二区在线播放| 欧美激情一区二区三区不卡| 欧美日本国产一区| av成人老司机| 久久成人免费电影| 亚洲自拍偷拍综合| 国产欧美一区二区精品久导航| 精品视频在线免费观看| 大美女一区二区三区| 日本特黄久久久高潮| 国产精品视频线看| 日韩欧美色综合| 91香蕉视频污在线| 精品一区二区三区视频| 亚洲精品亚洲人成人网| 国产欧美日韩另类视频免费观看 | 国产精品久久影院| 欧美成人性福生活免费看| 在线观看网站黄不卡| 日韩女优av电影| 蜜臀久久久久久久| 91精品国产高清一区二区三区蜜臀 | 欧美一级精品在线| 欧美中文字幕一二三区视频| 狠狠色综合播放一区二区| 伊人夜夜躁av伊人久久| 国产亚洲欧美一区在线观看| 国产精品久久久久影院色老大| 91在线视频网址| 国产成人免费视频| 国产主播一区二区| 另类小说视频一区二区| 日韩电影免费在线看| 天堂蜜桃一区二区三区| 亚洲成人av免费| 亚洲不卡一区二区三区| 天堂在线一区二区| 午夜精品一区在线观看| 同产精品九九九| 午夜精品福利视频网站| 日韩电影一区二区三区| 麻豆精品视频在线| 老鸭窝一区二区久久精品| 久久99热狠狠色一区二区| 蜜臀99久久精品久久久久久软件| 欧美aaa在线| 国内精品视频666| 国产精品一二三在| 国产精品一区一区| 国产精品一二三四区| 国产盗摄精品一区二区三区在线| 国产精品一区二区在线观看不卡| 国产自产2019最新不卡| 国产91露脸合集magnet| 成人av在线电影| 91精彩视频在线| 3atv一区二区三区| 久久久噜噜噜久久人人看| 国产精品久久久久三级| 一区二区三区免费观看| 日本在线播放一区二区三区| 蜜臀av性久久久久蜜臀aⅴ四虎 | 国产精品视频免费| 亚洲精品国产一区二区三区四区在线| 亚洲午夜精品久久久久久久久| 免费在线观看视频一区| 成人黄色小视频在线观看| 97久久超碰国产精品| 欧美高清视频不卡网| 久久精品欧美日韩精品| 亚洲精选一二三| 美国毛片一区二区| eeuss鲁片一区二区三区| 欧美精品免费视频| 欧美激情艳妇裸体舞| 亚洲国产欧美在线人成| 国产一区久久久| 欧美天堂亚洲电影院在线播放| 欧美乱妇23p| 国产精品麻豆一区二区| 午夜精品视频在线观看| 成人成人成人在线视频| 日韩写真欧美这视频| 最新国产精品久久精品| 精品一区二区三区在线播放| 色欧美乱欧美15图片| 国产日韩欧美综合一区| 亚洲国产毛片aaaaa无费看 | 国产午夜精品一区二区三区四区| 亚洲伦理在线免费看|