Commit 9f84f025 authored by Rémi Denis-Courmont's avatar Rémi Denis-Courmont

libavutil callback cannot assume it has a VLC object

This fixes a crash from the avformat (de)mux.
parent 29591e86
......@@ -28,12 +28,8 @@
static inline void LibavutilCallback( void *p_opaque, int i_level,
const char *psz_format, va_list va )
{
int i_vlc_level;
AVCodecContext *p_avctx = (AVCodecContext *)p_opaque;
const AVClass *p_avc;
vlc_object_t *p_this;
char *psz_new_format;
const char *psz_item_name;
p_avc = p_avctx ? p_avctx->av_class : 0;
......@@ -48,33 +44,17 @@ static inline void LibavutilCallback( void *p_opaque, int i_level,
}
#undef cln
p_this = (vlc_object_t *)p_avctx->opaque;
switch( i_level )
{
case AV_LOG_QUIET:
i_vlc_level = VLC_MSG_ERR;
break;
case AV_LOG_ERROR:
i_vlc_level = VLC_MSG_WARN;
break;
case AV_LOG_INFO:
i_vlc_level = VLC_MSG_DBG;
break;
case AV_LOG_DEBUG:
case AV_LOG_INFO:
/* Print debug messages if they were requested */
if( p_avctx->debug ) vfprintf( stderr, psz_format, va );
return;
default:
return;
}
if( !p_avctx->debug )
break;
psz_item_name = p_avc->item_name(p_opaque);
psz_new_format = malloc( strlen(psz_format) + strlen(psz_item_name)
+ 18 + 5 );
snprintf( psz_new_format, strlen(psz_format) + strlen(psz_item_name)
+ 18 + 5, "%s (%s@%p)", psz_format, p_avc->item_name(p_opaque), p_opaque );
msg_GenericVa( p_this, i_vlc_level,
MODULE_STRING, psz_new_format, va );
free( psz_new_format );
case AV_LOG_ERROR:
case AV_LOG_QUIET:
vfprintf( stderr, psz_format, va );
break;
}
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment