原创 《劍指offer》Java學習錄:字符串(面試題4:替換空格)

文章目錄字符串String的重要特性StringBuilder的重要特性StringBuffer和StringBuilder的區別StringBuilder&StringBuffer的擴容邏輯String、StringBuilde

原创 《劍指offer》學習錄:數組(面試題3:二維數組中的查找)

文章目錄數組面試題 3:二維數組中的查找題目分析解:C++解:java 數組 佔據了內存中一段連續的內存空間,並順序存儲,因此可以通過數組下標直接訪問,時間複雜度爲O(1)O_{(1)}O(1)​,時間效率高。在申明一個數組時,即

原创 PCM數據格式介紹

PCM原始音頻數據格式介紹 文章目錄PCM原始音頻數據格式介紹什麼是PCMSampling(採樣)採樣率(Sample rate)Quantization(量化)Encoding(編碼)PCM數據常用量化指標PCM數據流音量控制採

原创 NuPlayer源碼分析三:解碼模塊

解碼模塊 NuPlayer的解碼模塊相對比較簡單,統一使用了一個基類NuPlayerDecoderBase管理,該類中包含了一個MediaCodec的對象,實際解碼工作全靠MediaCodec。 如果你不會知道MediaCode

原创 NuPlayer源碼分析四:渲染模塊&音視頻同步

渲染模塊&音視頻同步 渲染模塊的作用是,將音頻、視頻數據安裝一定的同步策略通過對應的設備輸出。這是所有的播放器都不可或缺的模塊。 NuPlayer的渲染類爲Renderer,定義在NuPlayerRenderer.h文件中。它的主

原创 FFmpeg播放器(一):FFmpeg+SDL2播放視頻數據

基本調用流程 做了一個利用ffmpeg解碼出yuv數據,通過SDL2顯示數據的demo,記錄一下。 視頻源使用的是網上源:http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4 也不知道

原创 SDL2:第五個程序:播放pcm數據

播放音頻數據對一個播放器來說是不可或缺的,索性SDL2支持播放視頻數據之外,也支持播放音頻數據。廢話不多說,先來試試吧! 使用FFmpeg命令提取PCM數據 這裏從網上下了一首歌Forevermore,非常好聽,是mp3格式的:F

原创 NuPlayer源碼分析一:播放器創建創建

NuPlayer源碼分析一:播放器創建 源碼環境:Oreo 8.0.0_r4 需要編譯 /frameworks/av/media/libmediaplayerservice,生成libmediaplayerservice.so

原创 SDL_UpdateTexture+ffmpeg播放YUV數據程序異常崩潰:VM Regions Near 0x113e3d000:MALLOC_LARGE

異常代碼: #include <iostream> #include <map> #include <pthread.h> extern "C" { #include <libavformat/avformat.h> #includ

原创 SDL2常用函數&結構分析:SDL_Texture&SDL_CreateTexture&SDL_UpdateTexture

SDL_Texture SDL_Texture是計算機圖形圖像中,如何在屏幕上顯示圖像的一個數據的抽象。中文也已翻譯爲紋理。這種概念在OpenGL中也有出現。對於SDL_Texture本身來說,它包含了顯示驅動用於顯示的特定數據結構。

原创 SDL2:第四個程序(Mac):顯示YUV格式圖片

在上一個程序SDL2:第三個程序(Mac):顯示任意圖片我們利用sdl2_image庫已經可以做到顯示任意格式的圖片了。 可我這種最終要利用SDL2做視頻工具的男人,怎麼會滿足於小小的圖片呢。 因爲FFmpeg解碼出來的視頻幀數據是以

原创 SDL2常用函數&結構分析:SDL_Event&SDL_PollEvent

SDL_Event SDL_Event是個聯合體,是SDL中所有事件處理的核心。 SDL_Event是SDL中使用的所有事件結構的並集。 只要知道了那個事件類型對應SDL_Event結構的那個成員,使用它是一個簡單的事情。 下表羅列了

原创 SDL2:第三個程序(Mac):顯示任意圖片

在上一個程序SDL2:第二個程序(Mac):顯示BMP位圖中,我們利用SDL2的公共API,在SDL窗體上加載了一個位圖(BMP)。 要加載任意格式的圖片,僅僅依靠默認API是不夠的,需要引入另外的圖片庫:sdl2_image 安裝s

原创 SDL2常用函數&結構分析:SDL_Window&SDL_CreateWindow

SDL2常用函數&結構分析:SDL_Window&SDL_CreateWindow SDL_Window SDL_Window:結構體,描述了一個窗體對象,表示的是會呈現在設備上一個窗體,所有圖像的載體。一般通過SDL_CreateW

原创 SDL2常用函數&結構分析:SDL_BlitSurface&SDL_UpdateWindowSurface

SDL_BlitSurface 函數功能:將一個surface的數據快速複製到目標surface中。 函數原型: int SDL_BlitSurface(SDL_Surface* src,