- 博客(25)
- 收藏
- 关注
原创 ffmpeg获取一个视频或音频的时长
totalFrames=pInputVstream->duration *pInputVstream->time_base.num/pInputVstream->time_base.den *pInputVstream->r_frame_rate.num/pInputVstream->r_frame_rate...
2011-08-23 08:17:49 3320
原创 Linux互斥锁、条件变量和信号量
sem_init:初始化信号量sem_t,初始化的时候可以指定信号量的初始值,以及是否可以在多进程间共享。sem_wait:一直阻塞等待直到信号量>0。sem_timedwait:阻塞等待若干时间直到信号量>0。sem_post:使信号量加1。sem_destroy:释放信号量。和sem_init对应。 进行多线程编程,最应该注意的就是那些共享的数据,因为无法知道哪个线程会在哪...
2011-08-23 04:12:58 50
原创 linux信号sig
Linux为实现信号处理提供了比较多的接口,看似纷杂,但理清信号的关系后还是很有条理的。主要分为以下四组,怎么发送一个信号,收到一个信号后做什么样的处理,主动等待一个信号的发生,对特定信号只记录是否发生供以后再处理;四组的API如下(不考虑多线程):发送信号 kill, alarm, arise; 安装信号 signal, sigaction;等待信号 sigsuspend, sigwait,...
2011-08-23 04:11:48 77
原创 popupWindow的用法
首先show一下執行結果給大家看,這一張圖是按下Press to Popup接著我按下 Press to Popup 之後,彈出了PopupWindow,在PopupWindow中的元件都是View 的元件,並且都可操作PopupWindow中的元件皆是可操作的,並且當我在 Popup Window 以外的地方作GUI操作時,也都是可以操作的,如下所示,命名為 Outside 的 Button...
2011-08-23 00:21:23 53
原创 Smack使用Openfire的广播功能
使用openfire的广播功能首先需要在插件的页面里安装broadcast,然后通过Smack就可以发送广播了.Connection connection = new XMPPConnection("localhost");connection.connect();connection.login("admin", "123");Message m = new Message(...
2011-08-21 19:50:15 160
原创 asmack登陆jabberd2发生的错误
当使用asmack登陆jabberd2时.会发生错误:SASL authentication failed using mechanism DIGEST-MD5意思大概是登陆时使用了DIGEST-MD5身份验证机制.而jabberd2服务器并没有开启.所以会发生错误.解决办法是在login之前加入:SASLAuthentication.supportSASLMechanism("PLA...
2011-08-21 12:42:24 86
原创 cross-compile ffmpeg with neon
if u wanna compile ffmpeg with neon.your config.sh must be like this:./configure \--disable-static \--enable-asm \--cpu=cortex-a8 \--arch=armv7 \--enable-neon \--enable-shared \-...
2011-08-19 15:52:21 138
原创 横屏注意Android android:configChanges
这是hipak那边测试反馈回来的一个问题,说来惭愧,一直没注意到这个问题的存在。以为Power键就是onPause处理就完了,结果不是。 这里边google的设计或许也有点问题,在竖屏情况下也许是一样处理的,不过当你的app是横屏,那就要注意了。 每次Power键的时候,app是会强制回到竖屏状态的,并且会重新调用Activity的onCreate(),当然很多时候这不是我们想要...
2011-08-15 14:38:00 71
原创 使用ndk r6 stl时得到UnsatisfiedLinkError的问题
由于要使用stl.那肯定是要写cpp文件的了.搞了很久还不行.然后用javah来获得规范的头文件...发现它使用extern "C"括住了代码,然而我在代码中没有使用extern "C"{}来括住我的代码...所以他就出现UnsatisfiedLinkError了...以后注意了.搞那么久.....
2011-08-14 21:26:05 49
原创 关于avpicture_fill与sws_scale
avpicture_fill((AVPicture *) pFrameRGB, buffer, PIX_FMT_RGB565, pCodecCtx->width, pCodecCtx->height);复制代码这句调用时,pFrameRGB和buffer都是已经申请到的一段内存, 会将pFrameRGB的数据按RGB565格式自动"关联"到buffer。s...
2011-08-12 17:29:50 315
原创 如何配置.Android使用ffmpeg的swscale等函数
在Android.mk中加入SWSCALE_C_FILES = options.c \rgb2rgb.c \swscale.c \utils.c \yuv2rgb.c \swscale_unscaled.cSWSCALE_SRC_FILES = $(addprefix libswscale/, $(sort $(SWSCALE_C_FILES)))LOCAL_SRC_FILES += $(...
2011-08-12 17:27:15 117
原创 Android Library not found的问题
一天需要调用ffmpeg的库时,需要写一个so文件来调用libffmpeg.so里面的函数,例如该so名字为libtest.so,成功编译后我把两个so都放在libs/armeabi里面.因为libtest.so里调用了libffmpeg.so的函数,所以也要把libffmpeg.so放进去.一起打包才能使用.然后我的代码是先loadLibrary了test.所以会出现Li...
2011-08-10 17:53:51 938
原创 android NDK 中使用libffmpeg.so
首先你要有一个Android项目,把libffmpeg.so放到项目的libs/armeabi-v7a/中。然后要准备FFmpeg的源文件,把它们放到你喜欢的目录,比如jni/ffmpeg/中。编辑你需要使用libffmpeg.so的项目模块的Android.mk,在合适的位置添加如下内容LOCAL_C_INCLUDES += $(PATH_TO_FFMPEG_SOURCE)LO...
2011-08-10 17:13:20 191
原创 在NDK中如何使用libffmpeg.so
此帖转载,和该篇作者一样,编译完后不知道怎么使用。 marke to keep in mind.(此贴后来验证失败,不过还是给了很大的帮助),下帖是测试成功贴。要在android上用ffmpeg首先得奖ffmpeg工程移植到android上,这里就要用到ndk把这个开源工程编译成一个后缀为so的库,这个步骤这里就不多说了 网上的资料也挺多的,我是按照:http://www.cnblogs....
2011-08-10 17:11:44 166
原创 Windows XP、Cygwin、NDKr5b编译Android下的ffmpeg
原文:http://blog.sina.com.cn/s/blog_7a1896ee0100ppdp.html 历经挫折和摧残,终于成功在Windows XP, Cygwin, NDK SDK r5b下成功编译了ffmpeg,下面是完整的编译过程,下面是详细的过程:一、准备工作2、下载Cygwin, 请猛击这里3、下载Android SDK,请猛击这里,Android ...
2011-08-10 12:12:18 164
原创 Ubuntu 10.10 64bit下使用Android NDK r6编译FFmpeg 0.8.1
1.下载NDK r6和FFmpeg 0.8.1Android NDK r6FFmpeg 0.8.12.解压缩android-ndk-r6-linux-x86.tar.bz2 解压到 /home/pekall/opt 目录下,并将NDK的路径加入到PATH环境变量中ffmpeg-0.8.1.tar.gz 解压到 /home/pekall/Projec...
2011-08-10 12:09:10 67
原创 android获取屏幕尺寸、密度
有些时候,我们需要获取Android手机或Pad的屏幕的物理尺寸,以便于界面的设计或是其他功能的实现。下面就介绍讲一讲如何获取屏幕的物理尺寸: 从网上找过不少资料,发现获取屏幕尺寸并不是很复杂的编程操作,下面的代码即可获取屏幕的尺寸。 在一个Activity的onCreate方法中,写入如下代码: DisplayMetrics metric = new DisplayMe...
2011-08-08 16:03:02 45
原创 Java容器类List、ArrayList、Vector及map、HashTable、HashMap的区别与用法
ArrayList 和Vector是采用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,都允许直接序号索引元素,但是插入数据要设计到数组元素移动等内存操作,所以索引数据快插入数据慢,Vector由于使用了synchronized方法(线程安全)所以性能上比ArrayList要差,LinkedList使用双向链表实现存储,按序号索引数据需要进行向前或向后遍历,但是插入数据时只需要...
2011-08-02 19:03:31 69
原创 java设计模式学习系列之一:单例模式(Singleton)
单例模式(Singleton) 1.介绍:也叫单子模式,是一种常用的软件设计模式。在应用这个模式时,单例对象的类必须保证只有一个实例存在。许多时候整个系统只需要拥有一个的全局对象,这样有利于我们协调系统整体的行为。比如在某个服务器程序中,该服务器的配置信息存放在一个文件中,这些配置数据由一个单例对象统一读取,然后服务进程中的其他对象再通过这个单例对象获取这些配置信息。这种方式简化了在复杂...
2011-08-02 19:00:14 61
原创 Java:Overriding与Overloading
在Java中,什么是Overriding?什么是Overloading?author: ZJ 07-3-13Blog: [url]http://zhangjunhd.blog.51cto.com/[/url]1.OverridingOverriding翻译过来是“重写/覆盖”。 它是覆盖了一个方法并且对其重写,以求达到不同的作用。对我们来说最熟悉的覆盖就是对接口方法...
2011-08-02 17:45:32 83
原创 BroadCastReceiver中截获短信
Bundle bdl = intent.getExtras(); try { Object pdus[] = (Object [])bdl.get("pdus"); for(int i=0; i < pdus.length; i++) { byte[] data = (byte[])pdus[i]; SmsMes...
2011-08-02 13:27:38 61
原创 Smack编写jabber客户端(下)
Smack提供了一个灵活的框架来处理接受到的数据包:org.jivesoftware.smack.PacketCollector -- 让你同步等待新的包.org.jivesoftware.smack.PacketListener -- 异步通知你包的到来.一个packet listener在事件风格的程序中使用,packet collector可以做轮循和阻塞操作.它们都...
2011-08-01 16:20:19 96
原创 用Smack编写jabber客户端(中)
使用 Chat 和 GroupChat 传递消息发送接受消息是即使通讯软件的核心功能.有两个类帮助完成这个任务.org.jivesoftware.smack.Chat -- 用来在两者之间传递信息.org.jivesoftware.smack.GroupChat -- 用来加入一个组给很多人之间传递消息.他们都是使用org.jivesoftware.smack.pa...
2011-08-01 16:19:53 84
原创 用Smack编写jabber客户端(上)
万事都不能从零开始,XMPP规范就象webServece规范一样.我们最后选用一个库来加速开发.所以我们选择使用Smack因为它容易使用,设计合理,还记得我们的经典jive吗,它也是他们开发的,应该还是比较不错的. 注意是apache的licence,也就是可以应用到你的商业程序中.下载地址:http://www.jivesoftware.org/使用简单,你不需要精通...
2011-08-01 16:09:39 84
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人