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.
15 7. libstagefright_soft_ffmpegvdec plugin is video decoder
16 8. libstagefright_soft_ffmpegadec plugin is audio decoder[TODO]
18 ================================================================================
19 Why is named nam[NamExtractor]?
20 ================================================================================
22 Namtso, or Lake Nam, is one of the three holy lakes in Tibet Autonomous Region
23 and should not be missed by any traveler to Tibet. In Tibetan, Namtso means
24 "Heavenly Lake." It is famous for its high altitude and imposing scenery.
26 I used to travel there in 2011 Sep.
28 ================================================================================
30 ================================================================================
32 CyanogenMod 9.x (Ice Cream Sandwich)
33 http://wiki.cyanogenmod.com/wiki/Galaxy_Nexus_(GSM):_Compile_CyanogenMod_(Linux)
36 git://android.git.linaro.org/platform/external/ffmpeg.git
39 git@github.com:omxcodec/android_external_sdl.git
41 ================================================================================
43 ================================================================================
46 clone cm-9.1.0 source from CyanogenMod git:
47 repo init -u git://github.com/CyanogenMod/android.git -b cm-9.1.0
48 plz ref: http://wiki.cyanogenmod.com/wiki/Galaxy_Nexus_(GSM):_Compile_CyanogenMod_(Linux)
50 clone my sources from the omxcodec{github} git!
51 in your "android/external" folder, run:
53 git clone git@github.com:omxcodec/stagefright-plugins.git stagefright-plugins
55 git clone git@github.com:omxcodec/android_external_ffmpeg.git ffmpeg -b linaro-0.11.1
57 git clone git@github.com:omxcodec/android_external_sdl.git sdl
59 in your "android/external" folder, run:
60 cp stagefright-plugins/repo/local_manifest.xml ../.repo
61 cd .. // go to android folder
62 repo sync // sync "frameworks_base" code again!
64 "repo sync" sync "frameworks_base" code again! of course, you can merge my
65 android_external_ffmpeg code instread of "repo sync" frameworks_base. once you do,
66 so you should pay attention to the "USES_NAM" flag, it is only in the
67 "android/frameworks/base" directory
70 add USES_NAM flag to COMMON_GLOBAL_CFLAGS in android build system
71 vi vendor/samsung/maguro/BoardConfigVendor.mk and add these lines to it
74 COMMON_GLOBAL_CFLAGS += -DUSES_NAM
78 cd android/external/ffmpeg
79 mm ffmpeg // NOT "mm", plz FIXME!
81 cd android/external/sdl
84 cd android/external/stagefright-plugins
90 adb sync // sync your android build system to your phone or pad
91 reboot // reboot your phone or pad
95 wget http://movies.apple.com/media/us/ipad/2012/tv-spots/apple-ipad-this_good-us-20120307_848x480.mov
96 wget http://movies.apple.com/media/us/ipad/2012/80ba527a-1a34-4f70-aae8-14f87ab76eea/tours/apple-ipad-feature-us-20120307_848x480.mp4
98 let us suppose your media files locate at "/sdcard/Movies/" folder.
99 one console window, you should run:
101 and other cosole window, you should run:
102 test NamExtractor and FFmpegExtractor plugins:
103 adb shell am start -a android.intent.action.VIEW -d file:///mnt/sdcard/Movies/apple-ipad-this_good-us-20120307_848x480.mov -t video/*
104 adb shell am start -a android.intent.action.VIEW -d file:///mnt/sdcard/Movies/apple-ipad-feature-us-20120307_848x480.mp4 -t video/*
105 test SoftFFmpegVideo decoder plugin:
106 cd android/external/stagefright-plugins/tools folder, run:
108 ./install // install my scripts
109 adb root && adb shell set-vdec-sw1 // let omxcode choose software decoder
110 adb shell am start -a android.intent.action.VIEW -d file:///mnt/sdcard/Movies/apple-ipad-this_good-us-20120307_848x480.mov -t video/*
111 adb shell am start -a android.intent.action.VIEW -d file:///mnt/sdcard/Movies/apple-ipad-feature-us-20120307_848x480.mp4 -t video/*
115 ================================================================================
117 ================================================================================
118 1. audio codec to be integrated
119 2. some media file do not have h263 extradata(FFmpegExtractor)
120 3. some .mov movies do not av resync when seeking
122 If you need help with the library, or just want to discuss nam related issues,
123 you can contact me: Michael Chen (omxcodec@gmail.com)