stagefright aacenc: Don't address a Word32 with a Word16 pointer

Currently, a pointer to a Word32 is used as a pointer to Word16, which
doesn't work as intended on big endian architectures.

This change needs to be analyzed and tested properly so that it doesn't
cause issues with overflows in these variables. Another solution would be
to change all the scf arrays to 32 bit instead.

Change-Id: I53d9eb83bdaf8d3b1530eb5064dd10b08bce737a
stagefright amrwbenc: Change keyword ordering

This avoids warnings about 'static' not being at the beginning
of the declarations.

Change-Id: I80f91b8a0f7f61edcdca96c206fedbd74ec0d88e
stagefright amrwb: Make a global const array static

This fixes compilation as C - while the source files are named
.cpp, they actually are compileable as pure C. Prior to this,
this table produced multiple definitions of the same symbol.

This was committed on the master branch of the opencore
repository in commit a803bd49a631317e0d52ff060cf1799f7741a47e,
based on AOSP contribution 10017.

Change-Id: Id76274964242b119ab61b8181e557477df1e1521
stagefright aacenc: Remove a stray semicolon

This avoids warnings about an empty body in an if statement.

mem_free does the same null check, so the accidental extra
semicolon was harmless, and the whole if statement actually
is needless. But if removing the if statements, all the
other ones should be removed too, for consistency.
(This could be done as a separate change).

Change-Id: I1b6064dedd15ffa949043bb5396148aaed9b43f6
stagefright aacenc: Simplify the definition of __inline

This reduces the amount of ifdefs needed, into something that
works on both gcc and MSVC. This removes one occurrance of the
LINUX ifdef, simplifying compiling on various platforms.

Change-Id: I1e2af6c2517410dc280197ba922df877cf7afbd5
stagefright amrwbenc: Remove a useless check

Since the Length field is unsigned, the comparison will always
be false. The corresponding code in the aac encoder doesn't have
any check for Length.

This avoids a warning about comparison always being false.

Change-Id: I57c28ff9d09cb9ac4effeaeb40db608ab976acc6
stagefright amrnb: Add missing const qualifier to table declarations in headers

This was committed on the master branch of the opencore
repository in commit 5ce7a6fdf125116ffce2e692e14eafef1c807628,
based on AOSP contribution 10301.

Change-Id: Ie32b32c7407f449e382c0b4fd2d60a664e0daa33
stagefright amrnb: Add includes for prototype declarations of tables

This was committed on the master branch of the opencore
repository in commit da3d0463c999871ee584a0d750be65be65d19b00,
based on AOSP contribution 10302.

Change-Id: I4ad5526634efecc2d2bb3d2169184b8d4d4d7671
stagefright amrnb: Remove extern from table definitions

Local prototype declarations are added where no suitable ones are
available in headers.

This fixes warnings when compiling as C - while the source
files are named .cpp, they actually are compileable as pure C.

This was committed on the master branch of the opencore
repository in commit a0acb494ea6682ca966b5ebbd3676c89c56d63a6,
based on AOSP contribution 10303.

Change-Id: Ib4e27ea30302c66e0233e63e5a4652f6339bc940
stagefright amrwb: Change a C++ style cast into a C style cast

This fixes compilation as C - while the source files are named
.cpp, they actually are compileable as pure C (except for this
cast).

This was committed on the master branch of the opencore
repository in commit ae27d9b2ef68c4e6fc383a8cab93d6baa235ff6b,
based on AOSP contribution 10014.

Change-Id: I4f533313be041ad3e0a03ffc5f4207480894ddd1
stagefright amrwb: Make local const arrays static

Some of these tables exist in both the amrnb and amrwb libraries,
but with different content.

This avoids some cases of multiple definitions of symbols, if
linking in both libraries statically into the same executable,
if the libraries are built as C. (As C++, the local symbols
get mangled so they don't conflict with the external C symbols
in amrnb, that are unmangled.)

Most of this was committed on the master branch of the opencore
repository in commit 0cd4b3ac412dd0a8370ce339e89cf346c6cfe395,
based on AOSP contribution 10016.

Change-Id: I5387e699ce54a56dc43fcfa0396dee5c99280fd9
stagefright aacenc: Add prototypes for arm specific implementations of functions

The arm specific functions are implemented in .s files,
without any function declarations in headers.

This fixes compiler warnings about implicit declarations
of these functions.

Change-Id: I1512560b6740c1879f378886e05aaad2e3a6c869
Add stubs for better compatibility

Change-Id: I3fafee637f3ab239e3b870c73bcfe34cf73caf4c
stagefright amr: Avoid C++/C99 for loops with variable declaration

This makes the code compileable in C89 mode, too.

Change-Id: I9b76f8bfca148d1aec6081b8db139f351d64cfed
stagefright aacenc: Safeguard against overwriting bits

Previously, if bits above the lowest noBitsToWrite were
set, they would be ORed into the previous cache word,
setting unrelated bits erroneously.

This doesn't noticeably affect the performance of the
codec as a whole.

Change-Id: Ie9935533c4299b8f07cb14485f039a9be9c84016
stagefright aacenc: Use ARMv6 SSAT instruction

Change-Id: I652eaaa54e7766d9dca80fd8cc156ca481359471
stagefright aacenc: Remove useless inline asm for simple right shift

Change-Id: If1f40e9c16952182e974af1c86a14995259c2ade
stagefright aacenc: Use QDADD/QDSUB instructions

Change-Id: I46c81dba0486d515f1f2b89a13fae27f6ab1e122
Adds documentation for ContentResolver notifyChange()

Adds clarifying documentation to ContentResolver#notifyChange() to
explain interaction with the sync framework.

Change-Id: Ia1a1ed173e230bc11aa778268749323536ca434f
Signed-off-by: Steve Pomeroy <steve@staticfree.info>
stagefright aacenc: Avoid a division by zero

In rare cases, the result of normFactor * (*psfbNActiveLines)
could be zero, leading to a division by zero in pow2_xy.

In these cases, normFactor was INT_MIN, and if *psfbNActiveLines
was 2, the product was zero.

normFactor being INT_MIN is a bug in itself though.

Change-Id: Ib31bf02889615a7be3bd1bc028da8a7651a8dbee