# HG changeset patch # User michael # Date 1078336435 0 # Node ID b0e50e10472ca2b7f363edde02547df4d3294b5f # Parent 845f9de2c8831bc1a06044f5c3c394c681c8a62c av_log() cleanup null pointer segfaults dont print redundant spam dont print prefix if reference==NULL class -> av_class dont copy AVClass to every object, its a waste of memory and not a good idea at all diff -r 845f9de2c883 -r b0e50e10472c avformat.h --- a/avformat.h Wed Mar 03 15:41:21 2004 +0000 +++ b/avformat.h Wed Mar 03 17:53:55 2004 +0000 @@ -241,7 +241,7 @@ /* format I/O context */ typedef struct AVFormatContext { - AVClass class; /* set by av_alloc_format_context */ + AVClass *av_class; /* set by av_alloc_format_context */ /* can only be iformat or oformat, not both at the same time */ struct AVInputFormat *iformat; struct AVOutputFormat *oformat; diff -r 845f9de2c883 -r b0e50e10472c utils.c --- a/utils.c Wed Mar 03 15:41:21 2004 +0000 +++ b/utils.c Wed Mar 03 17:53:55 2004 +0000 @@ -301,9 +301,9 @@ * open a media file from an IO stream. 'fmt' must be specified. */ -static const char* format_to_name(void* class_ptr) +static const char* format_to_name(void* ptr) { - AVFormatContext* fc = (AVFormatContext*) class_ptr; + AVFormatContext* fc = (AVFormatContext*) ptr; if(fc->iformat) return fc->iformat->name; else if(fc->oformat) return fc->oformat->name; else return "NULL"; @@ -316,7 +316,7 @@ AVFormatContext *ic; ic = av_mallocz(sizeof(AVFormatContext)); if (!ic) return ic; - ic->class = av_format_context_class; + ic->av_class = &av_format_context_class; return ic; } @@ -1745,13 +1745,13 @@ int i, flags; char buf[256]; - av_log(ic, AV_LOG_DEBUG, "%s #%d, %s, %s '%s':\n", + av_log(NULL, AV_LOG_DEBUG, "%s #%d, %s, %s '%s':\n", is_output ? "Output" : "Input", index, is_output ? ic->oformat->name : ic->iformat->name, is_output ? "to" : "from", url); if (!is_output) { - av_log(ic, AV_LOG_DEBUG, " Duration: "); + av_log(NULL, AV_LOG_DEBUG, " Duration: "); if (ic->duration != AV_NOPTS_VALUE) { int hours, mins, secs, us; secs = ic->duration / AV_TIME_BASE; @@ -1760,23 +1760,23 @@ secs %= 60; hours = mins / 60; mins %= 60; - av_log(ic, AV_LOG_DEBUG, "%02d:%02d:%02d.%01d", hours, mins, secs, + av_log(NULL, AV_LOG_DEBUG, "%02d:%02d:%02d.%01d", hours, mins, secs, (10 * us) / AV_TIME_BASE); } else { - av_log(ic, AV_LOG_DEBUG, "N/A"); + av_log(NULL, AV_LOG_DEBUG, "N/A"); } - av_log(ic, AV_LOG_DEBUG, ", bitrate: "); + av_log(NULL, AV_LOG_DEBUG, ", bitrate: "); if (ic->bit_rate) { - av_log(ic, AV_LOG_DEBUG,"%d kb/s", ic->bit_rate / 1000); + av_log(NULL, AV_LOG_DEBUG,"%d kb/s", ic->bit_rate / 1000); } else { - av_log(ic, AV_LOG_DEBUG, "N/A"); + av_log(NULL, AV_LOG_DEBUG, "N/A"); } - av_log(ic, AV_LOG_DEBUG, "\n"); + av_log(NULL, AV_LOG_DEBUG, "\n"); } for(i=0;inb_streams;i++) { AVStream *st = ic->streams[i]; avcodec_string(buf, sizeof(buf), &st->codec, is_output); - av_log(ic, AV_LOG_DEBUG, " Stream #%d.%d", index, i); + av_log(NULL, AV_LOG_DEBUG, " Stream #%d.%d", index, i); /* the pid is an important information, so we display it */ /* XXX: add a generic system */ if (is_output) @@ -1784,9 +1784,9 @@ else flags = ic->iformat->flags; if (flags & AVFMT_SHOW_IDS) { - av_log(ic, AV_LOG_DEBUG, "[0x%x]", st->id); + av_log(NULL, AV_LOG_DEBUG, "[0x%x]", st->id); } - av_log(ic, AV_LOG_DEBUG, ": %s\n", buf); + av_log(NULL, AV_LOG_DEBUG, ": %s\n", buf); } }