GNOME Bugzilla – Bug 747969
Using cerbero to cross-compile to build gstreamer-1.0-sdk failed for android
Last modified: 2015-04-20 07:57:35 UTC
I want to build gstreamer-1.0-sdk for android using cerbero. I using the command as below: 1. git clone git://anongit.freedesktop.org/gstreamer-sdk/cerbero [Execute OK.] 2. cerbero cerbero/config/cross-android.cbc bootstrap [Execute OK.] 3. cerbero cerbero/config/cross-android.cbc package gstreamer-1.0-sdk [faild. ] The log as below: qys@his-Lenovo:~/cerbero/cerbero$ cerbero -c config/cross-android.cbc package gstreamer-1.0-sdk WARNING: Using default configuration because /home/qys/.cerbero/cerbero.cbc is missing WARNING: Error loading recipe in file /home/qys/cerbero/cerbero/recipes/libmad.recipe class Architecture has no attribute 'is_arm' Traceback (most recent call last):
+ Trace 234978
res = commands.run(command, self.config, self.args)
return _commands[command].run(config, args)
self._build_deps(config, p)
cookbook=self.store.cookbook)
oven.start_cooking()
recipes = self.cookbook.list_recipe_deps(recipe)
return self._find_deps(recipe, {}, [])
% (recipe.name, recipe_name)))
***** Error running 'package' command: Fatal Error: Recipe gst-plugins-ugly-1.0 has a unknown dependency libmad usage: cerbero-uninstalled [-h] [-c CONFIG] {add-recipe,tag,genxcconfig,genlibfiles,check,list-packages,build,add-package,genvsprops,shell,run,cleanone,packageinfo,buildone,wipe,debug-packages,package,bootstrap,list,checkpackage,deps,gensdkshell,fetch-package,fetch} I am a learner for gstreamer, how could I do? Thank you very much.
git://anongit.freedesktop.org/gstreamer-sdk/cerbero is from a different project and has nothing to do with the GStreamer project (yes, confusing I know). Same goes for all of the stuff from gstreamer.com :) Try using git://anongit.freedesktop.org/gstreamer/cerbero And instead of "package gstreamer-1.0-sdk" you run "package gstreamer-1.0".
OK ,thanks very much. I have build gstreamer successfully using the cerbero url git://anongit.freedesktop.org/gstreamer/cerbero. And after I executed "package gstreamer-1.0", I could sucessfully creat package "gstreamer-1.0-android-arm-1.5.0-runtime.tar.bz2", "gstreamer-1.0-android-arm-1.5.0-runtime.zip", "gstreamer-1.0-android-arm-1.5.0.tar.bz2" and "gstreamer-1.0-android-arm-1.5.0.zip". What the differences between "gstreamer-1.0-android-arm-1.5.0-runtime", "gstreamer-1.0-android-arm-1.5.0" and libraries in directory "cerbero/dist/android_arm" ? I think gstreamer-1.0-android-arm-1.5.0-runtime is dynamic libraries, and gstreamer-1.0-android-arm-1.5.0 is static libraries, is it right? If I want to develop gstreamer for android, which could I use?
Don't use the -runtime one, it's generally not useful for application development. The difference is exactly what you mention :)
If I modified some plugin(eg:gst-libav-1.0) source code, or I need to add some new plugin.How could I creat the updated gstreamer-1.0-android-arm-1.5.0 package ? I think have 2 step. 1. build or buildone modified plugin. 2. package gstreamer-1.0. Is it the right step? Thank you.