void FFmpegInteropLogging::SetLogProvider()

in FFmpegInterop/Source/FFmpegInteropLogging.cpp [41:62]


void FFmpegInteropLogging::SetLogProvider(ILogProvider^ logProvider)
{
	s_pLogProvider = logProvider;
	av_log_set_callback([](void*avcl, int level, const char *fmt, va_list vl)->void
	{
		if (level <= av_log_get_level())
		{
			if (s_pLogProvider != nullptr)
			{
				char pLine[1000];
				int printPrefix = 1;
				av_log_format_line(avcl, level, fmt, vl, pLine, sizeof(pLine), &printPrefix);

				wchar_t wLine[sizeof(pLine)];
				if (MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, pLine, -1, wLine, sizeof(pLine)) != 0)
				{
					s_pLogProvider->Log((LogLevel)level, ref new String(wLine));
				}
			}
		}
	});
}