Android port for OMAP3 with GStreamer integration

Hi All

We are pleased to announce the release of Android build integrated with
GStreamer for OMAP3 platforms (BeagleBoard & OMAP3EVM). Current Embinux
kernel for this Android port is derived from linux-omap-2.6.29.
Source code can be found at
http://labs.embinux.org/git/

Current release of Android port for OMAP3 has following features/support
  * Support for BeagleBoard
  * Support for OMAP3EVM platform
  * Android Toolchain's replacement with Embinux Toolchain (GCC-4.4.0,
Binutils-2.19.1, Cortex-A8)
  * GStreamer (0.10) integration

The release notes, download and build instructions are available from
http://labs.embinux.org/index.php/Android_For_OMAP3_with_Gstreamer_Integration

Hi All,

I downloaded the android pacakge from
http://labs.embinux.org/index.php/Android_For_OMAP3_with_Gstreamer_Integration,
then build the android rfs, copied onto sdcard.
I have connected a Delll keyboard and a logitech mouse through belkin
hub to beagle board.
Embinux Android gets booted. .But

1. Only the "windows right" button for unlock and "end" for locking
works when using the keyboard. Directions arrows or any other button
doesnt work at all. The focus on the android skin is always on only
one place - "android menu arrow <<". Got the following error (using
logcat) continuously for the other keys.

Hi All,

I downloaded the android package and followed the build instructions
in
http://labs.embinux.org/index.php/Android_For_OMAP3_with_Gstreamer_Integration

After renaming the ~/Android_build/out/target/product/omap3evm/kernel
to uImage
and placing it in the first SD partition I am able to boot Android on
my b7 beagleboard
with the following issues:

1) While the logitch mouse is detected over the usb hub, it doesn't
seem to
have an affect. The Keyboard is also detected over the usb hub.

2) The first UI screen presented indicates: "Screen locked" Press Menu
to unlock.
Pressing <Alt><right arrow> displays the boot Android_ text, but does
not unlock.
The only keys that seem to do anything are <Alt><right arrow> and
<Alt><left arrow>

3) The upper menu bar displayed "Removed SD card" briefly and then
display an SD card
icon with exclamation sign

What should I expect to see during initial boot? Any suggestions on
what the source of
these boot problems are?

Best Regards,
Steve

Please find the reply inlined,

Hi All,

I downloaded the android package and followed the build instructions
in

http://labs.embinux.org/index.php/Android_For_OMAP3_with_Gstreamer_Integration

After renaming the ~/Android_build/out/target/product/omap3evm/kernel
to uImage

Velu: the image has to be built for beagle and copied from the folder ~/Android_build/out/target/product/beagle/kernel

and placing it in the first SD partition I am able to boot Android on
my b7 beagleboard
with the following issues:

  1. While the logitch mouse is detected over the usb hub, it doesn’t
    seem to
    have an affect. The Keyboard is also detected over the usb hub.

  2. The first UI screen presented indicates: “Screen locked” Press Menu
    to unlock.
    Pressing displays the boot Android_ text, but does
    not unlock.
    The only keys that seem to do anything are and

Velu: Right window has to be pressed and not right arrow to unlock.

  1. The upper menu bar displayed “Removed SD card” briefly and then
    display an SD card
    icon with exclamation sign

What should I expect to see during initial boot? Any suggestions on
what the source of
these boot problems are?

Best Regards,
Steve

Thanks Shanmugavel,

Able to right window and left mouse click as well. Also reproduced the
assertions coming from general keyboard entry. Not able to launch any
applications via user interface.

I have not explicity installed the embinux toolchain as per
http://labs.embinux.org/index.php/Toolchain_For_Android. Do you know
if that is required?

Also, when I issue gst-inspect-0.10, I get the following:

# gst-
inspect-0.10
staticelements: bin: Generic
bin
staticelements: pipeline: Pipeline
object

Total count: 1 plugin, 2 features

I thought this build should have the following gstreamer plugins?:

    * gst-plugins-bad
    * gst-plugins-base
    * gst-plugins-good
    * gst-plugins-ugly
    * gst-ffmpeg
    * gst-opemmax

Best Regards,
Steve

Steve,

ssocco wrote:

Thanks Shanmugavel,

Able to right window and left mouse click as well. Also reproduced the
assertions coming from general keyboard entry. Not able to launch any
applications via user interface.

I have not explicity installed the embinux toolchain as per
http://labs.embinux.org/index.php/Toolchain_For_Android. Do you know
if that is required?

Embinux Toolchain will be a part of Android build if you are syncing
from following manifest file.

$repo init -u git://labs.embinux.org/repo/android/platform/omap3manifest.git

Also, when I issue gst-inspect-0.10, I get the following:

# gst-
inspect-0.10
staticelements: bin: Generic
bin
staticelements: pipeline: Pipeline
object

Total count: 1 plugin, 2 features

I thought this build should have the following gstreamer plugins?:

    * gst-plugins-bad
    * gst-plugins-base
    * gst-plugins-good
    * gst-plugins-ugly
    * gst-ffmpeg
    * gst-opemmax
  

Did you missed this step ?

"Copy gst.conf from ~Android_build/external/gst-plugins-android/player
to first partition of sdcard"

from following section ?

Best Regards,
Steve

Regards,

Hi Rupesh,

I did git from the git://labs.embinux.org/repo/android/platform/omap3manifest.git
repository so I must have the embinux tools.

I did not copy the gst.conf ... my mistake. After copying gst.conf,
loading the Video.apk package, I issued the following commands:

$mount -t vfat /dev/block/mmcblk0p1 /sdcard
$setprop EXTERNAL_STORAGE_STATE mounted
$am broadcast -a android.intent.action.MEDIA_MOUNTED --ez read-only
false -d file:///sdcard
* Play Video from User Interface

I see the Video player in the applications set, but I cannot figure
out how to key over to select anything. They keyboard is unresponsive
other than right window and Enter (I get assertions similar to one
earlier in this post). Should I be able to tab or arrow key over to
select an application, or is this something that is currently being
work on?

Thanks for your efforts to date on this port!

Regards,
Steve

Hi Rupesh,

I did git from the git://labs.embinux.org/repo/android/platform/omap3manifest.git
repository so I must have the embinux tools.

I did not copy the gst.conf ... my mistake. After copying gst.conf,
loading the Video.apk package, I issued the following commands:

$mount -t vfat /dev/block/mmcblk0p1 /sdcard
$setprop EXTERNAL_STORAGE_STATE mounted
$am broadcast -a android.intent.action.MEDIA_MOUNTED --ez read-only
false -d file:///sdcard
* Play Video from User Interface

I see the Video player in the applications set, but I cannot figure
out how to key over to select anything. They keyboard is unresponsive
other than right window and Enter (I get assertions similar to one
earlier in this post). Should I be able to tab or arrow key over to
select an application, or is this something that is currently being
work on?

Thanks for your efforts to date on this port!

Regards,
Steve

Hi Rupesh,

I did git from the git://labs.embinux.org/repo/android/platform/omap3manifest.git
repository so I must have the embinux tools.

I did not copy the gst.conf ... my mistake. After copying gst.conf,
loading the Video.apk package, I issued the following commands:

$mount -t vfat /dev/block/mmcblk0p1 /sdcard
$setprop EXTERNAL_STORAGE_STATE mounted
$am broadcast -a android.intent.action.MEDIA_MOUNTED --ez read-only
false -d file:///sdcard
* Play Video from User Interface

I see the Video player in the applications set, but I cannot figure
out how to key over to select anything. They keyboard is unresponsive
other than right window and Enter (I get assertions similar to one
earlier in this post). Should I be able to tab or arrow key over to
select an application, or is this something that is currently being
work on?

Thanks for your efforts to date on this port!

Regards,
Steve

Hi Rupesh,

I did git from the git://labs.embinux.org/repo/android/platform/omap3manifest.git
repository so I must have the embinux tools.

I did not copy the gst.conf ... my mistake. After copying gst.conf,
loading the Video.apk package, I issued the following commands:

$mount -t vfat /dev/block/mmcblk0p1 /sdcard
$setprop EXTERNAL_STORAGE_STATE mounted
$am broadcast -a android.intent.action.MEDIA_MOUNTED --ez read-only
false -d file:///sdcard
* Play Video from User Interface

I see the Video player in the applications set, but I cannot figure
out how to key over to select anything. They keyboard is unresponsive
other than right window and Enter (I get assertions similar to one
earlier in this post). Should I be able to tab or arrow key over to
select an application, or is this something that is currently being
work on?

Thanks for your efforts to date on this port!

Regards,
Steve

I also had the similar issue “keyboard is unresponsive
other than right window and Enter”. Corrected by giving read-write permissions for the whole file system instead of only data and system.

@Rupesh : Please check this at ur end and correct me if i am wrong.

Thanks and regards,
Velu

Hi Velu,

Yes, I saw this discussed at
http://groups.google.com/group/android-porting/browse_thread/thread/65f0b3e0c7607305

This thread only opened access for keymap and keyboard files though.

Regards,
Steve

Hi All,

Does anyone have insight or links to information on how to control the
size of the surfaceflingersink size when issuing gstreamer launches.
The following pipeline construction works except that the video is
clipped on the right hand side. Are there surfaceflingersink position
controls as well?

gst-launch-0.10 filesrc location=mpeg4_aac.mp4 ! qtdemux name=demux
demux. ! ffdec_mpeg4 ! ffmpegcolorspace ! surfaceflingersink

I have also tried the UI VideoPlayer apk that is build into the
filesystem, but that always scales the video down in size and presents
the video rotated by 90deg (by design, the application looks to have
limits in the size of the media it can display).

Regards,
Steve

Try doing a video resize yourself in the pipeline. In the videoplayer app, the video is resized by the surfaceflinger internally while playing video [since it knows it is being used for video playback]. The layer buffer recieved by surface flinger is checked if it exceeds or if it is smaller than the display surface and then resized. It is implemented internal surfaceflinger. look into the code of surfaceflinger.

While playing through command prompt it just request for a surface . surfaceflinger has no idea why it is being used.

Hello All,

I wanted to ask if flash support is integrated with the android build
for the beagleboard ?
Is it with SWFDEC/ Gnash or ?

Thanks !

Hi,

u need to port flvdemux plugin in gst-plugings-good and enable ffdec_flv decoder in ffmpeg.

Thanks and Regards,
HarishKumar.V

Hi All,

Anyone having problems building the embinux repository synced on
07/10? Looks like there might be some audio work going on ...
DECLARE_TLV_DB_SCALE is missing (<sound/tlv.h> not present)? That
would be great if audio is being looked at.

I think the surface flinger max output size can be increased my
modifying GPUHardware::GPU_RESERVED_SIZE in GPUHardware.cpp and
surfaceflinger_wrap.cpp ... modify the limits:

int width = (videodev->width) > 320 ? 320 : videodev->width;
int height = (videodev->height) > 320 ? 320 : videodev->height;

Will test once I can get build working.

Regards,
Steve

Yes, We are trying to make audio work. Please clean & recompile Android build if you have synced it recently.
Currently we can play .wav file through ALSA.

$alsa_aplay audio.wav

Community contributions and testing are welcome.

Regards,
Rupesh Gujare
ssocco wrote:

Hi all,
I also face a similar issue. I really don,t know how to resolve -
1. My issue is mouse and keyboard are detected by unresponsive.
2.However CTL+ALT+DEL works and restarts the boards and ALT + right
arrow is able to show me the ANDROID_ text thats all.
3.I am not able to unlock using right window, infact none of the keys
are working
4.I use 5 V/4A power supply to power up the board, than connect the
powered hub which is inturn connected to KB and mouse.
5.I tried following solutions already -
a)Giving 777 permissions to entire file system.
b)My first partition only contains the uImage and the gst.conf. I dont
have u-boot.bin and MLO in my first partition
c) I am typing following commands as well:
$mount -t vfat /dev/block/mmcblk0p1 /sdcard
$setprop EXTERNAL_STORAGE_STATE mounted
$am broadcast -a android.intent.action.MEDIA_MOUNTED --ez read-only
false -d file:///sdcard

6.If I need MLO and u-boot.bin as well, then let me know the right
link)
I am keeping a folder (which contains two h264 video MP4 files) in the
first partition

Please help!!!!

Regards,
Sanjeev Kumar Verma

Thanks Rupesh,

Was able to resync and build.

I'm not sure that this is a question for this thread, but should I be
able to scale the gstreamer decoded video? I have been experimenting
with SurfaceHolder.setFixedSize() but it does not seem to have an
affect.

Any pointers on how to scale video would be welcome. I currently am
using a MediaPlayer class and have set its .display() the a Surface
Holder object.

Regards,
Steve