//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // 根据文件名获取视频大小 BOOL COpenDlg::GetSize(PCTSTR ptzFileName) { INT i; PTSTR p; TCHAR tzFileName[MAX_PATH]; // 获取文件名称 lstrcpy(tzFileName, ptzFileName); CharUpper(tzFileName); p = _StrRChr(tzFileName, '\\'); _ExIfElse(p == NULL, return(FALSE), p++); // 根据格式字符串确定大小 for (i = _NumOf(c_tzFormats) - 1; i >= 0; i--) { if (_StrStr(p, c_tzFormats[i])) { m_riFormat.m_uWidth = c_uFormats[i][0]; m_riFormat.m_iHeight = c_uFormats[i][1]; return TRUE; } } // 根据数字确定大小 INT w, h; if (guessResolution(p, w, h)) { m_riFormat.m_uWidth = w; m_riFormat.m_iHeight = h; return TRUE; } return FALSE; }
bool VppOutputEncode::init(const char* outputFileName) { m_mime = guessMime(outputFileName); if (!m_mime) return false; if (!guessResolution(outputFileName, m_width, m_height)) return false; m_fourcc = VA_FOURCC_NV12; m_output.reset(EncodeOutput::create(outputFileName, m_width, m_height)); return m_output; }