Hello, 各位 iT 邦幫忙 的粉絲們大家好~~~
在本系列文因為工作上的產品應用需求,進而探索到很多層面的點滴事。
透過每篇 EP 的分享把這些點滴整理,看起來或許像是個獨立的小品抒發文、也或許是一系列技術研究文!?
總之,就當作的隨手雜記文吧!
本篇是 莫名其妙就跟世界等級的 OpenSource 專案攪和了!? 系列文的 EP28。
在 EP27 的介紹到發現了,在 Gstreamer 底下 Gstreamer-Sharp 的 source code 當中詭異的現象。
既然 Gstreamer 是 OpenSource 專案,當然有 Source Code 可以查看,也就可以自行修正並進行驗證。
首先來把 Gstreamer-Sharp 用 Visual Stduio 來開啟看看,而這邊有兩個選擇:
其一,找到 Gstreamer 底下的 subprojects 底下的 gstreamer-sharp 的 gstreamer-sharp.csproj:
其二,找到 Gstreamer 底下的 subprojects 底下的 gstreamer-sharp 底下的 source 的 gstreamer-sharp.csproj:
兩者有什麼不同嗎?
有。
前者是使用 .NET Framework 的專案樣式,而後者是用 .NET 的專案樣式:
無論是使用前者還是後者,這兩個專案檔指向同一份 gstreamer-sharp 的 source code 位置,這點倒是不用擔心。
所以找到位在 generated -> Gst -> MiniObject.cs 並修正前篇所說的疑惑點。
重新編譯 gstreamer-sharp 專案,產生出新的 gstreamer-sharp.dll:
趕緊放到 GstreamerPlayer 專案來播放影片試試看,同時開啟工作管理員監看記憶體:
ㄚㄚㄚ~~~記憶體不再暴衝了啊!!!