原创 三、FFmpeg視頻解碼(附源碼)

在視頻播放器的開發中,有兩個重要的概念——視頻Track和音頻Track,即視頻流和音頻流。“流”是個 抽象的詞,用來表示“一連串的通過時間來串連的數據元素”。流中的數據元素稱爲 幀(frames)。 不同的流是由不同的編碼器(codec

原创 七、FFmpeg把視頻流同步到音頻流

1、如何同步視頻 直到現在,我們的視頻播放器還幾乎無法正常工作,雖然它能播放視頻,也能播放聲音,但是聲音和視頻還沒同步。那麼現在我們要怎麼做呢?   2、PTS和DTS的作用 音頻流和視頻流信息裏面,都有一些信息用於表明應該以多快速度和什

原创 十一、FFmpeg視頻播放時的縮放

視頻播放畫面的縮放主要是通過libswscale這個庫來實現。 我們將用來縮放的基本函數是sws_scale。但一開始,我們必需定義一個SwsContext的結構體,然後把它傳遞給sws_scale函數。類似於在SQL中的預備階段或者是在

原创 五、FFmpeg-用SDL播放音頻

一、音頻相關知識 在這一章中,我們要做的事是播放音頻,首先呈上本章程序的主要流程圖 SDL也有播放音頻的方法,SDL_OpenAudio()函數就是用來打開音頻設備的。這個函數需要一個SDL_AudioSpec結構體作爲參數,該結構包含

原创 四、FFmpeg-用SDL顯示視頻畫面

一、SDL的安裝 可到SDL官網下載安裝SDL2.0,下載地址http://www.libsdl.org/ Linux下的SDL安裝步驟 cd SDL (進入源碼目錄) mkdir build cd build ../configure

原创 Ubuntu14.04 vlc-for-android 編譯過程

vlc-for-android 編譯指南官方網址:https://wiki.videolan.org/AndroidCompile 編譯過程中要嚴格按照官網上的操作步驟來,下面我結合自己的實際操作來總結一下,在 Ubuntu14.04 環

原创 Ubuntu14.04 Android 源碼編譯

一、安裝設置 gcc、g++ 版本 Ubuntu 系統使用的 gcc、g++ 版本隨着發佈版本的不同而不同,在編譯 Android 系統時不同的版本應該用相應版本的 gcc、g++ 去編譯。因爲每次 gcc、g++ 的版本升級,其語法

原创 排序算法——歸併排序 merge sort

歸併排序(Merge sort),是分治法(divide-and-conquer)的典型應用。其基本思想是將待排序序列劃分成兩個子序列,分別將兩子序列排好序,再將這兩子序列合併成一個有序序列,而兩個子序列又可以應用這種歸併策略。歸併排序算

原创 排序算法——希爾排序 Shell Sort

希爾排序(ShellSort)也稱遞減增量排序算法,其實它是插入排序的優化版本。希爾排序是非穩定排序算法。 希爾排序對插入排序的以下兩點進行改進: (1)插入排序在對幾乎已經排好序的數據操作時,效率高,即可以達到線性排序的效率; (2)一

原创 排序算法——計數排序 Counting Sort

計數排序(Counting Sort)是一種非常簡單的排序算法,用來對一個序列進行排序,它也是基數排序的一個關鍵部分。這兩個算法都是Harold Seward發明的。 計數排序主要用於對元素值大於等於0的整數元素序列進行排序,也可以擴展到

原创 排序算法——冒泡排序 Bubble Sort

冒泡排序(Bubble Sort)是一種非常簡單的排序算法,它重複遍歷待排序序列,每次從第一個元素向後遍歷,比較兩兩相鄰的兩個元素,如果前一個元素比後一個元素大,就交換它們的位置,這樣每趟遍歷完成後,大的數總是會有序的“沉”到後面,而小的

原创 排序算法——梳排序 Comb sort

梳排序(Comb sort)是一種不穩定的排序算法,它是冒泡排序的優化版本。其原理與希爾排序類似,在原始的冒泡排序算法中,每次只比較序列中的相鄰兩個元素,即比較的兩元素的間距(Gap)是1,而梳排序初始時兩兩比較的兩元素的間距比1大,並在

原创 排序算法——堆排序 Heapsort

堆排序(Heapsort)是指利用堆進行排序的一種排序算法。堆是一種近似完全二叉樹的結構,它的最大特點是對於最小堆,任何子節點的鍵值總是大於它的父節點;而對於最大堆,任何子節點的鍵值總是小於它的父節點。 堆通常可用數組表示,如果數組第一個

原创 STL 基礎及原理

STL教程概述 也許你在解決 TopCoder 上的問題時已經用過 C++,可能你會發現別人在實現算法的時候,代碼很簡潔幹練。又或許你是一個初級 C++ 程序員,那麼你就更應該好好讀一下這篇stl教程了。在本教程中,我會逐步向你介紹 C+

原创 排序算法——插入排序 Insertion Sort

Insertion Srot 即插入排序,是一種簡單直觀的排序算法,其基本原理是先構建一個空的有序序列,然後依次掃描未排序數據,在有序序列中從後向前掃描,找到相應位置並插入。插入排序通常只需要O(1)的輔助空間,因而在從後向前掃描過程中,