From 49327f43ca2196122a60314e67eeee929efea873 Mon Sep 17 00:00:00 2001 From: Stephen Torri Date: Fri, 28 Feb 2003 02:51:47 +0000 Subject: Xine assert() replacement: All assert() function calls, with exceptions of libdvdread and libdvdnav, have been replaced with XINE_ASSERT. Functionally XINE_ASSERT behaves just likes its predecesor but its adding the ability to print out a stack trace at the point where the assertion fails. So here are a few examples. assert (0); This use of assert was found in a couple locations most favorably being the default case of a switch statement. This was the only thing there. So if the switch statement was unable to find a match it would have defaulted to this and the user and the developers would be stuck wonder who died and where. So it has been replaced with XINE_ASSERT(0, "We have reach this point and don't have a default case"); It may seem a bit none descriptive but there is more going on behind the scene. In addition to checking a condition is true/false, in this case '0', the XINE_ASSERT prints out: :: - assertion '' failed. An example of this might be: input_dvd.c:open_plugin:1178 - assertion '0' failed. xine_malloc failed!!! You have run out of memory XINE_ASSERT and its helper function, print_trace, are found in src/xine-utils/xineutils.h CVS patchset: 4301 CVS date: 2003/02/28 02:51:47 --- src/libffmpeg/libavcodec/utils.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'src/libffmpeg/libavcodec/utils.c') diff --git a/src/libffmpeg/libavcodec/utils.c b/src/libffmpeg/libavcodec/utils.c index ca71807f7..0959c0cf4 100644 --- a/src/libffmpeg/libavcodec/utils.c +++ b/src/libffmpeg/libavcodec/utils.c @@ -19,6 +19,7 @@ #include "avcodec.h" #include "dsputil.h" #include "mpegvideo.h" +#include "xineutils.h" void *av_mallocz(unsigned int size) { @@ -124,8 +125,8 @@ int avcodec_default_get_buffer(AVCodecContext *s, AVFrame *pic){ const int height= s->height; DefaultPicOpaque *opaque; /* - assert(pic->data[0]==NULL); - assert(pic->type==0 || pic->type==FF_TYPE_INTERNAL); + XINE_ASSERT(pic->data[0]==NULL, "pic->data[0] != NULL"); + XINE_ASSERT((pic->type==0) || (pic->type==FF_TYPE_INTERNAL), "pic->type incorrect: %d", pic->type); */ if(pic->opaque){ opaque= (DefaultPicOpaque *)pic->opaque; @@ -202,7 +203,7 @@ int avcodec_default_get_buffer(AVCodecContext *s, AVFrame *pic){ void avcodec_default_release_buffer(AVCodecContext *s, AVFrame *pic){ int i; - assert(pic->type==FF_BUFFER_TYPE_INTERNAL); + XINE_ASSERT(pic->type==FF_BUFFER_TYPE_INTERNAL, "pic->type does not equal FF_BUFFER_TYPE_INTERNAL: %d", pic->type); for(i=0; i<3; i++) pic->data[i]=NULL; -- cgit v1.2.3