Time of Update: 2018-12-05
各種各樣的編解碼在各種領域得到廣泛的應用,下面就把各種codec的壓縮率進行一下比較。現主要有的speech codec 有: G.711, G.723, G.726 , G.729, ILBC, QCELP, EVRC, AMR, SMV主要的audio codec 有: real audio, AAC, AC3, MP3, WMA, SBC等 各種編解碼都有其應用的重點領域。本文主要對speech codec相關指標進行總結: ITU 推出G.7XX系列的speech
Time of Update: 2018-12-05
SDRAMH57V2562GTR-75C 256M(16*16)K4S561632N-LC60 256M(16*16) DDRK4H561638N-LCCC 256Mb<16M*6> H5DU2562GTR-E3C 256Mb<16M*6> K4H511638J-LCCC 512Mb<32M*16>HY5DU121622DTP-D43 512Mb<32M*16> H5DU5162ETR-E3C 512Mb
Time of Update: 2018-12-05
轉自作者:黃雲坤出處:http://www.cnblogs.com/htynkn/後天就要回老家了,除了團團年估計也沒有其他好玩的,就琢磨下點經典文章帶回去看看。Google一番找到了老趙很早以前的文章:http://www.cnblogs.com/JeffreyZhao/archive/2009/03/02/1401259.html說來慚愧,裡面的十餘篇文章我只看過一篇,正好就補補知識。原文給出的串連多是線上版,我找了部分的pdf給大家分享一下。合集下載:所有程式員都應該至少讀上兩遍的十篇
Time of Update: 2018-12-05
http://blog.csdn.net/nainai007/article/details/7555746最近一段時間安裝新應用時,很多應用第一次啟動,都是通過幾個頁面的切換來展示一些內容,但是第二次啟動應用的時候卻不出現了,樣子如所以我個人感覺這個效果蠻好的,於是找了一下資料,發現實現這個功能也不是挺難,主要是用到ViewPager這個東西,要使用ViewPager,需要引入附加元件封裝android-support-v4.jar,讀者可以再sdk中找到,好了廢話不多說了,貼代碼了:首先是布
Time of Update: 2018-12-05
1. 相關資料結構#define EPOLLIN 0x00000001#define EPOLLPRI 0x00000002#define EPOLLOUT 0x00000004#define EPOLLERR 0x00000008#define EPOLLHUP 0x00000010#define EPOLLRDNORM 0x00000040#define EPOLLRDBAND 0x000
Time of Update: 2018-12-05
1. Android4.0.1中預設定義了4個真正的Player,具體情況如下:static sp<MediaPlayerBase> createPlayer(player_type playerType, void* cookie, notify_callback_f notifyFunc){ sp<MediaPlayerBase> p; switch (playerType) { case SONIVOX_PLAYER:
Time of Update: 2018-12-05
1. 基本資料結構和使用樣本input_event資料結構如下:struct input_event {struct timeval time;__u16 type;__u16 code;__s32 value;};input_dev資料結構如下:struct input_dev {const char *name;const char *phys;const char *uniq;struct input_id id;unsigned long
Time of Update: 2018-12-05
1. 簡介 對於mmap在使用者態通過函數以下函數進行調用:void* mmap( void* addr, size_t size, int prot, int flags, int fd, long offset ) 然後進入系統調用。 2. Kernel mmap實現1)然後進入系統調用,其系統調用號為: kernel/arch/arm/include/asm/unistd.h#define
Time of Update: 2018-12-05
轉自:http://blog.chinaunix.net/space.php?uid=10995602&do=blog&id=2918720 到目前為止,我們都只著重在video處理的部分,對於audio卻隻字未提。這篇文章將會開始audio處理的流程。Stagefright中關於audio的部分是交由AudioPlayer來處理,它是在AwesomePlayer::play_l中被建立的。(1)
Time of Update: 2018-12-05
既然windos都升級了,也體驗一下ubuntu下面的unity吧。這還是我第一次在同一個硬碟裡面 安裝ubuntu和windows…… 夠菜的吧本人接觸ubuntu的時間並不長 水平也非常非常菜 所以 寫的這一篇東西 只當是個手記 。不小心看到的同學 請不要當作教程來看。我是先在磁碟的末尾留下了一個40G的未使用空間還是需要一個叫做easybcd的軟體 網上有下載 各個本本區別不是很大 然後添加一個 新的啟動引導之後呢 就在config檔案裡面寫入title Install Ubuntu 11
Time of Update: 2018-12-05
轉自:http://blog.chinaunix.net/space.php?uid=10995602&do=blog&id=2918722Stagefright的編解碼功能是利用OpenMAX架構,而且用的還是OpenCORE之OMX的實作,我們來看一下Stagefright和OMX是如何運作的。(1) OMX_InitOMXClient mClient;AwesomePlayer::AwesomePlayer(){ mClient.connect();}status_t
Time of Update: 2018-12-05
1. OpenGL ES 2.0可程式化管道 黃色部分(Vertex Shader和Fragment Shader)為此管道的可程式化部分。整個管道包含以下兩個規範: 1) OpenGL ES 2.0 API specification 2) OpenGL ES Shading Language Specification (OpenGL ES SL) 詳細流程圖如下: 此流程把三維資料變換為可以顯示的二維資料。2.
Time of Update: 2018-12-05
1. EGL OpenGL ES命令需要一個rendering context和一個drawing surface。 Rendering Context: 儲存當前的OpenGL ES狀態。 Drawing Surface: 是原語(primitive)畫圖的Surface。它指定了渲染的buffer類型,如:color buffer,depth buffer和stencil buffer;同時它也指定了每個需要的buffer的位元深度(bit depth)。
Time of Update: 2018-12-05
轉自:http://blog.chinaunix.net/space.php?uid=10995602&do=blog&id=2918721在《Stagefright (1) – Video Playback的流程》中,我們並沒有詳述Stagefright是如何根據影片檔的類型來選擇適合的video decoder,現在,就讓我們來看一看。(1) Video
Time of Update: 2018-12-05
轉自:http://blog.chinaunix.net/space.php?uid=10995602&do=blog&id=2918725講完了audio和video的處理流程,接下來要看的是audio和video同步化(synchronization)的問題。OpenCORE的做法是設置一個主clock,而audio和video就分別以此作為輸出的依據。而在Stagefright中,audio的輸出是透過callback函式來驅動,video則根據audio的timestam
Time of Update: 2018-12-05
1. 簡介手機感應器介紹手機感應器檢測安卓手機上所有可用感應器,並通過映像生動的展示它們是如何運作的。手機感應器也能夠識別該手機硬體支援哪些感應器,並提供對我們日常生活起著重要作用的感測工具。手機感應器只能檢測到變化。如果屬性沒有變化,它顯示的溫度值、距離值、光和壓力的值可能不準確。2. 手機中常用的感應器在Android2.3 gingerbread系統中,google提供了11種感應器供應用程式層使用。#define SENSOR_TYPE_ACCELEROMETER 1
Time of Update: 2018-12-05
前面已經講過,高精度timer是通過hrtimer來實現的,hrtimer通過可程式化定時器來現,在等待時,不佔用CPU。 在使用者態,只要我們調用usleep,則線程在kernel態執行時,則使用hrtimer進行不佔CPU的等待。 在Kernel中如何使用的呢? 先看看eventpoll.c中的ep_poll函數: static int ep_poll(struct eventpoll *ep, struct epoll_event __user
Time of Update: 2018-12-05
1. 記憶體配置函數相關代碼如下:#define alloc_pages(gfp_mask, order) alloc_pages_node(numa_node_id(), gfp_mask, order)#define alloc_page_vma(gfp_mask, vma, addr) alloc_pages(gfp_mask, 0)#define alloc_page(gfp_mask) alloc_pages(gfp_mask, 0)#define __get_free_page(
Time of Update: 2018-12-05
轉自:http://blog.chinaunix.net/space.php?uid=10995602&do=blog&id=2918723這篇文章將介紹Stagefright中是如何和OMX video decoder傳遞buffer。(1) OMXCodec會在一開始的時候透過read函式來傳送未解碼的data給decoder,並且要求decoder將解碼後的data傳回來status_t OMXCodec::read(...){ if
Time of Update: 2018-12-05
轉自:http://blog.chinaunix.net/space.php?uid=10995602&do=blog&id=2918724AwesomePlayer::onVideoEvent除了透過OMXCodec::read取得解碼後的資料外,還必須將這些資料(mVideoBuffer)傳給video renderer,以便畫到螢幕上去。(1) 要將mVideoBuffer中的資料畫出來之前,必須先建立mVideoRenderervoid