コード例 #1
0
ファイル: ppm.cpp プロジェクト: Rageous/Core
AVIExporter::AVIExporter(std::string outputFileName, int frameRate)
: outputFileName(outputFileName), fileIdx(0), frameRate(frameRate) {
    if (!ChooseCodec(NULL, &videoOptions))
        throw ExporterException(outputFileName);

    open();

    void *bitmapBuffer = malloc(rowstride * display.height + sizeof(BITMAPINFOHEADER));
    bitmap = (BITMAPINFOHEADER*)bitmapBuffer;
    ZeroMemory(bitmap, sizeof(BITMAPINFOHEADER));
    bitmap->biWidth = display.width;
    bitmap->biHeight = display.height;
    bitmap->biBitCount = 24;
    bitmap->biPlanes = 1;
    bitmap->biSize = sizeof(BITMAPINFOHEADER);
    bitmap->biCompression = BI_RGB;
    bitmap->biSizeImage = rowstride * display.height;
}
XnStatus XnStreamDeviceStreamHolder::Init(const XnActualPropertiesHash* pProps)
{
	XnStatus nRetVal = XN_STATUS_OK;

	XN_VALIDATE_ADD_PROPERTIES(GetStream(), &m_Compression);

	nRetVal = XnDeviceModuleHolder::Init(pProps);
	XN_IS_STATUS_OK(nRetVal);

	// create codec
	nRetVal = m_CodecProperties.Set(&m_Compression, &m_Compression);
	XN_IS_STATUS_OK(nRetVal);

	XnCallbackHandle hDummy;
	nRetVal = m_Compression.OnChangeEvent().Register(CodecPropertyChangedCallback, this, hDummy);
	XN_IS_STATUS_OK(nRetVal);

	nRetVal = ChooseCodec();
	XN_IS_STATUS_OK(nRetVal);

	return (XN_STATUS_OK);
}