FFmpeg的Android打印
来源:互联网 发布:xampp ubuntu安装 编辑:程序博客网 时间:2024/06/05 15:09
FFmpeg加入android打印
- 传入log callbakc打印的都是这个函数的函数名,无法定位问题。
- 研究了libavutil/log.c,发现可以在av_vlog里加入一行,专门用于打印。
1 log_callback_ffmpeg 传递给ffmpeg打印
- 这种打印的结果是函数名都是log_callback_ffmpeg
static void log_callback_ffmpeg(void *ptr, int level, const char *fmt, va_list vargs){ int level_setting = av_log_get_level(); if (level == AV_LOG_DEBUG) { slogd("%s", logStr); } else if (level == AV_LOG_INFO) { slogi("%s", logStr); } else if (level == AV_LOG_WARNING) { slogw("%s", logStr); } else if (level <= AV_LOG_ERROR) { sloge("%s", logStr); }}
2 av_vlog 加入一行打印函数名
- 参考[http://m.blog.csdn.net/article/details?id=9014697]加入下面这行,用于打印函数名、行号等:
SCLOGD("%s() in %s, Line: %d\n", __func__, __FILE__, __LINE__);
- 其中,SCLOGD的声明为:
#define SCLOGD(...) __android_log_print(ANDROID_LOG_DEBUG, "scff", __VA_ARGS__)
- 注意,上面才是正确使用__android_log_print的方法
-结果是,这样也不行,打印的是av_vlog所在文件名、行号和函数名。
3 头文件
#pragma once/** ANDROID */#if defined(__ANDROID__)#include <android/log.h>这里加入你的代码#endif
不需要再libavutil/Makefile中加入LDFALGS += llog
4 只好直接替换av_log了
- 参考[http://m.blog.csdn.net/article/details?id=50562024]
- 重新编译好麻烦啊,我这里是avfilter、avformat、 avcodec、avresample、 postproc、swscale、avutil、avdevice,几乎到了最后才能编译到log.c.
static const char *get_level_str(int level){switch (level) {case AV_LOG_QUIET: return "quiet";case AV_LOG_DEBUG: return "debug";case AV_LOG_VERBOSE: return "verbose";case AV_LOG_INFO: return "info";case AV_LOG_WARNING: return "warning";case AV_LOG_ERROR: return "error";case AV_LOG_FATAL: return "fatal";case AV_LOG_PANIC: return "panic";default: return "";}}
- 采用如下替换打印:
int get_droid_level(int level);#define av_log(avcl, level, fmt, ...) __android_log_print(get_droid_level(level), "ZBFFmpeg", "[%s_%d_%s]"fmt,__FILE__,__LINE__,__FUNCTION__,##__VA_ARGS__)
成功。
0 0
- FFmpeg的Android打印
- ffmpeg的相关信息打印
- Android播放器, ffmpeg源码添加打印,在logcat显示
- Android ffmpeg调试信息打印在logcat里
- ffmpeg之av_dump_format的使用,打印流的信息
- ffmpeg错误打印Invalid UE golomb code的解决
- ffmpeg取rtsp流,打印音视频的ts
- 编译Android下的ffmpeg
- android移植ffmpeg的编译
- android ffmpeg的一个问题
- android ffmpeg的一个问题
- ffmpeg的Android.mk配置
- Compile FFmpeg for Android(编译用于android的FFmpeg库)
- ffmpeg的编译大全(包括 ffmpeg for android)
- FFMPEG研究: FFmpeg的Android平台移植编译
- FFMPEG移植到android项目(一)ffmpeg的编译
- android基于ffmpeg的简单视频播发器 编译ffmpeg
- ffmpeg打印文件信息工具
- .app: resource fork, Finder information, or similar detritus not allowed
- [特征根法 || 高斯消元] 51Nod 1653 算法马拉松19 E 夹克赌坊
- RabbitMQ (四) 路由选择 (Routing)
- JAVA IO流
- C++虚函数到底需要实现吗?
- FFmpeg的Android打印
- RabbitMQ (五)主题(Topic)
- angularjs $resource请求类型和请求参数
- 沉浸式状态栏的实现和版本兼容
- Scrapy笔记(7)- 内置服务
- 获取easyui-datagrid中选中的数据,并遍历得到目标数据
- PyCharm2016.2专业版注册码
- Python基础学习--第四篇(条件判断和循环)
- 某处有某物