Android播放器, ffmpeg源码添加打印,在logcat显示
来源:互联网 发布:广州经纬之创网络 编辑:程序博客网 时间:2024/04/30 23:52
经常要调试ffmpeg的源码,加打印是必不可少的。
这是一个同事写的,我原本也不知道可以这样加打印,Mark一下。
#ifdef ANDROID
#include <android/log.h>static int use_log_report = 0;
#define FF_LOG_TAG "FFmpeg-SRC"
#define FF_LOG_UNKNOWN ANDROID_LOG_UNKNOWN
#define FF_LOG_DEFAULT ANDROID_LOG_DEFAULT
#define FF_LOG_VERBOSE ANDROID_LOG_VERBOSE
#define FF_LOG_DEBUG ANDROID_LOG_DEBUG
#define FF_LOG_INFO ANDROID_LOG_INFO
#define FF_LOG_WARN ANDROID_LOG_WARN
#define FF_LOG_ERROR ANDROID_LOG_ERROR
#define FF_LOG_FATAL ANDROID_LOG_FATAL
#define FF_LOG_SILENT ANDROID_LOG_SILENT
#define VLOG(level, TAG, ...) ((void)__android_log_vprint(level, TAG, __VA_ARGS__))
#define VLOGV(...) VLOG(FF_LOG_VERBOSE, FF_LOG_TAG, __VA_ARGS__)
#define VLOGD(...) VLOG(FF_LOG_DEBUG, FF_LOG_TAG, __VA_ARGS__)
#define VLOGI(...) VLOG(FF_LOG_INFO, FF_LOG_TAG, __VA_ARGS__)
#define VLOGW(...) VLOG(FF_LOG_WARN, FF_LOG_TAG, __VA_ARGS__)
#define VLOGE(...) VLOG(FF_LOG_ERROR, FF_LOG_TAG, __VA_ARGS__)
#define ALOG(level, TAG, ...) ((void)__android_log_print(level, TAG, __VA_ARGS__))
#define ALOGV(...) ALOG(FF_LOG_VERBOSE, FF_LOG_TAG, __VA_ARGS__)
#define ALOGD(...) ALOG(FF_LOG_DEBUG, FF_LOG_TAG, __VA_ARGS__)
#define ALOGI(...) ALOG(FF_LOG_INFO, FF_LOG_TAG, __VA_ARGS__)
#define ALOGW(...) ALOG(FF_LOG_WARN, FF_LOG_TAG, __VA_ARGS__)
#define ALOGE(...) ALOG(FF_LOG_ERROR, FF_LOG_TAG, __VA_ARGS__)
/*belown printf info*/
static void ffp_log_callback_brief(void *ptr, int level, const char *fmt, va_list vl)
{
int ffplv = FF_LOG_VERBOSE;
if (level <= AV_LOG_ERROR)
ffplv = FF_LOG_ERROR;
else if (level <= AV_LOG_WARNING)
ffplv = FF_LOG_WARN;
else if (level <= AV_LOG_INFO)
ffplv = FF_LOG_INFO;
else if (level <= AV_LOG_VERBOSE)
ffplv = FF_LOG_VERBOSE;
else
ffplv = FF_LOG_DEBUG;
if (level <= AV_LOG_INFO)
VLOG(ffplv, FF_LOG_TAG, fmt, vl);
}
static void ffp_log_callback_report(void *ptr, int level, const char *fmt, va_list vl)
{
int ffplv = FF_LOG_VERBOSE;
if (level <= AV_LOG_ERROR)
ffplv = FF_LOG_ERROR;
else if (level <= AV_LOG_WARNING)
ffplv = FF_LOG_WARN;
else if (level <= AV_LOG_INFO)
ffplv = FF_LOG_INFO;
else if (level <= AV_LOG_VERBOSE)
ffplv = FF_LOG_VERBOSE;
else
ffplv = FF_LOG_DEBUG;
va_list vl2;
char line[1024];
static int print_prefix = 1;
va_copy(vl2, vl);
// av_log_default_callback(ptr, level, fmt, vl);
av_log_format_line(ptr, level, fmt, vl2, line, sizeof(line), &print_prefix);
va_end(vl2);
ALOG(ffplv, FF_LOG_TAG, "%s", line);
}
#endif
在初始化函数中添加回调:
#ifdef ANDROID
if(use_log_report)
{
av_log_set_callback(ffp_log_callback_report);
}
else
{
av_log_set_callback(ffp_log_callback_brief);
}
#endif
0 0
- Android播放器, ffmpeg源码添加打印,在logcat显示
- Android ffmpeg调试信息打印在logcat里
- Android LogCat显示和过滤器添加
- 如何在logcat中显示AOSP代码中的打印信息
- eclipse添加logcat显示
- eclipse添加logcat显示
- android logCat 不打印
- 在android native层使用logcat打印消息
- 3.Android在LogCat单独打印System.out
- FFmpeg和android播放器
- Android播放器:ffmpeg+SDL
- android logcat显示eclipse
- Android studio LogCat 显示
- android logcat不打印信息
- android Logcat打印格式说明
- android logcat不打印信息
- android日志打印代码 logcat
- Android LogCat 打印长字段
- Eclipse中clean server失败
- JS浏览器对象
- 基于Metronic的Bootstrap开发框架经验总结(8)--框架功能总体界面介绍
- 非模态对话框的创建及销毁
- The project cannot be built until build path errors are resolved解决方案
- Android播放器, ffmpeg源码添加打印,在logcat显示
- R语言用Shiny包快速搭建交互网页应用
- python sorted()函数cmp,key,reverse参数详解
- 仿QQ侧拉菜单
- hdu5527 Too Rich
- 利用swipelistview完成qq聊天列表右滑删除功能
- spring的初体验,创建一个helloworld的程序
- Objective-C学习-单例以及通知中心(NotificationCenter)
- 习题2-3 倒三角形