add callback for av_log
Originally committed as revision 13866 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
82e0be62ef
commit
bcd3ce5903
29
ffserver.c
29
ffserver.c
@ -318,12 +318,9 @@ static char *ctime1(char *buf2)
|
||||
return buf2;
|
||||
}
|
||||
|
||||
static void __attribute__ ((format (printf, 1, 2))) http_log(const char *fmt, ...)
|
||||
static void http_vlog(const char *fmt, va_list vargs)
|
||||
{
|
||||
static int print_prefix = 1;
|
||||
va_list ap;
|
||||
va_start(ap, fmt);
|
||||
|
||||
if (logfile) {
|
||||
if (print_prefix) {
|
||||
char buf[32];
|
||||
@ -331,10 +328,29 @@ static void __attribute__ ((format (printf, 1, 2))) http_log(const char *fmt, ..
|
||||
fprintf(logfile, "%s ", buf);
|
||||
}
|
||||
print_prefix = strstr(fmt, "\n") != NULL;
|
||||
vfprintf(logfile, fmt, ap);
|
||||
vfprintf(logfile, fmt, vargs);
|
||||
fflush(logfile);
|
||||
}
|
||||
va_end(ap);
|
||||
}
|
||||
|
||||
void __attribute__ ((format (printf, 1, 2))) http_log(const char *fmt, ...)
|
||||
{
|
||||
va_list vargs;
|
||||
va_start(vargs, fmt);
|
||||
http_vlog(fmt, vargs);
|
||||
va_end(vargs);
|
||||
}
|
||||
|
||||
static void http_av_log(void *ptr, int level, const char *fmt, va_list vargs)
|
||||
{
|
||||
static int print_prefix = 1;
|
||||
AVClass *avc = ptr ? *(AVClass**)ptr : NULL;
|
||||
if (level > av_log_level)
|
||||
return;
|
||||
if (print_prefix && avc)
|
||||
http_log("[%s @ %p]", avc->item_name(ptr), avc);
|
||||
print_prefix = strstr(fmt, "\n") != NULL;
|
||||
http_vlog(fmt, vargs);
|
||||
}
|
||||
|
||||
static void log_connection(HTTPContext *c)
|
||||
@ -4518,6 +4534,7 @@ int main(int argc, char **argv)
|
||||
logfile = stdout;
|
||||
else
|
||||
logfile = fopen(logfilename, "a");
|
||||
av_log_set_callback(http_av_log);
|
||||
}
|
||||
|
||||
if (http_server() < 0) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user