Jerasure 杂谈(四)
新的一天又来了,昨天取得的进展不多也不少吧,新开一个,免得太长了,接着杂谈(三),继续弄
昨晚调试的时候好像encoder基本ok了,但是明显有些很邪乎的问题,可能是内存的声明和释放不当吧,C++强大和脆弱的地方便在次,额…昨晚debug的时候发现一步步来调试没问题的,然后结束了之后,删除所有的文件重新来一次,是从头跑一次而不是一步步调,然后中途除了内存报错不说吧,生成的第一个数据块很神奇地删不掉的…吓尿了…好吧,windows有个很强大的功能就是,重启,反正重启了一次之后就可以删除了,现在看看什么问题吧……
我先看看文件的打开和写入这些环节,收集下fopen的很重要的一些参数说明:
参照fopen的参数说明: 文件使用方式 意 义 “rt” 只读打开一个文本文件,只允许读数据 “wt” 只写打开或建立一个文本文件,只允许写数据 “at” 追加打开一个文本文件,并在文件末尾写数据 “rb” 只读打开一个二进制文件,只允许读数据 “wb” 只写打开或建立一个二进制文件,只允许写数据 “ab” 追加打开一个二进制文件,并在文件末尾写数据 “rt+” 读写打开一个文本文件,允许读和写 “wt+” 读写打开或建立一个文本文件,允许读写 “at+” 读写打开一个文本文件,允许读,或在文件末追加数据 “rb+” 读写打开一个二进制文件,允许读和写 “wb+” 读写打开或建立一个二进制文件,允许读和写 “ab+” 读写打开一个二进制文件,允许读,或在文件末追加数据
主要要注意的就是加不加b,加不加+的区别了。
好吧,今天重启了一下之后,貌似就很正常了,把encoder完整跑了一次,我把那个测试的小白鼠文件放到跟源代码一个目录下了,test.mkv,额可是最喜欢的美剧之一《White Collars》最新一集的重命名来的啊,麻烦对它温柔的,也推荐这部美剧,是我自己很喜欢的类型,优雅的罪犯,con man in NYC,很好看。
下面就是完成后的截图,我的参数是
/* Inside Initialization */ argc = 8; argv = new char* [8]; argv[0] = "encoder"; argv[1] = "I://Microsoft Visual Studio 2010//Workspace//j_lib_test//j_lib_test//test.mkv"; argv[2] = "6"; argv[3] = "2"; argv[4] = "reed_sol_van"; argv[5] = "8"; argv[6] = "1024"; argv[7] = "50000"; /* Initialization Done */
分成了6+2个东西,然后它还生成个metafile,用于修复吧,呵呵,在想修复的时候这个文件没了它怎么搞呢?

最后的结果是:Encoding<MB/sec>: 182.6463881154 , En_Total<MB/sec>:3.5409113209
呼呼~终于算是搞定了一个重要的环节了,为了庆祝下,我就新开一篇杂谈来谈谈怎么搞decoder吧,不过有了encoder的经验,应该也很快了

浙公网安备 33010602011771号