NDK自上次10E后已有10个月更新了11,看了下发行日志,主要这几点值得关注。

  1. 官方推荐从GCC转到Clang了,clang也更新到3.8版。
  2. GCC只保留4.9版了,也不再更新到5.x版。
  3. samples和documentation也不再包含进NDK开发包,都放在了网上。
    NDK Samples :GitHub.
    Doc:Android developer website.
  4. Added Vulkan headers and library to API level N. 这个牛B啊,这不是khronos刚推出的用来替代OpenGL和OpenGL ES的新API么。这都已经可以用啦,后面专门在研究研究。 至少需要Android N的机器。

原创文章,转载请注明: 转载自贝壳博客

本文链接地址: Android NDK更新到 11

进行Android NDK开发,最好用的还是Eclipse.新版本由于存在找不到头文件的问题,博主之前一直使用Eclipse Indigo. 使用下面的解决方法后,Juno,Kepler,Luna都正常了。

以下摘录自stackoverflow

原帖地址:http://stackoverflow.com/questions/23122934/eclipse-adt-unresolved-inclusion-jni-h

I ran into a similar problem with a working project with Android NDK-based code after updating to Eclipse Kepler. I observed similar things: the header files would correctly be listed under “includes” in the project, the actual build (via ndk-build) worked fine, but Eclipse’s editor couldn’t locate any headers in standard system directories (all headers with < > brackets).继续阅读

原创文章,转载请注明: 转载自贝壳博客

本文链接地址: [转]解决更新Eclipse后,Android NDK开发找不到头文件的问题

久了没更新NDK,今天下载了r10d,惊讶的发现多了个native-codec这个sample。
应该就是API 16那个JAVA版MediaCodec的native版
限制就是 最低 api 21 就是Android 5.0
这限制基本上近期都没戏了,先去刷个5.0的系统再来测试。

=============2015年2月10日,测试结果来了======================


继续阅读

原创文章,转载请注明: 转载自贝壳博客

本文链接地址: 来晚了的 NativeCodec

官方源码:http://code.google.com/p/libyuv/
简介:

libyuv is an open source project that includes YUV scaling and conversion functionality.

Scale YUV to prepare content for compression, with point, bilinear or box filter.
Convert to YUV from webcam formats.
Convert from YUV to formats for rendering/effects.
Rotate by 90/180/270 degrees to adjust for mobile devices in portrait mode.
Optimized for SSE2/SSSE3/AVX2 on x86/x64.
Optimized for Neon on Arm. Optimized for DSP R2 on Mips.

YUV层的缩放,色彩空间转换(nv21/nv12 to i420,i420 to rgb565/rgb888),针对ARMv7使用NEON指令集优化.实际项目使用中测试,缩放/转换性能秒杀ffmpeg的libswscale
按官方的编译方法太麻烦,需要装depot tools,ninja
这里直接用android make 方便的多.
继续阅读

原创文章,转载请注明: 转载自贝壳博客

本文链接地址: 使用 NDK 编译 libyuv

之前在公司一个项目中一直使用 http://www.cnblogs.com/mcodec/articles/1780598.html 提供的H264 Android解码库
但是经常崩溃,最终定位到mc_dir_part函数中的

qpix_op[luma_xy](dest_y, src_y, s->linesize); //FIXME try variable height perhaps?

尝试了一晚上也没修复好这个问题,于是打算自己移植FFmpeg
mcodec 兄所做的工作是将H264解码的代码从ffmpeg中提取出来做了深度优化,而本人对FFmpeg?还不甚了解,无法做到提取,而且新版本相互依赖太重,于是将整个FFmpeg?移植过来使用。
在配置时关闭了所有特性,只开启了所需的H264解码库,arm汇编特性,其余全部关闭。
以下是我的配置代码继续阅读

原创文章,转载请注明: 转载自贝壳博客

本文链接地址: 使用Android NDK8 移植FFmpeg 0.11.1