- 博客(52)
- 资源 (98)
- 收藏
- 关注
原创 Android Java到OMX调用流程(十五)
1.frameworks/base/media/java/android/media/MediaPlayer.java public void start() throws IllegalStateException { _start(); } private native void _start() throws IllegalStateException;...
2016-11-29 19:05:05 1057
转载 android中openMax的实现
1.android中用openmax来干啥?有了上一篇AwesomePlayer基本框架及播放流程已经很清楚的看到了,android中的 AwesomePlayer就是用openmax来做(code)编解码,其实在openmax接口设计中,他不光能用来当编解码。通过他的组件可以组成一个完整的播放器,包括sourc、demux、decode、output。但是为什么android只用他来做cod
2016-11-28 20:31:16 575
原创 FFmpeg实战命令(不断更新中...)
ffmpeg -formats //查看所有支持的容器格式ffmpeg -codecs //查看所有编解码器ffmpeg -filters //查看所有可用的filterffmpeg -pix_fmts //查看所有支持的图片格式ffmpeg -sample_fmts //查看所有支持的像素格式ffprobe -i money.mp4 //查看媒体信息格式转换
2016-11-23 14:08:37 2824
原创 v4l2-ctl 控制命令
# v4l2-ctlUsage:Common options: --all display all information available -C, --get-ctrl=[,...] get the value of the controls [VIDIOC_G_EXT_CTRLS] -c, --s
2016-11-22 19:07:46 28439 4
转载 Android 用MediaCodec实现视频硬解码
本 文向你讲述如何用android标准的API (MediaCodec)实现视频的硬件编解码。例程将从摄像头采集视频开始,然后进行H264编码,再解码,然后显示。1、从摄像头采集视频 可以通过摄像头Preview的回调,来获取视频数据。 首先创建摄像头,并设置参数: cam = Camer
2016-11-19 20:34:58 1233
原创 Build x264 for android
#!/bin/bashNDK=/home/tools/eclipse/android-ndk-r10ePLATFORM=$NDK/platforms/android-19/arch-armTOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64PREFIX=$(pwd)/android/$CP
2016-11-18 15:15:10 347
原创 V4L2 获取设备支持的分辨率
{//获取摄像头所支持的分辨率 enum v4l2_buf_type type = V4L2_BUF_TYPE_VIDEO_CAPTURE; struct v4l2_fmtdesc fmt_1; struct v4l2_frmsizeenum frmsize; struct v4l2_frmivalenum frmival; fmt_1
2016-11-17 19:23:29 10195
转载 什么是I帧,P帧,B帧
视频压缩中,每帧代表一幅静止的图像。而在实际压缩时,会采取各种算法减少数据的容量,其中IPB就是最常见的。简单地说,I帧是关键帧,属于帧内压缩。就是和AVI的压缩是一样的。 P是向前搜索的意思。B是双向搜索。他们都是基于I帧来压缩数据。 1、I帧表示关键帧,你可以理解为这一帧画面的完整保留;解码时只需要本帧数据就可以完成(因为包含完整画面) 2、P帧表示的是这一
2016-11-17 13:46:18 648
转载 Linux基于v4l2的视频采集(可用)
Video4linux2(简称V4L2),是Linux中关于视频设备的内核驱动。V4L2较V4L有较大的改动,并已成为2.6的标准接口,函盖video\dvb\FM...,多数驱动都在向V4l2迁移。更好地了解V4L2先从应用入手,然后再深入到内核中结合物理设备/接口的规范实现相应的驱动。V4L2采用流水线的方式,操作更简单直观,基本遵循打开视频设备、设置格式、处理数据、关闭设备,更多的具体操
2016-11-17 10:54:52 3662
原创 编译ffmpeg、SDL、x264开源库 for ubuntu
1、./configure --disable-yasm --disable-static --enable-shared2、make -j83、sudo make install
2016-11-17 09:52:02 557
转载 V4L2摄像头应用编程
Video for Linuxtwo(Video4Linux2)简称V4L2,是V4L的改进版。V4L2是linux操作系统下用于采集图片、视频和音频数据的API接口,配合适当的视频采集设备和相应的驱动程序,可以实现图片、视频、音频等的采集。在远程会议、可视电话、视频监控系统和嵌入式多媒体终端中都有广泛的应用。在Linux下,所有外设都被看成一种特殊的文件,成为“设备文件”,可以象访问普通
2016-11-16 19:24:40 821
转载 Video for linux 2 example (v4l2 demo)
V4L2 API讲解附demo(注:从他人博客整理修正而来)(看完本文后,更简便的api请移步至video for linux 2 API)1. 定义V4L2(Video For Linux Two) 是内核提供给应用程序访问音、视频驱动的统一接口。2. 工作流程:打开设备-> 检查和设置设备属性-> 设置帧格式->
2016-11-16 18:37:30 3836 3
转载 Android Framework下StageFright框架流程解读
1、 StageFright介绍 Android froyo版本多媒体引擎做了变动,新添加了stagefright框架,并且默认情况android选择stagefright,并没有完全抛弃 opencore,主要是做了一个OMX层,仅仅是对 opencore的omx-component部分做了引用。stagefright是在MediaPlayerService这一层加入的,
2016-11-16 13:28:17 536
原创 shell之为源码打patch(四)
#/bin/shCURRENT=`pwd`ANDROID="android_dir"if [ ! -d $ANDROID ];then tar xzvf $CURRENT/android_dir.tar.gz #解压源码到当前目录 cp $CURRENT/patch_dir/android_dir $CURRENT -rf #拷贝patch_dir下同名androi
2016-11-16 11:46:45 2474
原创 shell之30分钟删除文件操作(五)
#!/bin/bashmyFolder=/home/filewhile [ 1 ]do sleep 1s #sleep 1m #sleep 1 minute if [ -d /home/file ];thenecho "$myFolder is exist..." find /home/file -type f -mmin +30 |
2016-11-16 11:12:14 695
转载 linux 下shell中if的“-e,-d,-f”是什么意思
文件表达式-e filename 如果 filename存在,则为真-d filename 如果 filename为目录,则为真 -f filename 如果 filename为常规文件,则为真-L filename 如果 filename为符号链接,则为真-r filename 如果 filename可读,则为真 -w filename 如果 filename可写,则
2016-11-16 10:49:55 1123
原创 shell之sleep指定延时单位(六)
sleep 1 表示默认延时一秒sleep 1s 表示延迟一秒sleep 1m 表示延迟一分钟sleep 1h 表示延迟一小时sleep 1d 表示延迟一天
2016-11-16 10:45:04 19369 1
转载 Android Studio 第一个JNI程序
1.介绍Android Studio + NDK来实现JNI。什么是NDK与JNI技术?NDK:Native Development KitThe NDK is a toolset that allows you to implement parts of your app using native-code languages such as C and C++.(谷
2016-11-15 19:02:55 632
原创 Linux之C标准预定义宏(二十三)
#include int main(){ printf( "所在文件: %s \n", __FILE__ ); printf( "所在日期: %s \n", __DATE__ ); printf( "所在时间: %s \n", __TIME__ ); printf( "所在行数: %d \n", __LINE__ ); printf(
2016-11-15 16:10:27 417
转载 android如何查看cpu的占用率和内存泄漏
在分析内存优化的过程中,其中一个最重要的是我们如何查看cpu的占用率和内存的占用率呢,这在一定程度上很重要,经过查询资料,研究了一下,暂时了解到大概有以下几种方式,如果哪位高手有更好的办法,或者文中描述有错误,还望高手在下面留言,非常感谢! 一、 通过eclipse,ADT开发工具的DDMS来查看(Heap) 在“Devices”窗口中选择模拟器中的一个需
2016-11-14 14:44:58 626
转载 单链表的逆置-C++实现(五十四)
对于单链表的逆置有两种方法可以实现:(1)利用辅助指针 基本思想:在遍历结点过程中,设置辅助指针,用于记录先前遍历的结点。这样依次编译的过程中只需修改其后继结点的next域即可。 实现代码:[cpp]view plaincopyprint?typedefintDat
2016-11-13 21:02:36 726
转载 安卓ashmem(匿名共享内存映射)学习native篇
本文是基于这篇文章之上的:http://blog.csdn.net/u010657219/article/details/41243473先看看之前三个进程的关系:由于这里用到了Binder进程间通信机制,这里再次贴上Android系统的Binder通信设计框架,关于Binder通信的具体分析,请查看Binder通信模块中的一系列文章。MemoryH
2016-11-13 17:01:41 2203
转载 Android Multimedia框架总结(十七)音频开发基础知识
原文链接:http://blog.csdn.net/hejjunlin/article/details/53078828近年来,唱吧,全民K歌,QQ音乐,等成为音频软件的主流力量,音频开发一直是多媒体开发中不可或缺的部分,如为什么这个声音这么不清楚,为什么耳机里有电流声,为什么录音时,有时会碰到奇怪的回声,先看下今天的Agenda:音频开发的主要应用音频开发
2016-11-11 10:29:39 1698
原创 Emacs自带小游戏(二十六)
acs中的游戏M-x tetris俄罗斯方块M-x gomoku五子棋游戏M-x mpuz填数字游戏M-x snake贪吃蛇游戏
2016-11-11 00:27:10 1496
转载 Android系统启动过程
一、开机加电bootloader(汇编语言)进行底层初始化,并加载内核代码,最终跳转到内核的boot程序。二、Linux内核引导 1)kernel核心初始化(内存初始化,打开中断,初始化进程表等等); 2)驱动初始化; 3)启动内核后台(daemons)线程 4)安装根(root)文件系统 5) 启动第一个用户级进程init
2016-11-10 00:59:19 356
转载 android多媒体框架学习 详解 最新版本
一:多媒体框架概述 jellybean 的多媒体跟以前的版本,通过对比没啥变化,最大的变化是google终于舍得给multimedia建个独立的git了(framework/av),等你好久了!也体现了media 在整个android系统中的重要性!framework/av下都是些C/C++代码(libmedia,libmediaplayerservice,libstage
2016-11-10 00:06:48 11176 1
转载 Android自带硬解码解码类型说明MediaCodec使用必看
一、背景随着Android系统手机性能的不断提升,现阶段大部分手机都自带GPU(承担图形显示的专门硬件),大幅度提高手机显示性能,在视频显示、游戏画面刷新,和高分辨图像显示方面必须使用GPU。GOOGLE在API 16 -4.1版本中增加MediaCodec类,专用于编解码多媒体数据,二、MediaCodec使用方式 MediaCodec总共有三种使用方法,如下图所示:
2016-11-10 00:00:33 14011 2
原创 FFmpeg3.2最新版编译Mediacodec For Android脚本
#!/bin/bashexport TMPDIR=/homeNDK=/project/android-ndk-r10eSYSROOT=$NDK/platforms/android-16/arch-arm/TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86CPU=armPREFI
2016-11-09 23:34:14 4648 11
原创 Linux之常用命令备忘<不断更新中...>(十七)
1、模糊查找字符串# find . "*" | xargs grep "ro.hardware" -rn --color# find -name "*.rc" | xargs grep "ro.hardware" -rn --color# find -name "*.rc" | xargs grep -rn --color "ro.hardware"//过滤不想看到的字符...
2016-11-09 15:20:23 1740
原创 Android实时打印kernel和App log(七十一)
1、第一种#!/system/bin/sh while [ 1 ] do sleep 1 dmesg >> kernel.log && logcat -v time &done2、第二种<1>.实时不会中端log:# cat /dev/kmsg -n > kernel.log &&am...
2016-11-04 10:08:58 9164 1
原创 Android4.4之Camera2预览流程APP到Driver(十四)
1.APP调用 packages/apps/Camera2/src/com/android/camera/PhotoModule.java private void startPreview() { Log.v(TAG, "startPreview"); mCameraDevice.startPreviewAsync(); mFocu...
2016-11-03 18:59:46 3690
转载 关于指针的引用*&(无十六)
这部分是关于指针的引用*&的说明 1.指针的引用,相当于传递的是:指针的指针,这样指针的数值是可以改变的. 2.而单传递指针,不传递指针的引用,那么指针指向的数据是可以改变,而指针本身是不可以改变的.fun(int*pA);//pA的数值在函数返回后不会变化fun(int*&pA);/
2016-11-03 11:05:22 408
转载 详解c++[指针的指针] 和 [指针的引用](五十五)
展示一下使用指针的指针和指针的引用修改传递给方法的指针,以便更好的使用它。(这里说的指针的指针不是一个二维数组)为什么需要使用它们当我们把一个指针做为参数传一个方法时,其实是把指针的复本传递给了方法,也可以说传递指针是指针的值传递。如果我们在方法内部修改指针会出现问题,在方法里做修改只是修改的指针的copy而不是指针本身,原来的指针还保留着原来的值。我们用下边的代码说明一下问题:
2016-11-03 11:02:44 299
转载 深入讲解Android Property机制
深入讲解Android Property机制1 概述 Android系统(本文以Android 4.4为准)的属性(Property)机制有点儿类似Windows系统的注册表,其中的每个属性被组织成简单的键值对(key/value)供外界使用。 我们可以通过在adb shell里敲入getprop命令来获取当前系统的所有属性内容,而且,我们还可以敲
2016-11-03 00:54:30 697 1
转载 红茶一杯话Binder(ServiceManager篇)
红茶一杯话Binder(ServiceManager篇)1.先说一个大概 Android平台的一个基本设计理念是构造一个相对平坦的功能集合,这些功能可能会身处于不同的进程中,然而却可以高效地整合到一起,实现不同的用户需求。这就必须打破过去各个孤立App所形成的天然藩篱。为此,Android提供了Binder机制。 在Android中,
2016-11-03 00:50:26 881
转载 红茶一杯话Binder(传输机制篇_下)
红茶一杯话Binder(传输机制篇_下)1 事务的传递和处理 从IPCThreadState的角度看,它的transact()函数是通过向binder驱动发出BC_TRANSACTION语义,来表达其传输意图的,而后如有必要,它会等待从binder发回的回馈,这些回馈语义常常以“BR_”开头。另一方面,当IPCThreadState作为处理命令的一
2016-11-03 00:48:46 630
转载 红茶一杯话Binder(传输机制篇_中)
红茶一杯话Binder(传输机制篇_中)1 谈谈底层IPC机制吧 在上一篇文章的最后,我们说到BpBinder将数据发到了Binder驱动。然而在驱动层,这部分数据又是如何传递到BBinder一侧的呢?这里面到底藏着什么猫腻?另外,上一篇文章虽然阐述了4棵红黑树,但是并未说明红黑树的节点到底是怎么产生的。现在,我们试着回答这些问题。1.1 概述
2016-11-03 00:47:26 485
转载 红茶一杯话Binder(传输机制篇_上)
红茶一杯话Binder(传输机制篇_上) 1 Binder是如何做到精确打击的? 我们先问一个问题,binder机制到底是如何从代理对象找到其对应的binder实体呢?难道它有某种制导装置吗?要回答这个问题,我们只能静下心来研究binder驱动的代码。在本系列文档的初始篇中,我们曾经介绍过ProcessState,这个结构是属于应用层次的东西,仅靠它当然无法完
2016-11-03 00:46:23 652
转载 红茶一杯话Binder(初始篇)
红茶一杯话Binder(初始篇)1 什么是Binder? 简单地说,Binder是Android平台上的一种跨进程交互技术。该技术最早并不是由Google公司提出的,它的前身是Be Inc公司开发的OpenBinder,而且在Palm中也有应用。后来OpenBinder的作者Dianne Hackborn加入了Google公司,并负责Android平台的开发
2016-11-03 00:44:33 502
转载 Android之Camera预览
一、命令流程1.APPpackages/apps/Camera/src/com/Android/camera/PhotoModule.Java[java] view plain copy private void startPreview() { mCameraDevice.setPreviewDisplayAsyn
2016-11-03 00:41:50 599
H.264标准协议(官方中文版)
2020-10-28
HxD_Hex编辑器中文版.zip
2020-09-12
MultimediaFrameworkOverview.zip
2020-09-01
Gstreamer-Openmax-gst-openmax.zip
2020-08-17
GStreamer中文开发手册.zip
2020-07-22
win10removeAll.zip
2020-06-25
vcxsrv-64.1.20.8.1.zip
2020-06-20
debug_hybris_demo.zip
2020-06-03
手写Fuchsia第一个app
2020-03-16
第五代加固技术ARM VMP原理实现与应用.zip
2020-03-01
AUDIO CODEC DAPM详解.zip
2019-12-30
蓝牙Audio调试.zip
2019-12-27
Universal Serial Bus Device Class Definition for Audio Devices.zip
2019-11-16
802.11 Reason Code中文说明(全)
2019-05-21
彻底禁掉Win10 Defender自启动
2022-12-24
Elecard HEVC Analyzer_For_Windows.zip
2021-01-06
JM-H264参考手册
2020-10-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人