mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-01-13 21:28:01 +02:00
libavutil/thread.h: Fixed g++ build error when ASSERT_LEVEL is greater than 1
Purpose: libavutil/thread.h: Fixed g++ build error when ASSERT_LEVEL is greater than 1. This is only relevant when thread.h is included by C++ files. In this case, the relevant code is only defined if HAVE_PTHREADS is defined as 1. Use configure --assert-level=2 to do so. Note: Issue discovered as a result of Coverity build failure. Cause of build failure pinpointed by Hendrik Leppkes. Comments: -- libavutil/thread.h: Altered ASSERT_PTHREAD_NORET definition such that it uses av_make_error_string instead of av_err2str(). av_err2str() uses a "parenthesized type followed by an initializer list", which is apparently not valid C++. This issue started occurring because thread.h is now included by the DeckLink C++ files. The alteration does the equivalent of what av_err2str() does, but instead declares the character buffer as a local variable. Signed-off-by: Marton Balint <cus@passwd.hu>
This commit is contained in:
parent
c037f2f1ba
commit
5b281b476b
@ -36,8 +36,11 @@
|
||||
#define ASSERT_PTHREAD_NORET(func, ...) do { \
|
||||
int ret = func(__VA_ARGS__); \
|
||||
if (ret) { \
|
||||
char errbuf[AV_ERROR_MAX_STRING_SIZE] = ""; \
|
||||
av_log(NULL, AV_LOG_FATAL, AV_STRINGIFY(func) \
|
||||
" failed with error: %s\n", av_err2str(AVERROR(ret))); \
|
||||
" failed with error: %s\n", \
|
||||
av_make_error_string(errbuf, AV_ERROR_MAX_STRING_SIZE, \
|
||||
AVERROR(ret))); \
|
||||
abort(); \
|
||||
} \
|
||||
} while (0)
|
||||
|
Loading…
Reference in New Issue
Block a user