随笔-119  评论-133  文章-4  trackbacks-0
 
一、windows下编译

   不推荐,折腾。

参考:
https://wiki.videolan.org/Win32CompileMSYSNew/
https://wiki.videolan.org/Win32CompileMSYSTroubleShooting
http://blog.csdn.net/wytsylar/article/details/14445751
http://blog.csdn.net/shen8686/article/details/8533058
http://blog.chinaunix.net/uid-701988-id-3775830.html

后记:
        
发现windows下编译vlc应该参考官网的另外一个贴,使用i686-w64-mingw32编译器,不过我还没有试:
https://wiki.videolan.org/Win32CompileMSYS/

二、linux下编译

【vlc 2.1.x】

编译环境:

ubuntu 12.04(64bit)

参考以下帖子:

http://blog.csdn.net/tx3344/article/details/8556793


要注意的地方:

1、关于mingw-w64 3.0,我下载的是:

1) mingw-w64-i686-dev_3.0~svn5496-1_all.deb

2) mingw-w64-x86-64-dev_3.0~svn5496-1_all.deb

3) mingw-w64-dev_3.0~svn5496-1_all.deb(可选)

4) mingw-w64_3.0~svn5496-1_all.deb(可选)

安装的时候可能会提示依赖关系和版本冲突,请发挥你的聪明才智去解决。

注意:

         mingw-w64-dev的版本要求很严格,我试过用3.2的版本,编译通过可是播放视频的时候会意外退出(怀疑跟contrib库的搭配问题有关)。

2、关于contrib,我没让它下载最新的,而是手动下载“vlc-contrib-i686-w64-mingw32-20130917.tar.bz2”版本。

3、“make .qt4”这一步我没做,不影响编译。


【vlc 2.2.x】

编译环境:

ubuntu 12.04/14.04(64bit)

参考以下帖子:

http://blog.csdn.net/houmingbo123/article/details/46469425

https://higoge.github.io/2015/07/17/sm02/


要注意的地方:

1、关于mingw-w64,请使用3.2版本,我下载的是:

1)mingw-w64-common_3.2.0-2_all.deb

2)mingw-w64-i686-dev_3.2.0-2_all.deb

3)mingw-w64-x86-64-dev_3.2.0-2_all.deb

注意:

    先“sudo apt-get install gcc-mingw-w64-i686 g++-mingw-w64-i686 mingw-w64-tools”安装旧版本,再"sudo dpkg -i xxx"安装上面的3个包。

2、关于contrib,我使用的是“vlc-contrib-i686-w64-mingw32-20150630.tar.bz2”版本。

3、编译2.2.x的时候,configure前,需要指定“PKG_CONFIG_LIBDIR”,否则影响后面编译。

4、编译之前,执行“01.sh”很重要,否则会导致运行的时候QT的UI出不来。







posted @ 2015-01-13 14:18 lfc 阅读(3629) | 评论 (0)编辑 收藏
     摘要: 【转】ts打包代码详解 (ffmpeg) 转自:http://bbs.csenn.com:88/thread-59-1-1.html FFmpeg代码里面有ts打包和解包的代码,这里简单介绍下怎么使用吧。先来看下FFmpeg目录结构:libavformat:用于各种音视频封装格式的生成和解析,包括获取解码所需信息以生成解码上下文结...  阅读全文
posted @ 2014-12-15 17:30 lfc 阅读(1344) | 评论 (0)编辑 收藏
posted @ 2014-12-03 17:16 lfc 阅读(1112) | 评论 (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 阅读(6914) | 评论 (0)编辑 收藏
posted @ 2014-11-24 10:37 lfc 阅读(327) | 评论 (0)编辑 收藏
posted @ 2014-11-16 09:18 lfc 阅读(354) | 评论 (0)编辑 收藏
posted @ 2014-09-15 12:04 lfc 阅读(349) | 评论 (0)编辑 收藏
posted @ 2014-08-14 17:25 lfc 阅读(462) | 评论 (0)编辑 收藏
     摘要: 出处:http://blog.csdn.net/myarrow/article/details/71805611. 简介               网上已经有很多兄弟对Android的显示系统做了深入解剖,很是佩服。可最近小弟在研究Android4.0时发现...  阅读全文
posted @ 2013-09-18 11:31 lfc 阅读(2181) | 评论 (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 阅读(1176) | 评论 (0)编辑 收藏
仅列出标题
共12页: First 2 3 4 5 6 7 8 9 10 Last