
C语言
文章平均质量分 60
notton
开发共享软件。dvd vc converter
展开
-
Qt QTreeView根节点下不显示数据(Thinkvd开发日志)
<br /><br /><br />现象描述:当在Clip后返回主界面时,Clip后的记录B会从当前的记录A COPY一份,并在记录B下生成子记录B1、B2。关系如下:<br />A<br />B<br />|--B1<br />|--B2<br />此时记录B的子节点与B一块显示不出来,若B1,B2直接为记录A的子节点是没有问题,其记录B新增加的方式与已经存在增加addProfile类似。测试若把B当成A的子记录,如下关系:<br />A<br />|--B<br /> |--B1<br /> |--原创 2010-12-01 18:36:00 · 3134 阅读 · 0 评论 -
关于头文件变量重复定义问题怎么解决(thinkvd开发日志)
<br />在看一下开源程序时,编译时出错,与windows.h与mingw下的rpcndr.h冲突,原来它们都定义了:typedef unsigned char boolean;<br /><br />若是宏义定直接取消定义,这个还不行。还得改它们的头文件,自然要改影响小的一个,改动之后不能响应其它的工程,解决办法:<br />在mingw下的rpcndr.h时,找到boolean定义的地方,增加约束条件<br /><br />#ifndef X_BOOLEAN //名称尽可能唯一.<br />#defi原创 2011-03-15 09:03:00 · 917 阅读 · 0 评论 -
关于C语言中的Map(thinkvd 开发日志)
<br /> 开发中用过map,但一般都是C++的,对map的好处深有体会,尤其是QT中的QMap。C语言中的Map如何实现呢,看看高人写的吧<br />感觉与QT中的支持QVariant支持并转换还有许多差距,没有map["abc"] = 1000这样的方式直观易用。<br /><br />http://www.koders.com/c/fidCDD7DA6132DC0D5232F0EEB2AA6C9A07F8584484.aspx/* $Id: hashmap.c,v 1.17 2005/08/15 0转载 2011-03-11 14:28:00 · 5926 阅读 · 0 评论 -
producersdk 中的mediasinkencoder采样声音为什么时间长度只有一半
thinkvd dvd and video 开发日志.mediasinkencoder样例,是用来生成rmvb文件的,其核心函数是CMediaSinkEncoderApp::EncodeSamples原创 2011-02-12 15:00:00 · 589 阅读 · 0 评论 -
转换dvd 字幕缩小改进(thinkvd开发日志)
thinkvd 视频转换dvd 字幕缩小程序改进, 采用的是:Two Pass Scaling using Filters图片缩放算法原创 2011-03-02 08:10:00 · 791 阅读 · 0 评论 -
PPM/PGM/PBM 图象文件(thinkvd 开发日志)
<br />文章出处:飞诺网(www.firnow.com):http://dev.firnow.com/course/6_system/linux/Linuxjs/2008727/133901.html<br />PPM->Portable PixMap<br />PGM->Portable GreyMap<br />PBM->Portable BitMap<br />PBM支持单色图(1个像素位)<br />PGM支持灰度图形,能够读PBM图形和PGM图形,输出PGM图形<br />PPM支持真彩色图形原创 2011-02-28 09:27:00 · 1980 阅读 · 1 评论 -
dvd 字幕缩放测试代码 (thinkvd开发日志)
<br />这个测试代码字幕放大时效果还可以,但缩小时无论怎么调整有关参数:<br />1. sws_getContext中的flags相关,<br />2。sws_getGaussianVec(0.25, 3.0);<br />都比较难让人满意,当画面缩小时,与主流的dvd converter 转换器还有点差异.<br /><br />void subtitle_scale(AVCodecContext *c)<br />{<br /> struct SwsContext *pSWSCtx;<br原创 2011-02-27 14:10:00 · 911 阅读 · 0 评论 -
关于mplayer dvd seek定位函数dvd_seek_to_time
环境:mplayer,及它下面的stream说明:1。本文只是阅读它的代码,没有进行调试跟踪,可能有出入不对的地方.2。希望读者对dvd的逻辑结构有些了解,如vts, pgc, chapter, cell它们的关系需要明白.dvd如何通过时间来定位的,可通过dvd_seek_to_time来分析,看看它是如何通过时间来定位的。也就是把时间转换成sector, DVDReadBlocks中的参数offset Block它的定位就有点象物理学中的千分尺(游标卡尺),先通过时间查到所属dvd的cell,再在cel原创 2011-02-03 09:49:00 · 1836 阅读 · 0 评论 -
DVD subtitle (thinkvd开发日志)
当前解决了:1。字幕位置调整2。字幕transparent3. 字幕Front Color and background Color4. 字幕动态切换(还存在问题)由于解码后的subtitle stream的数据保存在缓存中, 当播放中切换subtitle时,没有办法立即得到当前更改后的字幕流,因此存在延时显示subtitle问题。原创 2010-11-24 14:13:00 · 725 阅读 · 0 评论 -
SDL 共享内存存在问题(thinkvd开发日志)
<br />从原理上来讲,生产者与消费者共享内存,是可以不用COPY数据的。个人用简单的程序测试过。但SDL渲染video时存在问题(用的是sdl1.3)。<br /><br />在ffplay中把SDL_Overlay的buffer与共享内存绑定没有问题,但在qt下就出现问题,跟踪发现在显示video前调用SDL_LockYUVOverlay时,它把SDL_Overlay内存地址还原到创建SDL_CreateYUVOverlay的时候了,若不调用SDL_LockYUVOverlay,视频也不能正常显示,可原创 2010-11-21 09:20:00 · 890 阅读 · 0 评论 -
libass 不支持subtitle字幕Underline问题
<br /> libass中本身有Underline支持字体下画线参数的,但怎么设置也不正常,我跟踪了一下它的源代码,也没有找到其根本原因,我想mplayer中有它的插件,于是对比了一下它的mplayer中的区别,主要是增加了两个函数(事实上只要一个)即可解决;计划在视频转换软件thinkvd的 effect 功能中加上它<br />测试效果图如下:<br /><br /><br /><br /><br />附上相关代码:(调用部分参考mplayer需要自己更改)<br /><br />/*<br /原创 2010-11-05 11:04:00 · 1722 阅读 · 0 评论 -
以顺其自然的思路写程序(Thinkvd开发日志)
有的程序在写之前都会很好地“研究”一番,讲究一些独特的技巧,但有时可能造成后来的维护者半天看不明白。过去这方面见过一些,相信也有人遇到过类似的情况。 个人觉得一般程序在不响应功能的情况下应该顺其自然,适合常规思维、简单易维护为目的。下面以开发中的thinkvd merge items 合并不同的条目为例说明一下:实现目的:把当前选择的ITEM合并生成新item,需要合并的item为刚生成的新item的子item,有点拗口,以图示例:实现思路:1。判断item 数不小于2条2。生成新的item1原创 2010-12-17 08:26:00 · 600 阅读 · 0 评论 -
SDL实现overlay方式双屏显示的应用流程分析(thinkvd开发日志)
<br />由于在参与开发 thinkvd video converter 遇到释放SDL内存的问题,应用中需要在预览、全屏、双屏及CLIP之间来回切换,再次看了SDL相关的源代码,把SDL实现的过程简单说一下。<br /><br />SDL开发包中自带的样例:testsprite2.c中就是一个实现多屏显示的例子。<br />简化它来说大概这几步:<br />1。SDL_Init(SDL_INIT_VIDEO | SDL_INIT_NOPARACHUTE) //初始化<br />2. windows[i]原创 2010-12-11 09:34:00 · 3501 阅读 · 1 评论 -
QMessageBox 窗口大小更改问题(thinkvd开发日志)
QMessageBox的功能很强大、实用及方便,相信用过Qt的开发者都用过它,但它有一个让人不友好的地方,就是不能设置窗口的大小,尤其对自定义界面的窗口风格时,不得不考虑这个不便。这个问题在自己参与开发thinkvd时就意识到,由于当时自己对Qt的认识有限,几次偿试解决都没有结果,当时主要原因在于它引用了几个类的私有成员(如QLabel的)。 现在把实现的思路大概说一下: 1。重新实现QMessageBox->ImMessageBox(直接COPY QMessageBox),改名,再带原创 2010-12-04 18:31:00 · 8607 阅读 · 1 评论 -
SDL内存泄漏跟踪(thinkvd开发日志)
参与开发thinkvd video converter中,测试发现当itemA,itemB切换播放时,内存在不断增加,每次增加的大小略大于当前视频帧的大小,表明内存存在泄漏问题(通过task Manager查看)。 经过跟踪分析,发现只有播放时才会出现,说明与界面逻辑无关,由于播放用的是SDL,很可能问题出在SDL相关的地方。A。若播放时跳过播放函数会增加0.7M左右。(视频源是800x436)B。击播放SDL会增加1M左右。分配内存的主要地方在sdl初始化及SDL_CreateYUVOverlay,原创 2010-12-08 09:18:00 · 1980 阅读 · 1 评论 -
关于swf to video convert(thinkvd开发日志)
<br />swf to video convert技术问题经过一段时间开发后,主要技术问题基本解决。<br />1。解决swf在播放有些flash文件时(这里指swf文件)时,无论怎么gotoFrame也不向前播放或有些loop脚本不执行。这个是看了<com原理及应用>才知道如何解决,主要是对com不太熟悉。<br />2。 声音问题,得到swf视频中的音频流。<br />3。swf转换成视频的demuxer, decoder。<br /> <br />在这期间把wave相关的知识,directsound原创 2011-03-27 21:46:00 · 573 阅读 · 0 评论