assert(3) is a debugging aid. Do not leave it enabled
on release builds.
---
At least some of those asserts should be converted to normal
failure paths, I'm afraid. Help welcome.
configure | 9 +++++++++
libavcodec/dvdsubenc.c | 1 -
libavcodec/libschroedingerdec.c | 1 -
libavcodec/libvorbis.c | 1 -
libavcodec/motion_est.c | 1 -
libavcodec/mpegvideo_xvmc.c | 1 -
libavcodec/qcelpdec.c | 1 -
libavcodec/qdm2.c | 1 -
libavcodec/ratecontrol.c | 1 -
libavcodec/svq1dec.c | 1 -
libavcodec/svq1enc.c | 1 -
libavcodec/vc1.c | 1 -
libavcodec/vdpau.c | 1 -
libavcodec/vorbisenc.c | 1 -
libavcodec/wma.c | 1 -
libavcodec/wmadec.c | 1 -
libavcodec/wmaenc.c | 1 -
libavfilter/vf_yadif.c | 1 -
libavformat/asfenc.c | 1 -
libavformat/avidec.c | 1 -
libavformat/flvenc.c | 1 -
libavformat/mov.c | 1 -
libavformat/movenc.c | 1 -
libavformat/mpeg.c | 1 -
libavformat/mpegenc.c | 1 -
libavformat/mux.c | 1 -
libavformat/nutdec.c | 1 -
libavformat/utils.c | 1 -
libavutil/avassert.h | 4 ++--
29 files changed, 11 insertions(+), 29 deletions(-)
diff --git a/configure b/configure
index c3c4f82..fd31099 100755
--- a/configure
+++ b/configure
@@ -325,6 +325,7 @@ Developer options (useful when working on Libav itself):
--random-seed=VALUE seed value for --enable/disable-random
--disable-valgrind-backtrace do not print a backtrace under Valgrind
(only applies to --disable-optimizations builds)
+ --enable-assert=LEVEL enable asserts
NOTE: Object files are built at the place where configure is launched.
EOF
@@ -1650,6 +1651,7 @@ CMDLINE_SELECT="
$CONFIG_LIST
$HAVE_LIST_CMDLINE
$THREADS_LIST
+ assert
asm
cross_compile
debug
@@ -2513,6 +2515,9 @@ for opt do
--disable-devices)
disable $INDEV_LIST $OUTDEV_LIST
;;
+ --enable-assert=*)
+ assertlevel="$optval"
+ ;;
--enable-debug=*)
debuglevel="$optval"
;;
@@ -4521,6 +4526,7 @@ enabled vdpau && enabled xlib &&
enable vdpau_x11
enabled debug && add_cflags -g"$debuglevel" && add_asflags -g"$debuglevel"
+enabled assert || add_cflags -DNDEBUG
# add some useful compiler flags if supported
check_cflags -Wdeclaration-after-statement
@@ -5017,6 +5023,9 @@ cat > $TMPH <<EOF
#define SLIBSUF "$SLIBSUF"
EOF
+test -n "$assertlevel" &&
+ echo "#define ASSERT_LEVEL $assertlevel" >>$TMPH
+
test -n "$malloc_prefix" &&
echo "#define MALLOC_PREFIX $malloc_prefix" >>$TMPH
diff --git a/libavcodec/dvdsubenc.c b/libavcodec/dvdsubenc.c
index f62e943e..2409d20 100644
--- a/libavcodec/dvdsubenc.c
+++ b/libavcodec/dvdsubenc.c
@@ -21,7 +21,6 @@
#include "avcodec.h"
#include "bytestream.h"
-#undef NDEBUG
#include <assert.h>
// ncnt is the nibble counter
diff --git a/libavcodec/libschroedingerdec.c b/libavcodec/libschroedingerdec.c
index d2594c6..08210cb 100644
--- a/libavcodec/libschroedingerdec.c
+++ b/libavcodec/libschroedingerdec.c
@@ -37,7 +37,6 @@
#include "internal.h"
#include "libschroedinger.h"
-#undef NDEBUG
#include <assert.h>
diff --git a/libavcodec/libvorbis.c b/libavcodec/libvorbis.c
index 86c1ed6..a45da94 100644
--- a/libavcodec/libvorbis.c
+++ b/libavcodec/libvorbis.c
@@ -35,7 +35,6 @@
#include "vorbis.h"
#include "vorbis_parser.h"
-#undef NDEBUG
#include <assert.h>
/* Number of samples the user should send in each call.
diff --git a/libavcodec/motion_est.c b/libavcodec/motion_est.c
index 657c28a..f135bb7 100644
--- a/libavcodec/motion_est.c
+++ b/libavcodec/motion_est.c
@@ -38,7 +38,6 @@
#include "mpegutils.h"
#include "mpegvideo.h"
-#undef NDEBUG
#include <assert.h>
#define P_LEFT P[1]
diff --git a/libavcodec/mpegvideo_xvmc.c b/libavcodec/mpegvideo_xvmc.c
index b7de79c..0b1ecf8 100644
--- a/libavcodec/mpegvideo_xvmc.c
+++ b/libavcodec/mpegvideo_xvmc.c
@@ -26,7 +26,6 @@
#include "mpegutils.h"
#include "mpegvideo.h"
-#undef NDEBUG
#include <assert.h>
#include "xvmc.h"
diff --git a/libavcodec/qcelpdec.c b/libavcodec/qcelpdec.c
index 2eeefb8..d515729 100644
--- a/libavcodec/qcelpdec.c
+++ b/libavcodec/qcelpdec.c
@@ -40,7 +40,6 @@
#include "acelp_vectors.h"
#include "lsp.h"
-#undef NDEBUG
#include <assert.h>
typedef enum {
diff --git a/libavcodec/qdm2.c b/libavcodec/qdm2.c
index 4736fac..f9a7be0 100644
--- a/libavcodec/qdm2.c
+++ b/libavcodec/qdm2.c
@@ -47,7 +47,6 @@
#include "qdm2data.h"
#include "qdm2_tablegen.h"
-#undef NDEBUG
#include <assert.h>
diff --git a/libavcodec/ratecontrol.c b/libavcodec/ratecontrol.c
index c0eac6d..894e314 100644
--- a/libavcodec/ratecontrol.c
+++ b/libavcodec/ratecontrol.c
@@ -35,7 +35,6 @@
#include "mpegvideo.h"
#include "libavutil/eval.h"
-#undef NDEBUG // Always check asserts, the speed effect is far too small to
disable them.
#include <assert.h>
#ifndef M_E
diff --git a/libavcodec/svq1dec.c b/libavcodec/svq1dec.c
index 4f84395..73d2b76 100644
--- a/libavcodec/svq1dec.c
+++ b/libavcodec/svq1dec.c
@@ -40,7 +40,6 @@
#include "mathops.h"
#include "svq1.h"
-#undef NDEBUG
#include <assert.h>
static VLC svq1_block_type;
diff --git a/libavcodec/svq1enc.c b/libavcodec/svq1enc.c
index a869c24..a3963af 100644
--- a/libavcodec/svq1enc.c
+++ b/libavcodec/svq1enc.c
@@ -37,7 +37,6 @@
#include "svq1enc.h"
#include "svq1enc_cb.h"
-#undef NDEBUG
#include <assert.h>
static void svq1_write_header(SVQ1EncContext *s, int frame_type)
diff --git a/libavcodec/vc1.c b/libavcodec/vc1.c
index 0631439..04b115e 100644
--- a/libavcodec/vc1.c
+++ b/libavcodec/vc1.c
@@ -37,7 +37,6 @@
#include "unary.h"
#include "simple_idct.h"
-#undef NDEBUG
#include <assert.h>
/***********************************************************************/
diff --git a/libavcodec/vdpau.c b/libavcodec/vdpau.c
index 8606624..05d00cb 100644
--- a/libavcodec/vdpau.c
+++ b/libavcodec/vdpau.c
@@ -28,7 +28,6 @@
#include "h264.h"
#include "vc1.h"
-#undef NDEBUG
#include <assert.h>
#include "vdpau.h"
diff --git a/libavcodec/vorbisenc.c b/libavcodec/vorbisenc.c
index 35bdd57..cd7e2cc 100644
--- a/libavcodec/vorbisenc.c
+++ b/libavcodec/vorbisenc.c
@@ -36,7 +36,6 @@
#define BITSTREAM_WRITER_LE
#include "put_bits.h"
-#undef NDEBUG
#include <assert.h>
typedef struct vorbis_enc_codebook {
diff --git a/libavcodec/wma.c b/libavcodec/wma.c
index f0aabfc..32c7d23 100644
--- a/libavcodec/wma.c
+++ b/libavcodec/wma.c
@@ -29,7 +29,6 @@
#include "wma_freqs.h"
#include "wmadata.h"
-#undef NDEBUG
#include <assert.h>
/* XXX: use same run/length optimization as mpeg decoders */
diff --git a/libavcodec/wmadec.c b/libavcodec/wmadec.c
index b79dd2a..9cc5c11 100644
--- a/libavcodec/wmadec.c
+++ b/libavcodec/wmadec.c
@@ -39,7 +39,6 @@
#include "internal.h"
#include "wma.h"
-#undef NDEBUG
#include <assert.h>
#define EXPVLCBITS 8
diff --git a/libavcodec/wmaenc.c b/libavcodec/wmaenc.c
index c176daa..17bebed 100644
--- a/libavcodec/wmaenc.c
+++ b/libavcodec/wmaenc.c
@@ -25,7 +25,6 @@
#include "internal.h"
#include "wma.h"
-#undef NDEBUG
#include <assert.h>
diff --git a/libavfilter/vf_yadif.c b/libavfilter/vf_yadif.c
index 53c567c..fe552f3 100644
--- a/libavfilter/vf_yadif.c
+++ b/libavfilter/vf_yadif.c
@@ -29,7 +29,6 @@
#include "video.h"
#include "yadif.h"
-#undef NDEBUG
#include <assert.h>
typedef struct ThreadData {
diff --git a/libavformat/asfenc.c b/libavformat/asfenc.c
index f6608d5..d8874ed 100644
--- a/libavformat/asfenc.c
+++ b/libavformat/asfenc.c
@@ -27,7 +27,6 @@
#include "riff.h"
#include "asf.h"
-#undef NDEBUG
#include <assert.h>
diff --git a/libavformat/avidec.c b/libavformat/avidec.c
index 63afe2f..97e1979 100644
--- a/libavformat/avidec.c
+++ b/libavformat/avidec.c
@@ -34,7 +34,6 @@
#include "isom.h"
#include "riff.h"
-#undef NDEBUG
#include <assert.h>
typedef struct AVIStream {
diff --git a/libavformat/flvenc.c b/libavformat/flvenc.c
index 49c5235..7f7c6b7 100644
--- a/libavformat/flvenc.c
+++ b/libavformat/flvenc.c
@@ -27,7 +27,6 @@
#include "internal.h"
#include "metadata.h"
-#undef NDEBUG
#include <assert.h>
static const AVCodecTag flv_video_codec_ids[] = {
diff --git a/libavformat/mov.c b/libavformat/mov.c
index 8bf1b90..e3d77a1 100644
--- a/libavformat/mov.c
+++ b/libavformat/mov.c
@@ -54,7 +54,6 @@
#include "qtpalette.h"
-#undef NDEBUG
#include <assert.h>
/* those functions parse an atom */
diff --git a/libavformat/movenc.c b/libavformat/movenc.c
index ee2f089..4737eab 100644
--- a/libavformat/movenc.c
+++ b/libavformat/movenc.c
@@ -44,7 +44,6 @@
#include "rtpenc.h"
#include "mov_chan.h"
-#undef NDEBUG
#include <assert.h>
static const AVOption options[] = {
diff --git a/libavformat/mpeg.c b/libavformat/mpeg.c
index ffabe28..78013d0 100644
--- a/libavformat/mpeg.c
+++ b/libavformat/mpeg.c
@@ -23,7 +23,6 @@
#include "internal.h"
#include "mpeg.h"
-#undef NDEBUG
#include <assert.h>
/*********************************************/
diff --git a/libavformat/mpegenc.c b/libavformat/mpegenc.c
index 33eaefd..ae86aa9 100644
--- a/libavformat/mpegenc.c
+++ b/libavformat/mpegenc.c
@@ -35,7 +35,6 @@
#define MAX_PAYLOAD_SIZE 4096
-#undef NDEBUG
#include <assert.h>
typedef struct PacketDesc {
diff --git a/libavformat/mux.c b/libavformat/mux.c
index 7959edf..fac5969 100644
--- a/libavformat/mux.c
+++ b/libavformat/mux.c
@@ -43,7 +43,6 @@
#include "network.h"
#endif
-#undef NDEBUG
#include <assert.h>
/**
diff --git a/libavformat/nutdec.c b/libavformat/nutdec.c
index bf1ab7b..18923d9 100644
--- a/libavformat/nutdec.c
+++ b/libavformat/nutdec.c
@@ -29,7 +29,6 @@
#include "nut.h"
#include "riff.h"
-#undef NDEBUG
#include <assert.h>
#define NUT_MAX_STREAMS 256 /* arbitrary sanity check value */
diff --git a/libavformat/utils.c b/libavformat/utils.c
index 5d4ec62..c7ab673 100644
--- a/libavformat/utils.c
+++ b/libavformat/utils.c
@@ -19,7 +19,6 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
-#undef NDEBUG
#include <assert.h>
#include <stdarg.h>
#include <stdint.h>
diff --git a/libavutil/avassert.h b/libavutil/avassert.h
index b223d26..2dbf143 100644
--- a/libavutil/avassert.h
+++ b/libavutil/avassert.h
@@ -32,13 +32,13 @@
#include "log.h"
/**
- * assert() equivalent, that is always enabled.
+ * assert()-like macro with additional context
*/
#define av_assert0(cond) do { \
if (!(cond)) { \
av_log(NULL, AV_LOG_FATAL, "Assertion %s failed at %s:%d\n", \
AV_STRINGIFY(cond), __FILE__, __LINE__); \
- abort(); \
+ assert(0); \
} \
} while (0)
--
2.5.0
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel