mirror of
https://gitee.com/openharmony/third_party_ffmpeg
synced 2024-11-23 11:19:55 +00:00
2nd try to fix av_log() repeated detection
Originally committed as revision 25174 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
7e117771cd
commit
1c1c80f0a3
@ -13,6 +13,11 @@ libavutil: 2009-03-08
|
|||||||
|
|
||||||
API changes, most recent first:
|
API changes, most recent first:
|
||||||
|
|
||||||
|
2010-09-24 - r25174 - lavu 50.28.0 - av_log_set_flags()
|
||||||
|
Default of av_log() changed due to many problems to the old no repeat
|
||||||
|
detection. Read the docs of AV_LOG_SKIP_REPEATED in log.h before
|
||||||
|
enabling it for your app!.
|
||||||
|
|
||||||
2010-09-24 - r25167 - lavc 52.90.0 - av_opt_show2()
|
2010-09-24 - r25167 - lavc 52.90.0 - av_opt_show2()
|
||||||
Deprecate av_opt_show() in favor or av_opt_show2().
|
Deprecate av_opt_show() in favor or av_opt_show2().
|
||||||
|
|
||||||
|
@ -40,7 +40,7 @@
|
|||||||
#define AV_VERSION(a, b, c) AV_VERSION_DOT(a, b, c)
|
#define AV_VERSION(a, b, c) AV_VERSION_DOT(a, b, c)
|
||||||
|
|
||||||
#define LIBAVUTIL_VERSION_MAJOR 50
|
#define LIBAVUTIL_VERSION_MAJOR 50
|
||||||
#define LIBAVUTIL_VERSION_MINOR 27
|
#define LIBAVUTIL_VERSION_MINOR 28
|
||||||
#define LIBAVUTIL_VERSION_MICRO 0
|
#define LIBAVUTIL_VERSION_MICRO 0
|
||||||
|
|
||||||
#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
|
#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
|
||||||
|
@ -33,6 +33,7 @@
|
|||||||
static
|
static
|
||||||
#endif
|
#endif
|
||||||
int av_log_level = AV_LOG_INFO;
|
int av_log_level = AV_LOG_INFO;
|
||||||
|
static int flags;
|
||||||
|
|
||||||
#if defined(_WIN32) && !defined(__MINGW32CE__)
|
#if defined(_WIN32) && !defined(__MINGW32CE__)
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
@ -109,8 +110,9 @@ void av_log_default_callback(void* ptr, int level, const char* fmt, va_list vl)
|
|||||||
if(!detect_repeats) detect_repeats= isatty(2) ? 1 : -1;
|
if(!detect_repeats) detect_repeats= isatty(2) ? 1 : -1;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if(print_prefix && detect_repeats==1 && !strcmp(line, prev)){
|
if(print_prefix && (flags & AV_LOG_SKIP_REPEATED) && !strcmp(line, prev)){
|
||||||
count++;
|
count++;
|
||||||
|
if(detect_repeats==1)
|
||||||
fprintf(stderr, " Last message repeated %d times\r", count);
|
fprintf(stderr, " Last message repeated %d times\r", count);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -150,6 +152,11 @@ void av_log_set_level(int level)
|
|||||||
av_log_level = level;
|
av_log_level = level;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void av_log_set_flags(int arg)
|
||||||
|
{
|
||||||
|
flags= arg;
|
||||||
|
}
|
||||||
|
|
||||||
void av_log_set_callback(void (*callback)(void*, int, const char*, va_list))
|
void av_log_set_callback(void (*callback)(void*, int, const char*, va_list))
|
||||||
{
|
{
|
||||||
av_log_callback = callback;
|
av_log_callback = callback;
|
||||||
|
@ -135,4 +135,15 @@ void av_log_set_callback(void (*)(void*, int, const char*, va_list));
|
|||||||
void av_log_default_callback(void* ptr, int level, const char* fmt, va_list vl);
|
void av_log_default_callback(void* ptr, int level, const char* fmt, va_list vl);
|
||||||
const char* av_default_item_name(void* ctx);
|
const char* av_default_item_name(void* ctx);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Skip repeated messages, this requires the user app to use av_log() instead of
|
||||||
|
* (f)printf as the 2 would otherwise interfere and lead to
|
||||||
|
* "Last message repeated x times" messages below (f)printf messages with some
|
||||||
|
* bad luck.
|
||||||
|
* Also to receive the last, "last repeated" line if any, the user app must
|
||||||
|
* call av_log(NULL, AV_LOG_QUIET, ""); at the end
|
||||||
|
*/
|
||||||
|
#define AV_LOG_SKIP_REPEATED 1
|
||||||
|
void av_log_set_flags(int arg);
|
||||||
|
|
||||||
#endif /* AVUTIL_LOG_H */
|
#endif /* AVUTIL_LOG_H */
|
||||||
|
Loading…
Reference in New Issue
Block a user