2013-10-21 6 views
0

x264.lib를 사용하는 C++ 솔루션이 있습니다. x264 lib에서 일부 로깅을 볼 수 있도록 params.i_log_level = X264_LOG_DEBUG;을 설정했습니다. 그러나 Visual Studio 출력 창에서 디버깅하는 동안 x264 관련 로그가 표시되지 않습니다.x264의 로그를 볼 수 없습니다. lib

어떻게 그 로그를 볼 수 있습니까?

답변

1

로그 수준을 사용하면 디버그 출력을 생성하는 기본 로깅 처리기를 그대로 둡니다. 이 경우 stderr에 쓰고 Visual Studio 출력 창에 출력이 나타나지 않습니다.

static void x264_log_default(void *p_unused, int i_level, const char *psz_fmt, 
    va_list arg) 
{ 
    // ... 
    fprintf(stderr, "x264 [%s]: ", psz_prefix); 
    vfprintf(stderr, psz_fmt, arg); 

당신은 params.pf_log에 자신의 로그 기능을 제공하고 OutputDebugString API에 전달 된 데이터가 있어야합니다. 이 방법은 VS 출력 창에서 나타납니다.

+0

고마워요. 나는 그 생각을 가지고있다. X264_log (void * p_unused, int i_level, const char * psz_fmt, va_list arg) 이 함수는 성공적으로 호출되지만 매개 변수 arg에는 일반 문자 대신 이상한 기호가 포함되어 있습니다. 결과적으로 "arg"를 OutputDebugString에 전달할 때 VS 출력 창에 "???????"가 표시됩니다. 또는 다른 이상한 기호. – mkd156

+0

뭔가 잘못하고 있습니다. 아마 유니 코드 문자열을 잘못 처리하고있을 것입니다. x264의'x264_log_default' 구현물을 보면서 정확히 무엇을하는지 볼 수 있습니다. 또는'OutputDebugStringA'를 호출하여 ANSI 인수 문자열에 액세스 할 수 있습니다. –

+0

OutputDebugStringA를 사용했습니다. 다음은 로그 레벨에 관계없이 출력 창에 로그를 표시하려는 간단한 기능입니다. static void X264_log (void * p_unused, int i_level, const char * psz_fmt, va_list arg) { OutputDebugStringA (arg); }; 하지만 여기에 출력 "¨ë½8q?>'pë½ ßââ½½ \ ýqq? 디버깅하는 동안 "arg"문자 배열 내용을 볼 때 정상적인 것이 아닌 음수의 로그가 표시됩니다. – mkd156

관련 문제