Reloc OMXGLMediaPlayer jogamp.opengl.omx -> jogamp.opengl.util.av.impl
AndroidWindow: Fix regression (commit c9066a6df7a0b8612a8a0b3e5c8977268a1257e8), no destruction on surface size change.
JOGL/Native: Add JNIEnv functions
StringBuffer -> StringBuilder (Local objects, no concurrency) ; Impacts: Capabilities/GLContext API 'toString(StringBuilder)'
TexSequence/Movie Demo's Shader: Remove profile specific 'header' files, prepare for shader code injection.
API Change ShaderCode/ShaderUtil: Enable optional mutable shader source / generalize shader source storage type to CharSequence[]

Benefits:
  - Allows code injection and general shader source editing (before compilation)

  - Uses mutable StringBuilder only if editing is intended, hence reduces memory footprint
    and String conversion at compilation in such case.

- ShaderCode.create(..) factory methods add nw attribute 'mutableStringBuilder'
  if true method returns a mutable StringBuilder instance
  which can be edited later on at the costs of a String conversion when passing to
  'glShaderSource(int, int, String[], IntBuffer)'.
  If <code>false</code> method returns an immutable <code>String</code> instance,
  which can be passed to {@link GL2ES2#glShaderSource(int, int, String[], IntBuffer)}
  at no additional costs.

- New 'edit' methods in ShaderCode: '
   - int insertShaderSource(int shaderIdx, String tag, int fromIndex, CharSequence data);
   - int insertShaderSource(int shaderIdx, int position, CharSequence data);
Add native tests for libav/ffmpeg and gst
Adding libav (ffmpeg) header file, allowing upcoming dynamic linked GLMediaPlayer impl. to be compiled (LGPL terms)

Libav header:
  libavutil   51.22.1
  libavformat 53.21.0
  libavcodec  53.35.0

.. just to ease our compile time setup.
ShaderCode: Adding 'replaceInShaderSource  a -> b utility function
NEWT WindowImpl: Ensure screenChange suspense animation, even w/o having the notify method being called.

This happens on android, where we just react on an already happened screen rotate.
W/o animation suspend GL rendering could be disturbed or the thread could starve.
NEWT/Android: Add (soft) keyboard input. Complete the Android -> NEWT key translation. Minor fixes for mouse as well.

- AndroidNewtEventFactory
  - Android -> NEWT KeyCodes, leave out control keys like HOME, BACK, .. TBD ..
  - We don't consume the key event, in case we cannot map it,
    so the Android OS has a chance to handle the control keys.
  - Key-Release generates a Key Typed event.
  - Key/Mouse translate Android time-base (upTime) to Unix.

- AndroidWindow
  - set our onKeyListener, using above tranlator
  - setFocusable(true) and setFocusableInTouchMode(true) on our SurfaceView,
    otherwise no key event will be delivered.
    Note: 'requestFocus()' must also be called on the view for key input!

- Test: NEWTGearsES2Activity, which launches the soft key via:
     InputMethodManager mgr = (InputMethodManager) win.getAndroidView().getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
     mgr.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0); // shows keyboard ..
  and requests the focus of the view for input.
TextureSequence Shader Support; GLMediaPlayer uses 'int' where possible; General enhancments.

For details about TextureSequence/GLMediaPlayer shader collaboration w/ your own shader source,
see TextureSequence and TexCubeES2 / MovieSimple demo.

TextureSequence allows implementations to provide their own texture lookup function
which may provide color space conversion (YUV) .. or other runtime hw-accel features.
Have a look at the next commit, which provides an Libav/FFMpeg implementation w/ YUV/RGB shader conversion.

MovieCube adds keyboard control (Android: firm touch on display to launch keyboard, don't break it though :)
Adding initial Libav/FFMpeg GLMediaPlayer implementation

The Java classes already slipped through in
commit 10935e1ec0d8ed677bc3fddfaa8cd73898a3bcbf - oops.

Since we cannot provide a Libav binary (even though Google does in Android and Chrome)
due to legal uncertainities .. we dynamically link to an existing Libav / FFmpeg library
in a 'relaxed' manner. Ie. we allow certain recent functions to be absent to be able
to run on a wider range of Libav versions.

Currently tested on Debian Linux and Windows7 64bit/32bit
Binaries for Win/OSX:
  - Windows http://ffmpeg.zeranoe.com/builds/
  - OSX http://www.ffmpegx.com/

Features:
  - Dynamic relaxed linking to Libav (see above)
  - YUV420P texture lookup function shader stub (conversion to RGB)
  - 1-copy only (decoder buffer to texture)
  - simple
  - uses libavformat's network streaming
  - fixes some odd PTS values

TODO:
  - Audio output (Should use OpenAL, duh)
  - Seek works poorly
  - Offthread multi-texture fetching for smoother animation
  - Maybe more pixelformat conversions