Пример #1
0
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// 根据文件名获取视频大小
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;
}
Пример #2
0
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;
}