原创 PyCairo 教程

這裏是 PyCairo 教程。在這份教程中,我們將基於 Python 和 Cairo 庫學習 2D 圖形編程。 目錄 簡介 後端 基本繪圖 形狀和填充 漸變 裁剪和屏蔽 透明度 變換 文本 圖片 根窗口 PyCairo PyC

原创 RTC 技術知識體系

RTC(Real-time Communications),直譯或者廣義指實時通信,狹義一般稱爲實時音視頻,在這次全球大爆發的新冠肺炎疫情中,作爲視頻會議、視頻通話、遠程辦公、遠程醫療和互動直播等應用的底層技術,爲全社會的盡力運轉

原创 C++ lambda 捕獲模式與右值引用

lambda 表達式和右值引用是 C++11 的兩個非常有用的特性。 lambda 表達式實際上會由編譯器創建一個 std::function 對象,以值的方式捕獲的變量則會由編譯器複製一份,在 std::function 對象中

原创 WebRTC 中的基本音頻處理操作

在 RTC,即實時音視頻通信中,要解決的音頻相關的問題,主要包括如下這些: 音頻數據的採集及播放。 音頻數據的處理。主要是對採集錄製的音頻數據的處理,即所謂的 3A 處理,AEC (Acoustic Echo Cancellat

原创 PyCairo簡介

這裏是 PyCairo 教程。這份教程將以 Python 語言,教你 Cairo 2D 庫的基本的和一些高級的主題。在大多數例子中,我們將會使用 Python GTK 後端來產生我們的輸出。本教程中所用到的那些圖片可以在 此處 下

原创 OpenCV4Android JavaCameraView實現

OpenCV4Android中,主要用 org.opencv.android.JavaCameraView(後面用JavaCameraView 指代)、org.opencv.android.NativeCameraView(後面用

原创 Android low memory killer 機制

Android中,進程的生命週期都是由系統控制的。即使用戶在界面上關掉一個應用,切換到了別的應用,那個應用的進程依然是存在於內存之中的。這樣設計的目的是爲了下次啓動應用能更加快速。當然,隨着系統運行時間的增長,內存中的進程可能會越

原创 WebRTC 的音頻處理流水線

基於 RTC 場景下要解決的聲音的問題,WebRTC 有一個大體如下圖所示的音頻處理流水線: WebRTC 的音頻處理流水線,不是一次性建立起來的,而是分階段分步驟建立的。整體而言,可以認爲這個流水線分兩個階段建立,或者可以認爲

原创 個人項目推廣

一時興起,搞了自己的開源項目或者是個人博客出來,雖然出發點常常並不是要利用這些得到多大的好處,而僅僅是出於一種保存曾經戰鬥過的地方的習慣,或者隨手總結記錄,以彌補隨着年齡的增長而變得越來越差的記憶的不足,但如果自己搞得這些東西能被

原创 OSI 網絡協議模型爲什麼是 7 層?

OSI 網絡協議模型爲什麼是 7 層呢?相信不少朋友心中都有這樣的疑問。 Douglas E. Comer 先生的個人主頁上的一篇文章 How the 7-layer reference model was invented 講述

原创 PyCairo 中的基本繪圖

在 PyCairo 教程中的這個部分,我們將會繪製一些基本的元素。我們將繪製簡單的直線,應用填充和 stroke 操作,我們將會討論虛線,線帽和線的交合。 直線 直線是非常基本的向量對象。爲了繪製一條直線,我們使用兩個方法調用。一個是mo