查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

jasonyang9的博客

随便写写

 
 
 
 
 
 

[置顶] MPlayerGUI is an Open Source Project now!

2008-6-7 21:02:01 阅读617 评论5 72008/06 June7

MPlayerGUI is an Open Source Project now! You can find it at: http://sourceforge.net/projects/mplayerguiwin/

Source code is included in the release, you can compile the source by using Visual C++ 6.0 with MFC 4.2

The new released 0.5.19 has the following changes:

1, Fixed a screensaver (power saving) related bug;

2, Calculate Video bitrate if MPlayer returns 0 (unreasonable);

3, Code cleanup

MPlayerGUI 现在是一个开源软件项目了。你可以在以下地址找到它:http://sourceforge.net/projects/mplayerguiwin/

源代码包括在软件发行版中,你可以用 Visual C++ 6.0(MFC 4.2)编译。

作者  | 2008-6-7 21:02:01 | 阅读(617) |评论(5) | 阅读全文>>

关于FLV视频的拖动播放问题

2014-5-25 14:25:58 阅读165 评论0 252014/05 May25

所谓拖动播放,其实就是在播放过程中快速跳转到某个时间点。有些FLV格式的视频拖动后会非常迟钝,耗费CPU和磁盘IO现象严重。有专门针对这个问题的metadata关键帧注入工具,如:yamdi或FLVMDI。

后又发现,硕鼠下载的视频,用简易版合并工具制作出来的FLV视频就是缺少metadata关键帧信息的。而独立版合并工具则无此问题。小小奔溃一下。

作者  | 2014-5-25 14:25:58 | 阅读(165) |评论(0) | 阅读全文>>

(转)《葛罗瑞亚》:中年离异女人谁能懂?

2014-4-5 22:00:58 阅读162 评论0 52014/04 Apr5

智利导演塞巴斯蒂安·莱里奥(Sebastian Lelio)的电影《葛罗瑞亚》(Gloria)讲述的是一个中年离异女人的故事。这部电影是柏林电影节官方首批宣布入围的5部主竞赛电影之一,这5部电影中有4部都是有关一个女人的无奈经历。她们肤色不同,语言不通,但是都在和生活抗争,抗争的激烈程度各不相同。本片中的女人,与其说她在与生活抗争,不如说她辛苦了半天,其实并不清楚自己的抗争是为了什么。

从技术上说,本片导演的掌控能力极强。他拍这部电影不是简单地开机关机,让演员在镜头前做动作说话就完了,而是通过操控,保证电影的行进基本上处在一个最佳的速度,演员说对白做表情都很从容,所以在表现情感方面特别充分,拳拳到肉。这部电影的导演功课堪称本专业内的典范。女主角演得不紧不慢,很有智利版的安妮特·贝宁(Annette Bening)的神韵,可以初步定为本届柏林电影节最佳女主角的强力竞争者。

这部电影并没有一条故事性特别强的线索,没有强烈的戏剧冲突,有的只是一个人的日常生活里,每个看似漫不经心的场景的拼贴。电影同名女主角葛罗瑞亚是一名离异的中年女人。她的两个孩子都已经成年了,但是她还依然一个人在酒吧歌厅里出没,精细地涂口红穿礼服,一派风韵犹存的样子。随后她顺利地和一个游乐场老板坠入了情网,他也是离异,有两个孩子。虽然感情一旦燃起就不会短时间退去,但是两个人在很多问题上都互相不能理解。女方不能理解男方无条件资助两个没有工作的孩子,男方不能理解女方和前夫回忆往昔的甜蜜生活。几个来回之后,两个人终于彻底分了,葛罗瑞亚又回到了歌厅,若有所思地看着别人跳舞。结尾歌厅里播放的同名歌曲“葛罗瑞亚”把所有人的思绪都带到了模糊的意境里。

作者  | 2014-4-5 22:00:58 | 阅读(162) |评论(0) | 阅读全文>>

微博你妹

2013-3-7 21:47:36 阅读81 评论0 72013/03 Mar7

作者  | 2013-3-7 21:47:36 | 阅读(81) |评论(0) | 阅读全文>>

幸福的女孩

2013-3-7 21:42:31 阅读90 评论0 72013/03 Mar7

作者  | 2013-3-7 21:42:31 | 阅读(90) |评论(0) | 阅读全文>>

从前和现在

2013-3-7 21:38:58 阅读81 评论0 72013/03 Mar7

作者  | 2013-3-7 21:38:58 | 阅读(81) |评论(0) | 阅读全文>>

==========

动态链接库

==========

动态链接库

----------

* 自从微软推出第一个版本的Windows操作系统以来,动态链接库(DLL)一直是Windows操作系统的基础。

* 动态链接库通常都不能直接运行,也不能接收消息。它们是一些独立的文件,其中包含能被可执行程序或其他DLL调用来完成某项工作的函数。只有在其他模块调用动态链接库中的函数时,它才发挥作用。

* Windows API中的所有函数都包含在DLL中。其中有3个最重要的DLL:Kernel32.dll,包含用于管理内存、进程和线程的各个函数(如CreateThread);User32.dll,包含用户执行用户界面任务(如窗口的创建和消息的传送)的各个函数(如CreateWindow);GDI32.dll,包含用于画图和显示文本的各个函数(如LineTo)。

静态库和动态库

--------------

* 静态库:函数和数据被编译进一个二进制文件(.LIB)。在使用静态库的情况下,在编译链接可执行文件时,链接器从库中复制这些函数和数据,并把它们和应用程序的其他模块组合起来,来创建最终的可执行文件(.EXE文件)。

* 动态库:在使用动态库的时候,往往提供两个文件:一个引入库(.LIB)和一个DLL。引入库包含被DLL导出的函数和变量的符号名,DLL包含实际的函数和数据。在编译链接可执行文件时,只需要链接引入库,DLL中的函数代码和数据并不复制到可执行文件中,在运行的时候,再去加载DLL,访问DLL中导出的函数。

作者  | 2013-3-6 10:39:35 | 阅读(713) |评论(0) | 阅读全文>>

==========

进程间通信

==========

一个进程运行后,操作系统为其分配4GB的私有地址空间。在一个进程中的各线程共享同一地址空间,因此线程间通信很简单。然而,进程间通信相对比较困难。

进程间通信的四种方式

* 剪贴板(单主机)

* 匿名管道(单主机)

* 命名管道(跨网络,单播)

* 邮槽(跨网络,广播)

剪贴板

------

新建MFC AppWizard工程,Clipboard,Dialog based。

删除原有控件,增加编辑框(IDC_EDIT_SEND),编辑框(IDC_EDIT_RECV),按钮(IDC_BTN_SEND,“发送”),按钮(IDC_BTN_SEND, “接收”)。

实现功能:按下“发送”按钮将IDC_EDIT_SEND编辑框中的内容发送到剪贴板,按下“接收”按钮将剪贴板中的内容填入IDC_EDIT_RECV编辑框。

相关函数

BOOL CWnd::OpenClipboard();

如果函数打开了剪贴板则返回非0,如果已有其他程序打开了剪贴板则返回0。如果剪贴板被打开,除非调用了CloseClipboard,否则其他应用程序不能修改。当前的CWnd对象不会成为剪贴板的拥有者,直到EmptyClipboard被调用。

Nonzero if the Clipboard is opened via CWnd,

作者  | 2013-3-3 20:39:28 | 阅读(397) |评论(0) | 阅读全文>>

========================

线程同步和异步套接字编程

========================

关于事件对象

* 事件对象(和互斥对象一样)也属于内核对象,包含一个使用计数,一个用于指明该事件是一个自动重置的事件还是一个人工重置的事件的布尔值,另一个用于指明该事件处于已通知状态还是未通知状态的布尔值

* 有两种不同类型的事件对象,一种是人工重置的事件,另一种是自动重置的事件。当人工重置的事件得到通知时,等待该事件的所有线程都变为可调度线程;当一个自动重置的事件得到通知时,等待该事件的线程中只有一个变为可调度线程(同时,操作系统将此事件对象自动重置为无信号状态)

新建Win32 Console Application, Event。

#include <windows.h>

#include <iostream.h>

DWORD WINAPI fun1Proc( // 声明线程入口函数fun1Proc

LPVOID lpParameter // thread data

);

DWORD WINAPI fun2Proc( // 声明线程入口函数fun2Proc

LPVOID lpParameter // thread data

);

int tickets = 100; // 剩余的火车票数量

作者  | 2013-2-24 10:38:16 | 阅读(237) |评论(0) | 阅读全文>>

==================

多线程和聊天室程序

==================

程序、进程和线程的概念

* 程序是计算机指令的集合,以文件的形式存储在磁盘(存储介质)上

* 进程通常被定义为一个正在运行的程序的实例,是一个程序在其自身的地址空间中的一次执行活动(一个程序可以同时对应多个进程)

* 进程是资源申请、调度和独立运行的单位,因此,它使用系统中的运行资源;而程序不能申请系统资源,不能被系统调度,不能作为独立运行的单位,因此,它不占用系统的运行资源(进程是运行中的程序)

* 进程由两个部分组成:

 1、操作系统用来管理进程的内核对象。内核对象也是系统用来存放关于进程的统计信息的地方(内核对象是操作系统内部分配的内存块,是一种数据结构,成员负责维护该对象的各种信息,只能通过系统提供的一些函数对内核对象进行操作)

 2、地址空间。包含所有可执行模块或DLL模块的代码和数据,还包含动态内存分配的空间,如线程堆栈和堆分配空间

* 进程是不活泼的,进程从来不执行任何东西,是线程的容器,如果要使进程完成某项操作,它必须拥有一个在它的环境中运行的线程,此线程负责执行包含在进程的地址空间中的代码

* 单个进程可能包含若干个线程,这些线程都“同时”执行进程地址空间中的代码

* 每个进程至少拥有一个线程,来执行进程的地址空间中的代码。当创建一个进程时,操作系统会自动创建这个进程的第一个线程,称为主线程(执行main或WinMain函数的线程)。此后,该线程可以创建其他的线程

作者  | 2013-2-19 9:08:27 | 阅读(476) |评论(0) | 阅读全文>>

查看所有日志>>

 
 
 
 
 
 
 我要留言
 
 
 
留言列表加载中...
 
 
 
 
 
 
 
日志评论
评论列表加载中...
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018

注册 登录  
 加关注