speex編譯
㈠ ffmpeg 怎麼添加libspeex庫
FFmpeg在Windows系統下的編譯過程,分四步: 如下: 1. 配置編譯環境 2. 下載FFMPEG的代碼 3. 編譯,獲取FFMPEG庫(頭文件,lib,和DLL) 4. 在VC下配置,測試 1. 配置編譯環境 1)安裝MSys 下載文件: bash-3.1-MSYS-1.0.11-snapshot.tar.bz2 m...
㈡ 類似於#include<speex/speex.h>的頭文件,vs2008在編譯時是如何查找的
以當前工程dsp為目錄基準,<../speex/speex.h> ../ 就代表上一級目錄
"./"就代表dsp本目錄. "/"就代表dsp所在的根目錄.
這個就是「#include<speex/speex.h>的頭文件,」的意思就是 存放dsp的目錄中的speex文件夾中的speex.h文件! 如果speex.h就在dsp統一個目錄下的,並沒有 在某一個文件夾就直接 <speex.h>即可。
還有<>尖括弧是用於標准頭文件,自定義的頭文件,用#include"***.h"搜索目錄更廣一點.
在預處理的addtinal header 裡面可以新增包含目錄的.
㈢ 怎麼編譯speex應用於iOS
以當前工程dsp為目錄基準, ../ 就代表上一級目錄 "./"就代表dsp本目錄. "/"就代表dsp所在的根目錄. 這個就是「#include的頭文件,」的意思就是 存放dsp的目錄中的speex文件夾中的speex.h文件! 如果speex.h就在dsp統一個目錄下的
㈣ vlc播放器是用什麼寫出來的
以下是編譯VLC源代碼時所需的庫:
Third party libraries used by VLC
You'll find a complete list on the wiki.
But, here are the most important libraries.
Audio/Video codecs
liba52 - an ATSC A/52 (aka AC3) audio decoder
libmad - an MPEG audio decoder
libmpeg2 - an MPEG1/2 video decoder
libavcodec (ffmpeg) - an extensive audio/video codec library which supports several formats like MPEG4, H263, WMV/A etc...
libogg - an Ogg bitstream parser
libvorbis - a Vorbis audio decoder
libflac - a FLAC (Free Lossless Audio Codec) audio decoder
libspeex - a Speex (Free speech codec) audio decoder
libtheora - a Theora video decoder
libfaad2 - an AAC audio decoder
libdv - a DV video decoder (deprecated in favor of libavcodec)
libxvidcore (xvid) - an ISO MPEG-4 compliant video codec (deprecated in favor of libavcodec)
libdca - A DTS Coherent Acoustics decoding library.
GUI framework libraries
wxWidgets - a cross-platform C++ GUI framework that keeps the look and feel of each platform
QT4 - a C++ Cross-Platform Rich Client Development Framework
Audio/Video output libraries
libsdl - a cross-platform multimedia library designed to provide level access to audio, and 2D video framebuffer
Miscellaneous libraries
libdvdcss - a library for accessing encrypted DVDs
libdvdnav - a library for DVD navigation
libdvdread - a library for reading DVD-Video images
libdvbpsi - a library designed for decoding and generation of MPEG TS and DVB PSI tables
libopenslp - an open-source implementation of Service Location Protocol
gettext - a set of tools that provides a framework to help applications proce multi-lingual messages
libfreetype2 - a software font engine that is designed to be small, efficient, highly customizable and portable while capable of procing high-quality output (glyph images).
fribidi - A Free Implementation of the Unicode Bidirectional Algorithm
liveMedia - C++ libraries for multimedia streaming (RTP/RTCP, RTSP, SIP)
matroska - a new, extensible open standard Audio/Video container format
If you're using those libs to compile VLC for windows with mingw-gcc 3.3.1, you can use our Win32 contribs.
如果需要更權威的回答,這里是VLC官方提供的源碼下載:
http://download.videolan.org/pub/vlc/
㈤ 為什麼用androidstudio編譯speex
方法/步驟 把eclipse的代碼工具進行打開,然後進行點擊菜單中的file》》export的選項。 進入到export的選項框中,在select的可以找到為Android的generate gradle build files的選項。 對improt instead的信息相關的確認,確認完成之後,進行點擊「next」。 選擇需要導出的項目的文件,可以進行選擇多個的項目的文件,然後進行點擊「next」的選項。 需要進行導出的文件有哪些,包含的了項目的依賴包,可以進行點擊「next」,這樣就生成了gradle相關文件 就可以使用Android studio的進行導入eclipse的文件,打開的Android studio的應用程序。進入到界面中「import Non-Android studio project」。 進入到電腦中文件,找到剛才導出的gradle的文件,直接進行雙擊選中即可。 這樣就可以直接導入到Android studio中,這樣完成代碼的遷移的工作,就可以進行使用Android studio的進行開發代碼了。
㈥ 無聊之作 對 手游十萬個為什麼 的解包分析筆記 游戲引
從神之刃開始,對這個游戲的引擎就充滿了好奇,要什麼樣的手法把一個游戲包減少到40M。雖然有些童鞋總喜歡說無非就是壓縮資源減少圖片大小毫無技術含量這等話,但我們公司是做不到的。十萬個為什麼手游版的出現,讓我想盡自己能力去分析看看。
文章出自
從網上下載十萬個為什麼的 APK 安裝包後,直接改成ZIP進行解壓。因為網上文章說神之刃 是 妙趣橫生 的自研引擎,所以直接來看Libs文件夾吧。
Libs文件夾裡面有4個不同CPU類型的子文件夾,只有 armeabi-v7a 中存在引擎相關的SO動態鏈接庫文件。
無聊之作 對 手游十萬個為什麼(神之刃) 的解包分析筆記 (游戲引
看到這五個SO文件,給我這個半吊子游戲開發者造成的迷惑來說不亞於太陽從西邊出來。
為什麼這么說?
libcheck.so libentryex.so 這兩個應該是騰訊的三方SDK所有。
libgnustl_shared.so 這個文件應該是使用了C++所以會有。
那麼游戲所有的就只有 libmqcj.so libcompress.so 這兩個動態鏈接庫了。
直覺告訴我,,這兩個動態鏈接庫不可能是游戲主要的動態鏈接庫文件。
至於SO文件的大小,Unity的 libunity.so + libmono.so 是14M,就連NDK的Sample都有47KB。難道十萬個為什麼整個游戲框架只有58+6KB?這明顯不可能的。
文章出自
進一步,反編譯APK,查看Manifest文件和Java源代碼。
上面是十萬個為什麼的Manifest文件,從中可以看出:
com.mqgame.lib.SLaunchActivity 這個是游戲的啟動Activity 。
com.mqgame.lib.SNativeActivity 這個是NativiActivity ,並且指定動態鏈接庫 mqcj ,就是上面6KB的那個文件。
來分析反編譯出來的Java源代碼。
首先來看 com.mqgame.lib.SLaunchActivity ,這個Activity 在游戲中就是 資源准備的界面。女王大人。
無聊之作 對 手游十萬個為什麼(神之刃) 的解包分析筆記 (游戲引
if (localIterator.hasNext()) { localRunningTaskInfo = (ActivityManager.RunningTaskInfo)localIterator.next(); if ((localRunningTaskInfo.topActivity.getPackageName().equals(getPackageName())) || (localRunningTaskInfo.baseActivity.getPackageName().equals(getPackageName()))) if ((localRunningTaskInfo.topActivity.getClassName().equals("com.mqgame.lib.SNativeActivity")) || (localRunningTaskInfo.baseActivity.getClassName().equals("com.mqgame.lib.SNativeActivity"))) if (localRunningTaskInfo.numRunning >= 1) { Log.d("sog_debug", "SOGActivity:Relaunch native"); localIntent2 = getIntent(); if (localIntent2 != null) { localIntent2.setClass(this, SNativeActivity.class); label194: localIntent2.setFlags(131072); startActivity(localIntent2); finish(); } } }
然後在載入任務執行完畢後,跳轉到 SNativeActivity 。
在SNativeActivity中看到有一個 preRun函數
文章出自
public boolean preRun() { int i = 1; label323: int j; do { try { LinkedList localLinkedList = new LinkedList(); localLinkedList.add(new String("gnustl_shared")); localLinkedList.add(new String("openal")); localLinkedList.add(new String("compress")); localLinkedList.add(new String("script")); localLinkedList.add(new String("iconv")); localLinkedList.add(new String("ogg")); localLinkedList.add(new String("vorbis")); localLinkedList.add(new String("vorbisfile")); localLinkedList.add(new String("curl")); localLinkedList.add(new String("autoupdater")); localLinkedList.add(new String("speex")); localLinkedList.add(new String("mqcj")); Iterator localIterator = localLinkedList.iterator(); while (true) { if (!localIterator.hasNext()) break label323; String str1 = (String)localIterator.next(); str2 = new String(SUtility.getLibPath() + File.separator + "lib" + str1 + ".so"); if (new File(str2).exists()) break; System.loadLibrary(str1); } } catch (Exception localException) { while (true) { String str2; localException.printStackTrace(); SUtility.appendLog(localException.toString()); i = 0; return i; System.load(str2); } } catch (Error localError) { localError.printStackTrace(); SUtility.appendLog(localError.toString()); return i; } VoiceManager.init(this); SUtility.bNativeEntered = true; j = Settings.System.getInt(getContentResolver(), "accelerometer_rotation", 0); } while ((Build.VERSION.SDK_INT < 9) || (j != i)); setRequestedOrientation(6); return i; }
從代碼上來理解,應該存在兩個目錄用於存放SO文件。
首先從默認的Libs目錄查找,然後從第二個Libs文件夾中尋找是不是有這個SO文件,如果有就使用第二個的SO。於是開始在SDK卡中尋找。卻沒有搜索到,看樣子並沒有解壓到SDK卡中。那就應該是解壓到了APP的默認應用文件夾了。於是去找了一個Root的手機來安裝游戲。
。。。。。。。文章出自
在玩游戲的時候正好電腦上開著Eclipse,看到了以下Log:
03-29 16:14:07.582: D/SOG(8950): Ready to show Game 03-29 16:14:07.587: D/dalvikvm(8950): Trying to load lib /data/app-lib/com.linekong.cjad.lk-1/libgnustl_shared.so 0x421565f0 03-29 16:14:07.597: D/dalvikvm(8950): Added shared lib /data/app-lib/com.linekong.cjad.lk-1/libgnustl_shared.so 0x421565f0 03-29 16:14:07.597: D/dalvikvm(8950): No JNI_OnLoad found in /data/app-lib/com.linekong.cjad.lk-1/libgnustl_shared.so 0x421565f0, skipping init 03-29 16:14:07.597: D/SOG_DEBUG(8950): Loading liberary from inner gnustl_shared 03-29 16:14:07.597: D/dalvikvm(8950): Trying to load lib /data/app-lib/com.linekong.cjad.lk-1/libcompress.so 0x421565f0 03-29 16:14:07.602: D/dalvikvm(2087): GC_CONCURRENT freed 24K, 28% free 17104K/23584K, paused 2ms+2ms, total 22ms 03-29 16:14:07.602: D/dalvikvm(2087): WAIT_FOR_CONCURRENT_GC blocked 19ms 03-29 16:14:07.607: D/dalvikvm(8950): Added shared lib /data/app-lib/com.linekong.cjad.lk-1/libcompress.so 0x421565f0 03-29 16:14:07.607: D/dalvikvm(8950): No JNI_OnLoad found in /data/app-lib/com.linekong.cjad.lk-1/libcompress.so 0x421565f0, skipping init 03-29 16:14:07.607: D/SOG_DEBUG(8950): Loading liberary from inner compress 03-29 16:14:07.607: D/dalvikvm(8950): Trying to load lib /data/data/com.linekong.cjad.lk/files/libs/libcurl.so 0x421565f0 03-29 16:14:07.607: D/dalvikvm(8950): GC_CONCURRENT freed 253K, 6% free 5156K/5480K, paused 6ms+2ms, total 17ms 03-29 16:14:07.612: D/dalvikvm(8950): Added shared lib /data/data/com.linekong.cjad.lk/files/libs/libcurl.so 0x421565f0 03-29 16:14:07.612: D/dalvikvm(8950): No JNI_OnLoad found in /data/data/com.linekong.cjad.lk/files/libs/libcurl.so 0x421565f0, skipping init 03-29 16:14:07.612: D/SOG_DEBUG(8950): Loading liberary from path:/data/data/com.linekong.cjad.lk/files/libs/libcurl.so 03-29 16:14:07.612: D/dalvikvm(8950): Trying to load lib /data/data/com.linekong.cjad.lk/files/libs/libautoupdater.so 0x421565f0 03-29 16:14:07.642: D/dalvikvm(8950): Added shared lib /data/data/com.linekong.cjad.lk/files/libs/libautoupdater.so 0x421565f0 03-29 16:14:07.642: D/dalvikvm(8950): No JNI_OnLoad found in /data/data/com.linekong.cjad.lk/files/libs/libautoupdater.so 0x421565f0, skipping init 03-29 16:14:07.642: D/SOG_DEBUG(8950): Loading liberary from path:/data/data/com.linekong.cjad.lk/files/libs/libautoupdater.so 03-29 16:14:07.677: D/libEGL(8950): loaded /system/lib/egl/libEGL_mali.so 03-29 16:14:07.677: D/libEGL(8950): loaded /system/lib/egl/libGLESv1_CM_mali.so 03-29 16:14:07.682: D/libEGL(8950): loaded /system/lib/egl/libGLESv2_mali.so 03-29 16:14:07.687: E/(8950): Device driver API match 03-29 16:14:07.687: E/(8950): Device driver API version: 401 03-29 16:14:07.687: E/(8950): User space API version: 401 03-29 16:14:07.687: E/(8950): mali: REVISION=Linux-r4p0-00rel0 BUILD_DATE=Tue Jul 8 00:03:51 CST 2014 03-29 16:14:07.687: W/linker(8950): libion.so has text relocations. This is wasting memory and is a security risk. Please fix. 03-29 16:14:07.687: V/WindowAnimator(1979): No window is displayed, unset the SET_ORIENTATION_CHANGE_COMPLETE flag 03-29 16:14:07.742: D/OpenGLRenderer(8950): Enabling debug mode 0 03-29 16:14:07.757: D/SOG(8950): Total:1090 Sub:1080 SceenX:1280 SceenY:800 dX:76 dy:43 nProcess X:160 nProcess Width:770 LocaltionShow:0 03-29 16:14:07.782: D/dalvikvm(8950): GC_FOR_ALLOC freed 64K, 7% free 5140K/5480K, paused 9ms, total 9ms 03-29 16:14:07.787: I/dalvikvm-heap(8950): Grow heap (frag case) to 6.647MB for 1638544-byte allocation 03-29 16:14:07.797: D/dalvikvm(8950): GC_FOR_ALLOC freed <1K, 5% free 6740K/7084K, paused 13ms, total 13ms 03-29 16:14:07.812: D/dalvikvm(8950): GC_CONCURRENT freed 2K, 5% free 6771K/7084K, paused 1ms+2ms, total 16ms 03-29 16:14:07.817: D/sog_debug(8950): launch service 03-29 16:14:07.817: D/SOG(8661): sog service shutdown 03-29 16:14:07.817: D/SOG(8661): sog service startuping 03-29 16:14:07.817: D/Service Loading(8661): /data/data/com.linekong.cjad.lk/files/libs/libgnustl_shared.so 03-29 16:14:07.817: D/dalvikvm(8661): Trying to load lib /data/app-lib/com.linekong.cjad.lk-1/libgnustl_shared.so 0x421512b0 03-29 16:14:07.817: D/dalvikvm(8661): Shared lib '/data/app-lib/com.linekong.cjad.lk-1/libgnustl_shared.so' already loaded in same CL 0x421512b0 03-29 16:14:07.817: D/Service Loading(8661): /data/data/com.linekong.cjad.lk/files/libs/libcompress.so 03-29 16:14:07.817: D/dalvikvm(8661): Trying to load lib /data/app-lib/com.linekong.cjad.lk-1/libcompress.so 0x421512b0 03-29 16:14:07.817: D/dalvikvm(8661): Shared lib '/data/app-lib/com.linekong.cjad.lk-1/libcompress.so' already loaded in same CL 0x421512b0 03-29 16:14:07.817: D/Service Loading(8661): /data/data/com.linekong.cjad.lk/files/libs/libscript.so 03-29 16:14:07.822: D/dalvikvm(8661): Trying to load lib /data/data/com.linekong.cjad.lk/files/libs/libscript.so 0x421512b0 03-29 16:14:07.822: D/sog_debug(8950): launch game 03-29 16:14:07.822: D/dalvikvm(8661): Shared lib '/data/data/com.linekong.cjad.lk/files/libs/libscript.so' already loaded in same CL 0x421512b0 03-29 16:14:07.822: D/Service Loading(8661): /data/data/com.linekong.cjad.lk/files/libs/libiconv.so 03-29 16:14:07.822: D/dalvikvm(8661): Trying to load lib /data/data/com.linekong.cjad.lk/files/libs/libiconv.so 0x421512b0 03-29 16:14:07.822: D/dalvikvm(8661): Shared lib '/data/data/com.linekong.cjad.lk/files/libs/libiconv.so' already loaded in same CL 0x421512b0 03-29 16:14:07.822: D/Service Loading(8661): /data/data/com.linekong.cjad.lk/files/libs/libcurl.so 03-29 16:14:07.822: D/dalvikvm(8661): Trying to load lib /data/data/com.linekong.cjad.lk/files/libs/libcurl.so 0x421512b0 03-29 16:14:07.822: D/dalvikvm(8661): Shared lib '/data/data/com.linekong.cjad.lk/files/libs/libcurl.so' already loaded in same CL 0x421512b0 03-29 16:14:07.822: D/Service Loading(8661): /data/data/com.linekong.cjad.lk/files/libs/libpush.so 03-29 16:14:07.822: D/dalvikvm(8661): Trying to load lib /data/data/com.linekong.cjad.lk/files/libs/libpush.so 0x421512b0 03-29 16:14:07.822: D/dalvikvm(8661): Shared lib '/data/data/com.linekong.cjad.lk/files/libs/libpush.so' already loaded in same CL 0x421512b0 03-29 16:14:08.417: D/dalvikvm(8950): Trying to load lib /data/app-lib/com.linekong.cjad.lk-1/libgnustl_shared.so 0x421565f0 03-29 16:14:08.417: D/dalvikvm(8950): Shared lib '/data/app-lib/com.linekong.cjad.lk-1/libgnustl_shared.so' already loaded in same CL 0x421565f0 03-29 16:14:08.417: D/dalvikvm(8950): Trying to load lib /data/data/com.linekong.cjad.lk/files/libs/libopenal.so 0x421565f0 03-29 16:14:08.422: D/dalvikvm(8950): Added shared lib /data/data/com.linekong.cjad.lk/files/libs/libopenal.so 0x421565f0 03-29 16:14:08.422: D/dalvikvm(8950): Trying to load lib /data/app-lib/com.linekong.cjad.lk-1/libcompress.so 0x421565f0 03-29 16:14:08.422: D/dalvikvm(8950): Shared lib '/data/app-lib/com.linekong.cjad.lk-1/libcompress.so' already loaded in same CL 0x421565f0 03-29 16:14:08.422: D/dalvikvm(8950): Trying to load lib /data/data/com.linekong.cjad.lk/files/libs/libscript.so 0x421565f0 03-29 16:14:08.422: D/dalvikvm(8950): Added shared lib /data/data/com.linekong.cjad.lk/files/libs/libscript.so 0x421565f0 03-29 16:14:08.422: D/dalvikvm(8950): No JNI_OnLoad found in /data/data/com.linekong.cjad.lk/files/libs/libscript.so 0x421565f0, skipping init 03-29 16:14:08.422: D/dalvikvm(8950): Trying to load lib /data/data/com.linekong.cjad.lk/files/libs/libiconv.so 0x421565f0 03-29 16:14:08.422: D/dalvikvm(8950): Added shared lib /data/data/com.linekong.cjad.lk/files/libs/libiconv.so 0x421565f0 03-29 16:14:08.422: D/dalvikvm(8950): No JNI_OnLoad found in /data/data/com.linekong.cjad.lk/files/libs/libiconv.so 0x421565f0, skipping init 03-29 16:14:08.422: D/dalvikvm(8950): Trying to load lib /data/data/com.linekong.cjad.lk/files/libs/libogg.so 0x421565f0 03-29 16:14:08.427: D/dalvikvm(8950): Added shared lib /data/data/com.linekong.cjad.lk/files/libs/libogg.so 0x421565f0 03-29 16:14:08.427: D/dalvikvm(8950): No JNI_OnLoad found in /data/data/com.linekong.cjad.lk/files/libs/libogg.so 0x421565f0, skipping init 03-29 16:14:08.427: D/dalvikvm(8950): Trying to load lib /data/data/com.linekong.cjad.lk/files/libs/libvorbis.so 0x421565f0 03-29 16:14:08.427: D/dalvikvm(8950): Added shared lib /data/data/com.linekong.cjad.lk/files/libs/libvorbis.so 0x421565f0 03-29 16:14:08.427: D/dalvikvm(8950): No JNI_OnLoad found in /data/data/com.linekong.cjad.lk/files/libs/libvorbis.so 0x421565f0, skipping init 03-29 16:14:08.427: D/dalvikvm(8950): Trying to load lib /data/data/com.linekong.cjad.lk/files/libs/libvorbisfile.so 0x421565f0 03-29 16:14:08.427: D/dalvikvm(8950): Added shared lib /data/data/com.linekong.cjad.lk/files/libs/libvorbisfile.so 0x421565f0 03-29 16:14:08.427: D/dalvikvm(8950): No JNI_OnLoad found in /data/data/com.linekong.cjad.lk/files/libs/libvorbisfile.so 0x421565f0, skipping init 03-29 16:14:08.427: D/dalvikvm(8950): Trying to load lib /data/data/com.linekong.cjad.lk/files/libs/libcurl.so 0x421565f0 03-29 16:14:08.427: D/dalvikvm(8950): Shared lib '/data/data/com.linekong.cjad.lk/files/libs/libcurl.so' already loaded in same CL 0x421565f0 03-29 16:14:08.427: D/dalvikvm(8950): Trying to load lib /data/data/com.linekong.cjad.lk/files/libs/libautoupdater.so 0x421565f0 03-29 16:14:08.427: D/dalvikvm(8950): Shared lib '/data/data/com.linekong.cjad.lk/files/libs/libautoupdater.so' already loaded in same CL 0x421565f0 03-29 16:14:08.427: D/dalvikvm(8950): Trying to load lib /data/data/com.linekong.cjad.lk/files/libs/libspeex.so 0x421565f0 03-29 16:14:08.432: D/dalvikvm(8950): Added shared lib /data/data/com.linekong.cjad.lk/files/libs/libspeex.so 0x421565f0 03-29 16:14:08.432: D/dalvikvm(8950): No JNI_OnLoad found in /data/data/com.linekong.cjad.lk/files/libs/libspeex.so 0x421565f0, skipping init 03-29 16:14:08.432: D/dalvikvm(8950): Trying to load lib /data/data/com.linekong.cjad.lk/files/libs/libmqcj.so 0x421565f0 03-29 16:14:08.502: D/dalvikvm(8950): Added shared lib /data/data/com.linekong.cjad.lk/files/libs/libmqcj.so 0x421565f0 03-29 16:14:08.502: W/Looper(8950): Looper already prepared for this thread with a different value for the ALOOPER_PREPARE_ALLOW_NON_CALLBACKS option. 03-29 16:14:08.507: V/VoiceManager(8950): VoiceManager Init Finished! 03-29 16:14:08.712: I/MemTotal: 1723840 kB MemFree: 357384 kB(8950) 03-29 16:14:08.712: I/MemTotal: 1723840 kB MemFree: 357384 kB(8950): MemTotal: 03-29 16:14:08.712: I/MemTotal: 1723840 kB MemFree: 357384 kB(8950): 1723840 03-29 16:14:08.712: I/MemTotal: 1723840 kB MemFree: 357384 kB(8950): kB 03-29 16:14:08.712: I/MemTotal: 1723840 kB MemFree: 357384 kB(8950): MemFree: 03-29 16:14:08.712: I/MemTotal: 1723840 kB MemFree: 357384 kB(8950): 357384 03-29 16:14:08.712: I/MemTotal: 1723840 kB MemFree: 357384 kB(8950): kB 文章出自
頓時一切都明了了。
游戲分別從以下兩個目錄載入了SO文件
1、工程中的Libs文件夾,就是 /data/app-lib/,使用system.loadLibrary()載入
2、默認應用文件夾 /data/data/com.linekong.cjad.lk/files 中的 libs/* ,使用system.load() 載入
文章出自
在Root過的手機上安裝ES文件管理器後,在/data/data/com.linekong.cjad.lk/files/libs中找到了游戲所使用的SO,