History log of /frameworks/av/media/libmedia/mediametadataretriever.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
0c1407f79ef36422330c2003a608d37df714256b 03-May-2018 Chong Zhang <chz@google.com> Decode one row of tiles at a time for image that has tiles

Add an api to IMediaMetadataRetriever to decode image rect.
It will reuse the same full frame IMemory, and decode only
the requested rect. For now, StagefrightMetadataRetriever
will only allow decoding of rect that's a full row of tiles,
and the requested must be issued sequentially (i.e. no
arbitrary rects). When the extract side is fixed to allow
seeking by tiles, it can be extended to allow arbitrary
rects.

This allows HeifDecoderImpl (on client side) to start
processing the getScanlines in parallel with the decoding.

Test: CTS MediaMetadataRetrieverTest;
Manual testing of HEIF decoding of files with or without tiles;
Manual testing of HEIF thumbnails generation in Downloads app.

bug: 78475896
Change-Id: I820b21cdf33f80593ee6092d8e1ba68b3beb65dd
/frameworks/av/media/libmedia/mediametadataretriever.cpp
d5fa357ddff0589d8a331583a56e62712af471be 10-Apr-2018 Chong Zhang <chz@google.com> Use heif embedded thumbnail if available

Add plumbing to retieve the embedded thumbnail from
MPEG4Extractor/ItemTable.

bug: 74395267
Test: CTS MediaMetadataRetriever test; manual test of thumbnail
extraction by browsing new folders containing heif files in
Downloads app.
Change-Id: Ic49f6dfa47eddc229b9f4b0e1835d58df1dce9f8
/frameworks/av/media/libmedia/mediametadataretriever.cpp
d3e0d861aa68a7ef129fe228595bff734448ebc8 03-Oct-2017 Chong Zhang <chz@google.com> heif: fixes for image sequences and dual-function files

Adding support for two new sets of APIs on MediaMetadataRetriever:

- getImageAtIndex() and getPrimaryImage()
- getFrameAtIndex() and getFramesAtIndex()

Outline of changes:

- Proper indexing of all displayable still images, so that they
can be retrieved by getImageAtIndex()

- Exposing still images as "image/x.android.heic" tracks in
MediaExtractor with necessary descriptive keys (such as "grid-*")

- Support to retrieve video frames by absolute index instead
of timestamps, as image use cases mostly are interested in
getting the images and care less about timing.

- Support to retrieve video frames in batches because retrieving
one frame at a time is inefficient.

- Refactor image / frame decoding code into FrameDecoder, and split
still image decoding and video sequence decoding into to sub
classes to facilite future development.

bug: 63633199

test:
cts-tradefed run cts-dev --module CtsMediaTestCases --compatibility:module-arg CtsMediaTestCases:include-annotation:android.platform.test.annotations.RequiresDevice

Change-Id: I2fe8519fb6907f315a8b513921fc1cc7f436e28d
/frameworks/av/media/libmedia/mediametadataretriever.cpp
24c15776247c46e34562100213035bb7aaffe013 27-Jul-2017 Chong Zhang <chz@google.com> stagefright: MetadataRetriever API to specify mime and color format

- Allow setDataSource() to specify mime. In case of HEIF decoding
request from skia, we don't want to sniff any other format other
than mp4.

- Allow getFrameAtTime() to specify dst color format.

bug: 64077740

Test: cts-tradefed run cts-dev --module CtsMediaTestCases --compatibility:module-arg CtsMediaTestCases:include-annotation:android.platform.test.annotations.RequiresDevice

Change-Id: I471f41c28a2252417c4b3331dcfd4bd00a24408a
/frameworks/av/media/libmedia/mediametadataretriever.cpp
52598348340ba20048a1d6304b39b548a95be18f 24-Feb-2016 Marco Nelissen <marcone@google.com> Get service by value instead of reference am: 61a6d26aab am: 93f5bcab20 am: d11972f8d4 am: c0cefa9f37 am: 73079eec40 am: 5984d6cbf9
am: 6bac803b15

* commit '6bac803b1595a653180da15d409fe6167534334c':
Get service by value instead of reference
6bac803b1595a653180da15d409fe6167534334c 24-Feb-2016 Marco Nelissen <marcone@google.com> Get service by value instead of reference am: 61a6d26aab am: 93f5bcab20 am: d11972f8d4 am: c0cefa9f37 am: 73079eec40
am: 5984d6cbf9

* commit '5984d6cbf9c7eae7a0f46c948a9b35b56f0268a5':
Get service by value instead of reference
d11972f8d48d14a1a52e98e64b8216abfc7f00e0 24-Feb-2016 Marco Nelissen <marcone@google.com> Get service by value instead of reference am: 61a6d26aab
am: 93f5bcab20

* commit '93f5bcab205f8d7cd4557eacda513867e8b8ea65':
Get service by value instead of reference
61a6d26aab95870279b274e565c1495748befde0 18-Feb-2016 Marco Nelissen <marcone@google.com> Get service by value instead of reference

to prevent a cleared service binder from being used.

Bug: 26040840
Change-Id: Ifb5483c55b172d3553deb80dbe27f2204b86ecdb
/frameworks/av/media/libmedia/mediametadataretriever.cpp
99f31604136d66ae10e20669fb6b5716f342bde0 20-Mar-2015 Chris Watkins <watk@google.com> Unhide the android.media.[Media]DataSource interface.

This allows apps to implement MediaDataSource, which is modeled on
stagefright's DataSource, to supply media data to the framework. This
was already implemented for MediaExtractor, but it was renamed from
DataSource.

MediaExtractor, MediaPlayer and MediaMetadataRetriever each have a new
overload: #setDataSource(android.media.MediaDataSource)

Only NuPlayer supports this new data source.

The change introduces:
* IDataSource: The binder interface for DataSource.
* JMediaDataSource: The native counterpart to the java interface. It
implements IDataSource.
* CallbackDataSource: A stagefright DataSource that wraps an
IDataSource.

Change-Id: Ib3c944b49cc8a792c8eb9c85e5015c07f298ebc1
/frameworks/av/media/libmedia/mediametadataretriever.cpp
40bc906252974d0b389ae4a147232d0c9a97193f 20-Mar-2015 Glenn Kasten <gkasten@google.com> namespace does not need a closing semicolon

Change-Id: Ie8f9d42fc061f6d558f23b98414e04eb3d14b376
/frameworks/av/media/libmedia/mediametadataretriever.cpp
f888020c6e2735624f2b2a30e72aca24e17b8b4d 14-Nov-2014 Marco Nelissen <marcone@google.com> Update calls to IInterface::asBinder()

to use the new static version.

Change-Id: Ia7b10eb38ca55b72278bfd33d3bf647f338b4e6a

Conflicts:
media/libmedia/IAudioFlinger.cpp
media/libmedia/IMediaPlayer.cpp
media/libstagefright/CameraSource.cpp
/frameworks/av/media/libmedia/mediametadataretriever.cpp
06b46062d2f8bc82ca3061a23d197734ae51918b 14-Nov-2014 Marco Nelissen <marcone@google.com> Update calls to IInterface::asBinder()

to use the new static version.

Change-Id: I89a5988a0ac694ffc04d88cf939e8455bf925d4c
/frameworks/av/media/libmedia/mediametadataretriever.cpp
34fb29696b0f3abf61b10f8d053b1f33d501de0a 19-Jun-2014 Mark Salyzyn <salyzyn@google.com> libmedia: 64-bit compile warnings

Change-Id: I600f062fa7148c01851023c1240c39939e648002
/frameworks/av/media/libmedia/mediametadataretriever.cpp
1b86fe063badb5f28c467ade39be0f4008688947 29-Jan-2014 Andreas Huber <andih@google.com> FINAL ATTEMPT: HTTP services are now provided from JAVA and made available to media code

Change-Id: I9f74a86e70422187c9cf0ca1318a29019700192d
/frameworks/av/media/libmedia/mediametadataretriever.cpp
7c7be1e05634d96d08210efb4bdeb012ffba440d 20-Dec-2013 Glenn Kasten <gkasten@google.com> Fix some (but not all) unused parameter warnings

Change-Id: Ia99e23a0b46db3f3e6aa46f9018e63c14f4af369
/frameworks/av/media/libmedia/mediametadataretriever.cpp
8d6cc842e8d525405c68e57fdf3bc5da0b4d7e87 03-Feb-2012 Glenn Kasten <gkasten@google.com> Remove unnecessary parameter

Just get the parameter on server side

Change-Id: I433a63104dbb257e0d862be2ab61847cb36d1c15
/frameworks/av/media/libmedia/mediametadataretriever.cpp
e53b9ead781c36e96d6b6f012ddffc93a3d80f0d 13-Mar-2012 Glenn Kasten <gkasten@google.com> Whitespace and indentation

Fix indentation to be multiple of 4.
Make it easier to search:
sp< not sp < to
"switch (...)" instead of "switch(...)" (also "if" and "while")
Remove redundant blank line at start or EOF.
Remove whitespace at end of line.
Remove extra blank lines where they don't add value.

Use git diff -b or -w to verify.

Change-Id: I966b7ba852faa5474be6907fb212f5e267c2874e
/frameworks/av/media/libmedia/mediametadataretriever.cpp
7fc9a6fdf146ded90b51c52f4a05d797294dcb85 10-Jan-2012 Glenn Kasten <gkasten@google.com> Remove redundant get()

get() is almost always unnecessary, except in a LOG.
Also no need to check for != 0 before calling get().

Change-Id: Ib06e7a503f86cf102f09acc1ffb2ad085025516d
/frameworks/av/media/libmedia/mediametadataretriever.cpp
29357bc2c0dd7c43ad3bd0c8e3efa4e6fd9bfd47 06-Jan-2012 Steve Block <steveblock@google.com> Rename (IF_)LOGE(_IF) to (IF_)ALOGE(_IF) DO NOT MERGE

See https://android-git.corp.google.com/g/#/c/157220

Bug: 5449033
Change-Id: Ic9c19d30693bd56755f55906127cd6bd7126096c
/frameworks/av/media/libmedia/mediametadataretriever.cpp
5ff1dd576bb93c45b44088a51544a18fc43ebf58 06-Jan-2012 Steve Block <steveblock@google.com> Rename (IF_)LOGW(_IF) to (IF_)ALOGW(_IF) DO NOT MERGE

See https://android-git.corp.google.com/g/157065

Bug: 5449033
Change-Id: I00a4b904f9449e6f93b7fd35eac28640d7929e69
/frameworks/av/media/libmedia/mediametadataretriever.cpp
3856b090cd04ba5dd4a59a12430ed724d5995909 20-Oct-2011 Steve Block <steveblock@google.com> Rename (IF_)LOGV(_IF) to (IF_)ALOGV(_IF) DO NOT MERGE

See https://android-git.corp.google.com/g/#/c/143865

Bug: 5449033
Change-Id: I0122812ed6ff6f5b59fe4a43ab8bff0577adde0a
/frameworks/av/media/libmedia/mediametadataretriever.cpp
af8791e112c8072452bd14ef3c43a47511d19542 21-Mar-2011 Andreas Huber <andih@google.com> Support passing headers to MediaMetadataRetriever's setDataSource API

Change-Id: Ib1a5c08fc5034cac05034db27007a35c9b660b26
related-to-bug: 3506316
/frameworks/av/media/libmedia/mediametadataretriever.cpp
7f7d52ac18dfc3c6d8f6267dad29306613e9bd0e 06-Jan-2011 James Dong <jdong@google.com> Publish MediaMetadataRetriever.java as public API

o Removed setMode() methods and related mode constants
o Removed some of the unused the metadata keys
o Updated the javadoc

o part of a multi-project change.

bug - 2433195

Change-Id: I5ed167f1fd6a53cb143b7dc385b149431d434438
/frameworks/av/media/libmedia/mediametadataretriever.cpp
16afe2fb439cab6125bb46a07a8078d4ce1c1ea5 03-Dec-2010 James Dong <jdong@google.com> Prepare for publishing MediaMetadataRetriever as public API

step one:
o replaced captureFrame with getFrameAtTime
o removed getMode

bug - 2433195

Change-Id: I38a8cecef29014692f0b08b8818326e3ebb40a12
/frameworks/av/media/libmedia/mediametadataretriever.cpp
a17a1347ffe281fc70633ba8dc98f6cf49ac06ff 02-Apr-2010 Dave Sparks <davidsparks@android.com> Use local lock for most MediaMetadataRetriever methods. Bug 2560834.

MediaMetadataRetriever uses a single static lock for all operations.
This effectively serializes all metadata retrieval operations in a
single process. This patch uses the object level lock for all normal
operations and only uses the static lock to serialize calls to
release.

Change-Id: I81c9f234c2f0007a26d18e1398c709b41a4dbbd7
/frameworks/av/media/libmedia/mediametadataretriever.cpp
7562408b2261d38415453378b6188f74fda99d88 20-May-2009 Mathias Agopian <mathias@google.com> move libbinder's header files under includes/binder
/frameworks/av/media/libmedia/mediametadataretriever.cpp
89fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
/frameworks/av/media/libmedia/mediametadataretriever.cpp
15f767b960b38059a74a42a33e16d8df2aec8bc1 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
/frameworks/av/media/libmedia/mediametadataretriever.cpp
7b5eb023f8d87cca6d830ae6c11c6aadbe02aca8 18-Dec-2008 The Android Open Source Project <initial-contribution@android.com> Code drop from //branches/cupcake/...@124589
/frameworks/av/media/libmedia/mediametadataretriever.cpp
2729ea9262ca60d93047e984739887cfc89e82eb 21-Oct-2008 The Android Open Source Project <initial-contribution@android.com> Initial Contribution
/frameworks/av/media/libmedia/mediametadataretriever.cpp