2012年3月10日 星期六

[ffmpeg] 0.9 版後的新式 interrupt

這次試著更新專案內的 ffmpeg 至最新的 tag 版本 n0.9。發現專案內的『deprecated』比以往更多,但還都是能編譯的狀態。依慣例得確認一下在最新的 source code 裡,那些 deprecated 是真的被移除。於是編了 master branch 上的 code,發現 io interrupt callback 的寫法已經不再相容舊版了。

對於 ffmpeg 文件常跟不上 source code 的狀態,這連 changelog 也沒有記載這件事,我們可以簡單 diff n0.9 與前一版找出改變的部分,能利用一定會用到 io interrupt callback 的 ffmpeg.c 來作 diff:

..

舊式的 io interrupt callback 是一個 global function pointer:
..

新式的 io interrupt callback 使用一個 struct 包起來,設定在各別的 AVFormatContext:
..

要修改的部分雖然不太多,但 callback function 的參數有改,這是得注意的部分 :D

沒有留言:

張貼留言