Mercurial > libavcodec.hg
comparison utils.c @ 1598:932d306bf1dc libavcodec
av_log() patch by (Michel Bardiaux <mbardiaux at peaktime dot be>)
| author | michael |
|---|---|
| date | Mon, 03 Nov 2003 13:26:22 +0000 |
| parents | de5e2acd0f80 |
| children | bb0fa675533f |
comparison
equal
deleted
inserted
replaced
| 1597:4c9165372ab3 | 1598:932d306bf1dc |
|---|---|
| 1 /* | 1 /* |
| 2 * utils for libavcodec | 2 * utils for libavcodec |
| 3 * Copyright (c) 2001 Fabrice Bellard. | 3 * Copyright (c) 2001 Fabrice Bellard. |
| 4 * Copyright (c) 2003 Michel Bardiaux for the av_log API | |
| 4 * | 5 * |
| 5 * This library is free software; you can redistribute it and/or | 6 * This library is free software; you can redistribute it and/or |
| 6 * modify it under the terms of the GNU Lesser General Public | 7 * modify it under the terms of the GNU Lesser General Public |
| 7 * License as published by the Free Software Foundation; either | 8 * License as published by the Free Software Foundation; either |
| 8 * version 2 of the License, or (at your option) any later version. | 9 * version 2 of the License, or (at your option) any later version. |
| 23 */ | 24 */ |
| 24 | 25 |
| 25 #include "avcodec.h" | 26 #include "avcodec.h" |
| 26 #include "dsputil.h" | 27 #include "dsputil.h" |
| 27 #include "mpegvideo.h" | 28 #include "mpegvideo.h" |
| 29 #include <stdarg.h> | |
| 28 | 30 |
| 29 void *av_mallocz(unsigned int size) | 31 void *av_mallocz(unsigned int size) |
| 30 { | 32 { |
| 31 void *ptr; | 33 void *ptr; |
| 32 | 34 |
| 764 | 766 |
| 765 l += (h%c)<<32; | 767 l += (h%c)<<32; |
| 766 | 768 |
| 767 return ((h/c)<<32) + l/c; | 769 return ((h/c)<<32) + l/c; |
| 768 } | 770 } |
| 771 | |
| 772 /* av_log API */ | |
| 773 | |
| 774 #ifdef AV_LOG_TRAP_PRINTF | |
| 775 #undef stderr | |
| 776 #undef fprintf | |
| 777 #endif | |
| 778 | |
| 779 static int av_log_level = AV_LOG_DEBUG; | |
| 780 | |
| 781 static void av_log_default_callback(AVCodecContext* avctx, int level, const char* fmt, va_list vl) | |
| 782 { | |
| 783 if(level>av_log_level) | |
| 784 return; | |
| 785 if(avctx) | |
| 786 fprintf(stderr, "[%s @ %p]", avctx->codec->name, avctx); | |
| 787 vfprintf(stderr, fmt, vl); | |
| 788 } | |
| 789 | |
| 790 static void (*av_log_callback)(AVCodecContext*, int, const char*, va_list) = av_log_default_callback; | |
| 791 | |
| 792 void av_log(AVCodecContext* avctx, int level, const char *fmt, ...) | |
| 793 { | |
| 794 va_list vl; | |
| 795 va_start(vl, fmt); | |
| 796 av_vlog(avctx, level, fmt, vl); | |
| 797 va_end(vl); | |
| 798 } | |
| 799 | |
| 800 void av_vlog(AVCodecContext* avctx, int level, const char *fmt, va_list vl) | |
| 801 { | |
| 802 av_log_callback(avctx, level, fmt, vl); | |
| 803 } | |
| 804 | |
| 805 int av_log_get_level(void) | |
| 806 { | |
| 807 return av_log_level; | |
| 808 } | |
| 809 | |
| 810 void av_log_set_level(int level) | |
| 811 { | |
| 812 av_log_level = level; | |
| 813 } | |
| 814 | |
| 815 void av_log_set_callback(void (*callback)(AVCodecContext*, int, const char*, va_list)) | |
| 816 { | |
| 817 av_log_callback = callback; | |
| 818 } | |
| 819 |
