libavutil/thread.h: Fixed g++ build error when ASSERT_LEVEL is greater than 1
authorAaron Levinson <alevinsn@aracnet.com>
Mon, 17 Apr 2017 00:13:31 +0000 (17:13 -0700)
committerMarton Balint <cus@passwd.hu>
Sat, 22 Apr 2017 21:32:41 +0000 (23:32 +0200)
commit5b281b476b32c35527c0eea5f42161c4acad83f9
tree97d055de380e3fe5fc9581ea0de94f0b90201f1d
parentc037f2f1ba3a2d3114575323550f456e66695edf
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>
libavutil/thread.h