diff --git a/framework/support/platform/src/hdmi/hdmi_dfm.c b/framework/support/platform/src/hdmi/hdmi_dfm.c index ffc89fe7a790ab3283e5b4d18d1cfaddb37f63dd..2e083d5cd0e733244af213c695908010c4680ae9 100644 --- a/framework/support/platform/src/hdmi/hdmi_dfm.c +++ b/framework/support/platform/src/hdmi/hdmi_dfm.c @@ -79,7 +79,7 @@ static void HdmiDfmBaseInfoInit(struct HdmiDfmInfo *info, const struct HdmiDfmPa return; } - /* 2. Determine the minimum Video Line period. the coefficient for converting from Mbps to bps. 1000000000000*/ + /* 2. Determine the minimum Video Line period. the coefficient for converting from Mbps to bps.1000000000000*/ info->lineMinTime = (uint64_t)info->htotal * 1000000000000 / info->maxPixelClk; info->lineMaxTime = (uint64_t)info->htotal * 1000000000000 / info->minPixelClk; @@ -91,7 +91,8 @@ static void HdmiDfmBaseInfoInit(struct HdmiDfmInfo *info, const struct HdmiDfmPa info->minFrlCharRate = info->minBitRate / 18; info->maxFrlCharRate = info->maxBitRate / 18; - /* 5. Determine the Total FRL Characters per line Period. */ + /* 5. Determine the Total FRL Characters per line Period. the coefficient for converting from Mbps to bps. + 1000000000000*/ info->minFrlCharsPerLine = (uint32_t)(info->lineMinTime * info->minFrlCharRate * param->laneNum / 1000000000000); info->maxFrlCharsPerLine = (uint32_t)(info->lineMaxTime * info->maxFrlCharRate * param->laneNum / 1000000000000); diff --git a/framework/tools/hdi-gen/util/options.cpp b/framework/tools/hdi-gen/util/options.cpp index 2e7e42657a47dd4f5934455a61f755120406f358..d1479f700c24483d9db08f5eea5b9aad693a2a63 100644 --- a/framework/tools/hdi-gen/util/options.cpp +++ b/framework/tools/hdi-gen/util/options.cpp @@ -86,7 +86,7 @@ bool Options::Parse(int argc, char *argv[]) ret = AddPackagePath(optarg); break; case 'o': - outPutFile = optarg; + outPutFile = CheckOutPutFile(optarg); break; default: doShowUsage = true; @@ -175,6 +175,21 @@ void Options::AddSources(const std::string &sourceFile) doCompile = true; } +std::string Options::CheckOutPutFile(const std::string &sourceFile) +{ + std::string realPath = File::AdapterRealPath(sourceFile); + if (realPath.empty()) { + Logger::E(TAG, "invalid idl file path:%s", sourceFile.c_str()); + return ""; + } + + if (!File::VerifyRealPath(realPath)) { + Logger::E(TAG, "verify path failed, path:%s", realPath.c_str()); + return ""; + } + return realPath; +} + void Options::AddSourcesByDir(const std::string &dir) { std::set files = File::FindFiles(dir); diff --git a/framework/tools/hdi-gen/util/options.h b/framework/tools/hdi-gen/util/options.h index 8ba364deb629fd031b0ebb67e7f76ee42539cfde..1eb393e8632b85265e83faaf45e086fffad63e16 100644 --- a/framework/tools/hdi-gen/util/options.h +++ b/framework/tools/hdi-gen/util/options.h @@ -160,6 +160,8 @@ private: void AddSources(const std::string &sourceFile); + std::string CheckOutPutFile(const std::string &sourceFile); + void AddSourcesByDir(const std::string &dir); void SetOutDir(const std::string &dir);