摘要: 【转】ts打包代码详解 (ffmpeg) 转自:http://bbs.csenn.com:88/thread-59-1-1.html FFmpeg代码里面有ts打包和解包的代码,这里简单介绍下怎么使用吧。先来看下FFmpeg目录结构:libavformat:用于各种音视频封装格式的生成和解析,包括获取解码所需信息以生成解码上下文结...
阅读全文
posted @
2014-12-15 17:30 lfc 阅读(1253) |
评论 (0) |
编辑 收藏
posted @
2014-12-03 17:16 lfc 阅读(1065) |
评论 (0) |
编辑 收藏
摘要: ffmpeg存在多个时间基准(time_base),对应不同的阶段(结构体),每个time_base具体的值不一样,ffmpeg提供函数在各个time_base中进行切换。搞清楚各个time_base的来源,对于阅读ffmpeg的代码很重要。一、time_base1、AVStream(libavformat/avformat.h)Code highlighting produced by Acti...
阅读全文
posted @
2014-11-28 10:58 lfc 阅读(6775) |
评论 (0) |
编辑 收藏
posted @
2014-11-24 10:37 lfc 阅读(296) |
评论 (0) |
编辑 收藏
posted @
2014-11-16 09:18 lfc 阅读(326) |
评论 (0) |
编辑 收藏
posted @
2014-09-15 12:04 lfc 阅读(320) |
评论 (0) |
编辑 收藏
posted @
2014-08-14 17:25 lfc 阅读(418) |
评论 (0) |
编辑 收藏
摘要: 出处:http://blog.csdn.net/myarrow/article/details/71805611. 简介 网上已经有很多兄弟对Android的显示系统做了深入解剖,很是佩服。可最近小弟在研究Android4.0时发现...
阅读全文
posted @
2013-09-18 11:31 lfc 阅读(2066) |
评论 (0) |
编辑 收藏
本来以为很容易,还是折腾了好一阵子,在此分享一下心得:
1、准备好要更换的图片
注:png、jpg格式均可
2、将图片转换成raw格式
使用linux下的ImageMagick自带的convert命令,进行raw格式转换,命令为:
convert -depth 8 initlogo.png rgb:initlogo.raw
注:ubuntu 10.04 默认已经安装ImgageMagick工具,如果当前系统没有安装,可以执行下面的命令安装:
sudo apt-get install imagemagick
3、将raw格式转换成rle格式
需要用到android编译后的rgb2565工具,在android/out/host/linux-x86/bin目录下(android为当前源码所在目录),转换命令如下:
rgb2565 -rle <initlogo.raw> initlogo.rle
到目前为止,启动需要显示的图像已经做好了,就是initlogo.rle,注意文件名必须是这个,如果想改文件名,需要修改android/system/core/init/init.h中的宏:
#define INIT_IMAGE_FILE "/initlogo.rle"
4、如果你的Android系统使用24bit显示,还需要修改android logo显示代码:
< void android_memset24(void *_ptr, unsigned short val, unsigned count)
< {
< unsigned char *ptr = (unsigned char *)_ptr;
< count >>= 1;
< while(count--) {
< *ptr++ = ((val&0x001F )<<3);//B
< *ptr++ = ((val&0x07E0 )>>3);//G
< *ptr++ = ((val&0xF800 )>>8);//R
< ptr++;//the forth byte not use
< }
< }
<
64c52
< #define fb_size(fb) ((fb)->vi.xres * (fb)->vi.yres * (fb)->vi.bits_per_pixel / 8)
---
> #define fb_size(fb) ((fb)->vi.xres * (fb)->vi.yres * 2)
149,171c137,145
<
< if(fb.vi.bits_per_pixel == 16) {
< while (count > 3) {
< unsigned n = ptr[0];
< if (n > max)
< break;
< android_memset16(bits, ptr[1], n << 1);
< bits += n;
< max -= n;
< ptr += 2;
< count -= 4;
< }
< }else{
< while (count > 3) {
< unsigned n = ptr[0];
< if (n > max)
< break;
< android_memset24(bits, ptr[1], n << 1);
< bits += n << 1;
< max -= n;
< ptr += 2;
< count -= 4;
< }
---
> while (count > 3) {
> unsigned n = ptr[0];
> if (n > max)
> break;
> android_memset16(bits, ptr[1], n << 1);
> bits += n;
> max -= n;
> ptr += 2;
> count -= 4;
178c152
< // unlink(fn); //不让它显示完后删除logo图片
---
> unlink(fn);
参考网页:
http://blog.csdn.net/xiyu_1986/article/details/6610830
http://blog.csdn.net/yicao821/article/details/7199189
http://blog.csdn.net/zhaomx/article/details/6228514
posted @
2013-08-02 17:44 lfc 阅读(1111) |
评论 (0) |
编辑 收藏
摘要: 第一部分 Camera概述 Android的Camera包含取景器(viewfinder)和拍摄照片的功能。目前Android发布版的Camera程序虽然功能比较简单,但是其程序的架构分成客户端和服务器两个部分,它们建立在Android的进程间通讯Binder的结构上。 以开源的Android为例,Camera的代码主要在以下的目录中: Camera的JAVA程序的路径: packages/app...
阅读全文
posted @
2012-01-17 16:15 lfc 阅读(1710) |
评论 (1) |
编辑 收藏