av_log: don't crash if called with NULL AVClass

At least libavformat mpegts demuxer may give bad parameters with NULL
AVClass to the av_log callback. Check for this and print a warning
instead of crashing.
This commit is contained in:
Uoti Urpala 2011-08-15 02:58:51 +03:00
parent 9e6933440a
commit 54d0763b92
1 changed files with 6 additions and 2 deletions

View File

@ -54,6 +54,12 @@ static int extract_msg_type_from_ctx(void *ptr)
return MSGT_FIXME;
AVClass *avc = *(AVClass **)ptr;
if (!avc) {
mp_msg(MSGT_FIXME, MSGL_WARN,
"av_log callback called with bad parameters (NULL AVClass).\n"
"This is a bug in one of Libav/FFmpeg libraries used.\n");
return MSGT_FIXME;
}
#ifdef CONFIG_FFMPEG
if (!strcmp(avc->class_name, "AVCodecContext")) {
@ -71,9 +77,7 @@ static int extract_msg_type_from_ctx(void *ptr)
}
return MSGT_FIXME;
}
#endif
#ifdef CONFIG_FFMPEG
if (!strcmp(avc->class_name, "AVFormatContext")) {
AVFormatContext *s = ptr;
if (s->iformat)