1 ================================================================================
2 Stagefright Plugins for Android
3 ================================================================================
5 1. Enhance the Android multimedia framework providing additional Plugins for
7 2. FFmpeg provides demuxers and av codecs;
8 3. SDL provides basic library: thread, mutex, and timer, but all of sdl should
10 4. NamExtractor is a extractor plugin, it would be loaded by Stagefright when
12 5. NamExtractor will load FFmpegExtractor, MplayerExtractor and VLCExtractor.
13 but only FFmpegExtractor is implemented now.
14 6. FFmpegExtractor is the reference to "ffmpeg/ffplay" to achieve.
16 ================================================================================
17 Why is named nam[NamExtractor]?
18 ================================================================================
20 Namtso, or Lake Nam, is one of the three holy lakes in Tibet Autonomous Region
21 and should not be missed by any traveler to Tibet. In Tibetan, Namtso means
22 "Heavenly Lake." It is famous for its high altitude and imposing scenery.
24 I used to travel there in 2011 Sep.
26 ================================================================================
28 ================================================================================
30 CyanogenMod 9.x (Ice Cream Sandwich)
31 http://wiki.cyanogenmod.com/wiki/Galaxy_Nexus_(GSM):_Compile_CyanogenMod_(Linux)
34 git://android.git.linaro.org/platform/external/ffmpeg.git
37 git@github.com:omxcodec/android_external_sdl.git
39 ================================================================================
41 ================================================================================
44 clone cm-9.1.0 source from CyanogenMod git:
45 repo init -u git://github.com/CyanogenMod/android.git -b cm-9.1.0
46 plz ref: http://wiki.cyanogenmod.com/wiki/Galaxy_Nexus_(GSM):_Compile_CyanogenMod_(Linux)
48 clone my sources from the omxcodec{github} git!
49 in your "android/external" folder, run:
51 git clone git@github.com:omxcodec/stagefright-plugins.git stagefright-plugins
53 git clone git@github.com:omxcodec/android_external_ffmpeg.git ffmpeg -b linaro-0.11.1
55 git clone git@github.com:omxcodec/android_external_sdl.git sdl
57 in your "android/external" folder, run:
58 cp stagefright-plugins/repo/local_manifest.xml ../.repo
59 cd .. // go to android folder
60 repo sync // sync "frameworks_base" code again!
61 // of course, you can merge my android_external_ffmpeg code instread of
62 // "repo sync" frameworks_base. once you do, so you should pay attention to the
63 // "USES_NAM" flag, it is only in the "android/frameworks/base" directory
66 add USES_NAM flag to COMMON_GLOBAL_CFLAGS in android build system
67 vi vendor/samsung/maguro/BoardConfigVendor.mk and add these lines to it
70 COMMON_GLOBAL_CFLAGS += -DUSES_NAM
74 cd android/external/ffmpeg
75 mm ffmpeg // NOT "mm", plz FIXME!
77 cd android/external/sdl
80 cd android/external/stagefright-plugins
86 adb sync // sync your android build system to your phone or pad
87 reboot // reboot your phone or pad
91 wget http://movies.apple.com/media/us/ipad/2012/tv-spots/apple-ipad-this_good-us-20120307_848x480.mov
92 wget http://movies.apple.com/media/us/ipad/2012/80ba527a-1a34-4f70-aae8-14f87ab76eea/tours/apple-ipad-feature-us-20120307_848x480.mp4
94 let us suppose your media files locate at "/sdcard/Movies/" folder. one console window, you should run:
96 and other cosole window, you should run:
97 test NamExtractor and FFmpegExtractor plugins:
98 adb shell am start -a android.intent.action.VIEW -d file:///mnt/sdcard/Movies/apple-ipad-this_good-us-20120307_848x480.mov -t video/*
99 adb shell am start -a android.intent.action.VIEW -d file:///mnt/sdcard/Movies/apple-ipad-feature-us-20120307_848x480.mp4 -t video/*
100 test SoftFFmpegVideo decoder plugin:
101 cd android/external/stagefright-plugins/tools folder, run
103 ./install // install my scripts
104 adb root && adb shell set-vdec-sw1 // let omxcode choose software decoder
105 adb shell am start -a android.intent.action.VIEW -d file:///mnt/sdcard/Movies/apple-ipad-this_good-us-20120307_848x480.mov -t video/*
106 adb shell am start -a android.intent.action.VIEW -d file:///mnt/sdcard/Movies/apple-ipad-feature-us-20120307_848x480.mp4 -t video/*
110 ================================================================================
112 ================================================================================
113 1. audio codec to be integrated
114 2. some media file do not have h263 extradata(FFmpegExtractor)
115 3. some .mov movies do not av resync when seeking
117 If you need help with the library, or just want to discuss nam related issues,
118 you can contact me: Michael Chen (omxcodec@gmail.com)