61 Commits

Author SHA1 Message Date
Hampus Wessman
8673c2adc7 Fix graphical artifact in the fisheye effect
The fisheye effect generates a graphical artifact close to the center of
the picture, due to bad precision and division by zero in the shader.
The problem is fixed by making a small change in the shader, so that the
picture is uniformly scaled close to the center instead. This avoids the
problem and looks as expected, without affecting the performance.

Bug: 64107054

Test: Manual - Install dev sample HelloEffects and use the 'fisheye'
from the overflow.  There is a small artifact in the center of the puppy
without this patch applied. Think of the puppies!!
Change-Id: I063f60facd30708db29ff544fdb47ac896e3d54b
2017-07-27 13:44:00 +00:00
Elliot Waite
28ba4722a9 Fix @links in reference docs. am: 54de77470d
am: ab978c035e

Change-Id: If0d0613362e0ea95cf48eaf9a16d3eea48b589ea
2017-01-26 04:39:57 +00:00
Elliot Waite
54de77470d Fix @links in reference docs.
Change-Id: I40cea46efd80c448640ff69753698fe8404da40b
2017-01-25 17:00:55 -08:00
Paul Duffin
ccb0445027 Prepare for removal of legacy-test from default targets
In preparation for removing junit classes from the Android API
the legacy-test target will be removed from the
TARGET_DEFAULT_JAVA_LIBRARIES. This change adds explicit
dependencies on junit and/or legacy-android-test to ensure that
modules will compile properly once it is removed.

(cherry picked from 6387604f9e672ece85e07c4bcbd7be396867f06f)

Bug: 30188076
Test: make checkbuild
Merged-In: I13e88297731253420e4e5f5291d503f13a39a156
Change-Id: I58446eb8c45d8ac2bcdbc9fa40d1321e811bdd4b
2017-01-19 09:43:05 +00:00
Mark Salyzyn
52eb4e01a4 Replace cutils/log.h and log/logger.h with log/log.h
Test: compile
Bug: 26552300
Bug: 31289077
Change-Id: I578b15b48f0fc2807a92abbc69a377c3d2191496
2017-01-09 14:31:34 -08:00
George Burgess IV
5572d1607b Fix a memory leak.
This was caught by clang's static analyzer. Warning:
frameworks/base/media/mca/filterfw/native/core/shader_program.cpp:1031:3:
warning: Potential leak of memory pointed to by 'attrib.owned_data'
    return StoreAttribute(attrib);

Bug: None.
Test: The static analyzer no longer complains.
Change-Id: Ibef0368dfa48ba57e38019a5a3e33d5bacd847a2
2016-12-13 15:32:00 -08:00
George Burgess IV
315c936a87 Fix static analyzer warnings.
This patch fixes multiple static analyzer warnings:

frameworks/base/media/mca/filterfw/jni/jni_gl_environment.cpp:66:10:
warning: Potential memory leak
frameworks/base/media/mca/filterfw/jni/jni_native_frame.cpp:38:10:
warning: Potential memory leak
frameworks/base/media/mca/filterfw/jni/jni_native_program.cpp:31:10:
warning: Potential memory leak
frameworks/base/media/mca/filterfw/jni/jni_shader_program.cpp:50:12:
warning: Potential memory leak
frameworks/base/media/mca/filterfw/jni/jni_shader_program.cpp:57:12:
warning: Potential memory leak
frameworks/base/media/mca/filterfw/jni/jni_vertex_frame.cpp:27:10:
warning: Potential memory leak

Note that the changes in jni_gl_frame are purely cosmetic; those aren't
fixing any warnings. I'm happy to back them out if anyone wants.

Bug: None.
Test: All of the static analyzer warnings mentioned above are now gone.
Change-Id: I49dc6d7c789233d6497f8bcc766ca66aec72b27b
2016-11-01 16:20:40 -07:00
Chih-Hung Hsieh
bd6b663b47 Fix google-explicit-constructor warnings in media/mca.
* Add explicit keyword to conversion constructors.
Bug: 28341362
Test: build with WITH_TIDY=1

Change-Id: Ia820e0a82df4bf74e5846917f6148849aed6ddc0
2016-08-29 14:47:52 -07:00
Pirama Arumuga Nainar
4643acaa34 Merge \"Disable warning triggered in Clang r271374\"
am: bba87840d3

Change-Id: I03686c2e9c341d927b295c150aea8eea37f69338
2016-07-19 23:41:20 +00:00
Pirama Arumuga Nainar
b6709700db Disable warning triggered in Clang r271374
http://b/28149048
http://b/29823425

Disable -Wconstant-conversion that gets triggered in
native/imageproc/to_rgba.c.

Test: Tested build, boot and common usage for Arm, Arm64, x86, x86_64,
Mips images in AOSP and internal branch.

Change-Id: Ia8dbe49a1a8577599244642cbd2e3bb17ec1f83c
2016-07-19 20:31:39 +00:00
Chih-Hung Hsieh
85e0c89ba5 resolve merge conflicts of 1599b981 to nyc-dev-plus-aosp
Change-Id: I90807581e10b6a0024515ff634ac8b29eaa5fc9f
2016-04-28 12:08:15 -07:00
Chih-Hung Hsieh
c6baf563ba Fix google-explicit-constructor warnings.
Bug: 28341362
Change-Id: Ibdd6a210bb7ff228e3624cc319169f77aca3b51e
2016-04-27 11:38:12 -07:00
Christopher Wiley
ba09bc57d5 Merge "libfilterfw_jni needs libmedia include paths" am: e004a913
am: 3ab9d65

* commit '3ab9d65161ada89fd363b088a2bd916caa8f695d':
  libfilterfw_jni needs libmedia include paths

Change-Id: I0b27f50090754756c391bc840d38ecdb23e978a7
2016-04-14 18:29:42 +00:00
Christopher Wiley
6ac565687b libfilterfw_jni needs libmedia include paths
This library includes libmedia headers, and needs its full include path.

Bug: 27804373
Test: This code compiles with a slightly modified libmedia include
      path.

Change-Id: Ic9253c0f0e7236435f36f2baf47411ca7db187cd
2016-04-14 10:21:03 -07:00
Eino-Ville Talvala
4002b32d3d Media.effect: Remove redundant package info
It causes docs build warnings, isn't used, and is out of date.

Bug: 26856434
Change-Id: I9c77b5dadd571bca94ba091f86557e12459a373c
2016-02-27 17:57:23 -08:00
Elliott Hughes
35af2c3534 Add missing <string.h> includes.
Change-Id: I188bfe1388fa49f6f79d247aa0d0f4fb089de503
2015-01-25 08:33:36 -08:00
Ying Wang
34db51cdd7 Cleanup Obsolete LOCAL_PRELINK_MODULE.
Bug: 18675947
Change-Id: If4909c5f8495136d381b289a3d55e811313abccc
2014-12-16 12:45:49 -08:00
Bernhard Rosenkränzer
46c82b4cd2 Adjust format strings to work on both 32-bit and 64-bit builds
Adjust format strings to not produce Clang warnings in both 32-bit and
64-bit builds

Change-Id: I76c29d8d5d0fb4b5e9d9518077652370ffe9e871
Signed-off-by: Bernhard Rosenkränzer <Bernhard.Rosenkranzer@linaro.org>
2014-12-05 16:14:07 -08:00
Chih-hung Hsieh
ccce6e0f9f Merge "Add -Wno-unused-parameter to LOCAL_CFLAGS" 2014-12-04 01:04:09 +00:00
Bernhard Rosenkränzer
57f637279a Add -Wno-unused-parameter to LOCAL_CFLAGS
Some JNI functions ignore the JNI environment and class information, but
still take the parameters -- causing a build failure with clang (and gcc
with -Wextra enabled). Ignore this.

Change-Id: I049fcf65991b19d2416fce105699311803b43cfc
Signed-off-by: Bernhard Rosenkränzer <Bernhard.Rosenkranzer@linaro.org>
2014-11-24 03:02:03 +01:00
Bernhard Rosenkränzer
4048a4bcb1 Remove unused variables and functions, don't warn about unused parameters
Remove unused variables and static functions clang complains about,
disable warnings about unused parameters (needed for clang and for gcc
with -Wextra enabled)

Change-Id: I76a22cd0158b3c7375c54e3d4d15bc1ac448591e
Signed-off-by: Bernhard Rosenkränzer <Bernhard.Rosenkranzer@linaro.org>
2014-11-23 22:24:32 +01:00
Dan Albert
ff1d8a6635 Move frameworks/base over to libc++.
Bug: 15193147
Change-Id: I96109d2d383f0c8a4aaa611f29fcf887afb3c69e
2014-11-12 11:22:20 -08:00
Andreas Gampe
e5160e7e59 Frameworks/base: Wall Werror in media/mca
Turn on -Wall -Werror in media/mca. Fix warnings.

Change-Id: I2a43df1d0639babe240b91942a5ea3f8babdef93
2014-11-10 17:49:02 -08:00
Neil Fuller
f7cf5d43aa resolved conflicts for merge of ee665151 to lmp-dev-plus-aosp
Change-Id: I97671e62de26919e391dbb2686511584c59ab990
2014-10-02 11:48:08 +01:00
Neil Fuller
33253a4baa Switch from FloatMath -> Math and Math.hypot where possible
The motivation is an API change: FloatMath is going to be
deprecated and/or removed. Performance is not the goal of
this change.

That said...

Math is faster than FloatMath with AOT compilation.

While making the change, occurances of:

{Float}Math.sqrt(x * x + y * y) and
{Float}Math.sqrt({Float}Math.pow(x, 2) + {Float}Math.pow(y, 2))

have been replaced with:

{(float)} Math.hypot(x, y)

Right now there is no runtime intrinsic for hypot so is not faster
in all cases for AOT compilation:

Math.sqrt(x * x + y * y) is faster than Math.hypot(x, y) with
AOT, but all other combinations of FloatMath, use of pow() etc.
are slower than hypot().

hypot() has the advantage of being self documenting and
could be optimized in future. None of the behavior differences
around NaN and rounding appear to be important for the cases
looked at: they all assume results and arguments are in range
and usually the results are cast to float.

Different implementations measured on hammerhead / L:

AOT compiled:

[FloatMath.hypot(x, y)]
benchmark=Hypot_FloatMathHypot} 633.85 ns; σ=0.32 ns @ 3 trials

[FloatMath.sqrt(x*x + y*y)]
benchmark=Hypot_FloatMathSqrtMult} 684.17 ns; σ=4.83 ns @ 3 trials

[FloatMath.sqrt(FloatMath.pow(x, 2) + FloatMath.pow(y, 2))]
benchmark=Hypot_FloatMathSqrtPow} 1270.65 ns; σ=12.20 ns @ 6 trials

[(float) Math.hypot(x, y)]
benchmark=Hypot_MathHypot} 96.80 ns; σ=0.05 ns @ 3 trials

[(float) Math.sqrt(x*x + y*y)]
benchmark=Hypot_MathSqrtMult} 23.97 ns; σ=0.01 ns @ 3 trials

[(float) Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2))]
benchmark=Hypot_MathSqrtPow} 156.19 ns; σ=0.12 ns @ 3 trials

Interpreter:

benchmark=Hypot_FloatMathHypot} 1180.54 ns; σ=5.13 ns @ 3 trials
benchmark=Hypot_FloatMathSqrtMult} 1121.05 ns; σ=3.80 ns @ 3 trials
benchmark=Hypot_FloatMathSqrtPow} 3327.14 ns; σ=7.33 ns @ 3 trials
benchmark=Hypot_MathHypot} 856.57 ns; σ=1.41 ns @ 3 trials
benchmark=Hypot_MathSqrtMult} 1028.92 ns; σ=9.11 ns @ 3 trials
benchmark=Hypot_MathSqrtPow} 2539.47 ns; σ=24.44 ns @ 3 trials

Bug: https://code.google.com/p/android/issues/detail?id=36199
Change-Id: I06c91f682095e627cb547d60d936ef87941be692
2014-10-01 14:04:15 +01:00
Dan Albert
c04d92cac9 resolved conflicts for merge of 1a4527ce to lmp-dev-plus-aosp
Change-Id: Iee4e93e3a2b049ec5f13166dbbffdd77b301fe5c
2014-09-19 15:57:26 -07:00
Dan Albert
88ba339aef Clean up makefile cruft.
The build system already takes care of all these things.

Change-Id: Idef80b554e07cef5e5ed2adf1b5740a76f13ef6d
2014-09-11 16:21:19 -07:00
Dan Stoza
ffdbe97f8e GLConsumer: Stop using default constructor params
Removes the dependency on default constructor parameters for
GLConsumer so that a different constructor prototype can safely be
added.

Change-Id: I0da924bbd4c141edbf305598c1be8bc575654680
2014-06-24 13:06:28 -07:00
Dan Stoza
526f21b2c6 Remove deprecated BufferQueue constructor
Bug: 13415624
Change-Id: I2a7cea5806869bcd6aeaeee7dee97d80f819c9aa
2014-03-12 17:02:07 -07:00
Narayan Kamath
6bb5cb24b4 Resolved conflicts for merge of 28c6ec02 to master
Change-Id: Idf1cabf2694dfa13d928df944d346f5e051b6948
2014-01-16 15:49:59 +00:00
Ashok Bhat
075e9a19ce AArch64: Use long for pointers in media classes
For storing pointers, long is used in media classes,
as native pointers can be 64-bit.

In addition, some minor changes have been done
to conform with standard JNI practice (e.g. use
of jint instead of int in JNI function prototypes)

Change-Id: Idc4ca0124d03df7f9cef412488abafd020e5e774
Signed-off-by: Ashok Bhat <ashok.bhat@arm.com>
Signed-off-by: Marcus Oakland <marcus.oakland@arm.com>
Signed-off-by: Kévin PETIT <kevin.petit@arm.com>
2014-01-15 13:09:27 +00:00
John Spurlock
6090995951 Remove unused imports from frameworks/base.
Change-Id: Ia1f99bd2c1105b0b0f70aa614f1f4a67b2840906
2013-11-20 11:31:47 -05:00
Mathias Agopian
e3eae73abb fix-up dependencies to gl headers
Change-Id: I9f176847587db1f9ccee2bc425106d277ffceee6
2013-08-08 21:09:16 -07:00
Mathias Agopian
52a9a10b6b Clearly separate consumer and producer interfaces
Bug: 9265647
Change-Id: Ic68e91788d0a05251e1d2fb9f9d4de403c7099bf
2013-08-06 13:07:42 -07:00
Elliott Hughes
a81dcd03dc am b56f10aa: am 32c308a5: Merge "If media wants ASCII lowercasing, it needs to ask for it."
* commit 'b56f10aa66914aeb880c624ed6e938e1941ff820':
  If media wants ASCII lowercasing, it needs to ask for it.
2013-08-02 17:58:31 -07:00
Elliott Hughes
dcb1a58cf9 If media wants ASCII lowercasing, it needs to ask for it.
http://elliotth.blogspot.com/2012/01/beware-convenience-methods.html

Use toLowerCase(Locale.ROOT) if you want ASCII for machine consumption,
and use toLowerCase(Locale.getDefault()) if you want the user's locale's
casing rules for human consumption.

Bug: https://code.google.com/p/android/issues/detail?id=58359
Change-Id: Id9005a17e34217a81bef3b40031b9e2e6272f45d
2013-08-02 10:03:53 -07:00
Mathias Agopian
b550929b7a always pass the BufferQueue explicitely to consumers
Change-Id: I32e380979a3f4c6b1dfb440cc5b5c3d30d7607db
2013-07-12 22:06:31 -07:00
Ying Wang
d685894212 Add liblog
Bug: 8580410
Change-Id: I746aa8258866508c3a725d0773faf4518096548f
2013-04-09 21:54:12 -07:00
Mathias Agopian
5280061794 Refactoring: Rename SurfaceTextureClient to Surface
Change-Id: I5a218ca11abeeec05e3a4c3cfc581bcc788814ea
2013-02-15 12:47:40 -08:00
Andy McFadden
d47f7d8b5f Rename ISurfaceTexture and SurfaceTexture
The C++ class names don't match what the classes do, so rename
ISurfaceTexture to IGraphicBufferProducer, and SurfaceTexture to
GLConsumer.

Bug 7736700

Change-Id: I08e677faf2ebb418ef131d0a8008e01037db0e50
2012-12-18 11:22:21 -08:00
Andrew Hsieh
eba8254c8c Fix typo
Changed ANDROID_BITMAP_RESUT_SUCCESS -> ANDROID_BITMAP_RESULT_SUCCESS

Change-Id: I3d5525d7dacbf8f007e3230e1ca87b69245a96b1
2012-12-12 11:27:44 +08:00
Kenny Root
7b172a49a9 am 58ed5d74: am 768d9e1a: Merge "Correct executable bit for source files"
* commit '58ed5d748c0b9b64845975ef5844ad313de7c3f6':
  Correct executable bit for source files
2012-11-07 13:08:25 -08:00
Kenny Root
58ed5d748c am 768d9e1a: Merge "Correct executable bit for source files"
* commit '768d9e1a72ceee7d4a5f608776b87b62d6ce4a04':
  Correct executable bit for source files
2012-11-07 11:52:12 -08:00
Kenny Root
3a084af2e9 Correct executable bit for source files
Many media files and source code files were marked as executable in Git.
Remove those.

Also a shell script and python script were not marked as executable.

Change-Id: Ieb51bafb46c895a21d2e83696f5a901ba752b2c5
2012-11-07 10:27:31 -08:00
Glenn Kasten
b24a1b7f99 Remove obsolete references to libmedia_native
Bug: 6654403
Change-Id: I05d8e81fd31617b587fd1228a303c40db83e7f2d
2012-10-30 10:59:52 -07:00
Ruei-sung Lin
c733a79a43 Fix b/7087723 Patch leftover after tapping the red eye area
Change-Id: I06f5c491b09cf13698f001e8b11f42506fda5bbd
2012-09-12 15:01:29 -07:00
Mike Dodd
f330d19a17 Add context support to backdropper filter.
Part of b/7028438

Change-Id: Idcae38b452abc847c7b869a5568d1c5d831411b7
2012-09-06 17:00:38 -07:00
Teng-Hui Zhu
2253eeab6c Add context support into the filter framework.
Basically we need the context to pass the content URI into MediaPlayer.
bug:6837809

Change-Id: I9390b57baff06f80246584fb3a4b746e1a308ff2
2012-08-21 14:17:02 -07:00
Pannag Sanketi
22f2a8728e Crash in SurfaceTextureTarget filter open
If the filter graph in an app closes out, the SurfaceTextureTarget
filter was losing the reference to the original surfacetexture, and the
app would re-start the graph without setting the surfacetexture again,
thus leading to a crash in registering a surface from surfacetexture.

Typical scenarios is start/stop immediately in camera effects recording.

Fix part of b/6651352
Fix part of b/6655597

Change-Id: Ib2bae7e886784e91b3a886f7ccd439ff190feb22
2012-06-20 19:23:48 -07:00
Eino-Ville Talvala
4239373aed Add property to override backdropper effect threshold.
Also, change the default background mean to be the first incoming frame.

Bug: 6600585
Change-Id: I2181e75711d48d01f48e3fb1d604eb467f08fda4
2012-06-13 15:51:11 -07:00