2009-02 月份文章 顯示方式:簡文 | 列表

February 16,2009

CFStringRef的刪除

之前開檔時用到的CFStringRef一直以來都以為只是個structure而以
所以一直也沒管它的release,後來才驚覺這是個 pointer,於是開始找相關的free function

指令非常的簡單 

CFRelease(<Any CF Object>);

不只 CFStringRef,其它的CF(Core Fundation)物件也通用

Posted by toki_kanno at 17:44回應(0)引用(0)Quicktime

February 11,2009

Windows 上的 Quicktime Codec 開發筆記

Apple不愧是Apple....果然工程師的思考邏輯都異於常人
不過這應該歸功於MacOSX上面大多是使用C和Objective C的關係
很多C++上靠class完成的功能,Apple的工程師都是靠structure和marco

Quicktime的codec說穿了只是一個普通到不行的 DLL 檔案
但是加上了Apple專用的resource資源來描述這是個什麼樣的codec
另外codec的進入點(entry point)也是要靠這個resource來描述

首先用Visual Studio很簡單地產生一個標準的DLL專案
生出來之後也不用動它的source code了,反正完全不會用到.....

接下來必需編輯一個 .r 的檔案(r代表resource)

裡面最少要有兩個resource

其中一個type是 'cdci',用來記錄codec info
另一個type必需是'thng',裡面記錄了codec對應的4cc和entry point

編輯完 .r 檔後,必需使用 Rez.exe 來編譯(這程式在Quicktime SDK裡面)

簡單 call 法如下
Rez.exe -p -i [include dir] -o [*.qtr, as output] < [*.r, as input]

在沒有任何錯誤的情形下,應該會生出一個 .qtr 的檔案
接下來必需使用 RezWack.exe 這隻程式來將 .qtr 檔合併至我們產生的 DLL 裡

簡單 call 法如下
RezWack.exe -f -d [*.dll, dll filename] -r [*.qtr, qtr filename] -o [*.qtx, qtx filename]

這樣會產生最終的 qtx 檔案,把這個檔案安裝至 system32 或是 Quicktime 的 Component 目錄下面就可以開始測試了

Posted by toki_kanno at 10:59回應(0)引用(0)Quicktime
 [1]