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/libstagefright/FrameDecoder.cpp
|
f49d8f7b8c5f77016e9ba848219966890c9810a8 |
|
02-May-2018 |
Chong Zhang <chz@google.com> |
Prepare code to allow image decoder to be reused This change refactors ImageDecoder to prepare it for reuse for multi-slice decoding. There is no functional change. bug: 78475896 Test: CTS MediaMetadataRetrieverTest; Manual test of HEIF image decoding and thumbnail extraction. Change-Id: I8c16042020c7db3d3714d22322e6304ea4192e33
/frameworks/av/media/libstagefright/FrameDecoder.cpp
|
e44ca3765fca8d82f7dcf884c53acddb6704dd20 |
|
28-Apr-2018 |
Chong Zhang <chz@google.com> |
Merge "Tuning of buffer dequeue code to reduce stalls" into pi-dev
|
c666687f67d1d00beb88c63f90cefc708cbe8500 |
|
20-Apr-2018 |
Chong Zhang <chz@google.com> |
Tuning of buffer dequeue code to reduce stalls Queue as many inputs as possible without blocking, then block on output. Also change the blocking time to 10ms but allow a little more retries. Finally, assign a non-zero pts to the image samples to suppress warnings from MediaCodec about 0 pts. bug: 78475896 Change-Id: I57c4096a93bc5de0a413968224843a69df667df8
/frameworks/av/media/libstagefright/FrameDecoder.cpp
|
3f4e6ddcf05aa1a286bc3963b5a9f53bf30b4327 |
|
25-Apr-2018 |
Chong Zhang <chz@google.com> |
Remove one redundant frame copy in MetadataRetriever When extracting bitmaps, MediaMetadataRetriever does a copy from StagefrightMetadataRetriever's VideoFrame to IMemory. We could just allocate IMemory directly and return that to the client. bug: 78475896 Change-Id: Ibe07e7d2c68f031261470308476089c2fa9298ea
/frameworks/av/media/libstagefright/FrameDecoder.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/libstagefright/FrameDecoder.cpp
|
67d5b91f2fa0b106c038e642225e3b538db2be2e |
|
15-Mar-2018 |
Chong Zhang <chz@google.com> |
heif: renaming of grid-{width,height} to tile-{width,height} So that it's not confused with grid dimensions. bug: 74831433 Change-Id: I29188c6527c2315cbc66157a0a5b68a0d11fecc4
/frameworks/av/media/libstagefright/FrameDecoder.cpp
|
3d21ae3fad5a894cf15f2e7e7a1d54d0f3d19db0 |
|
16-Feb-2018 |
Marco Nelissen <marcone@google.com> |
Remove RefBase from the extractor API - Add MetaDataBase base class that MetaData derives from, but which does not derive from RefBase. - MediaBuffer::meta_data() now returns a MetaDataBase& rather than an sp<MetaData> - Rename MediaSourceBase to MediaTrack. - MediaSource no longer derives from MediaSourceBase (or MediaTrack) - MediaTrack::getFormat(), MediaExtractor::getTrackMetaData() and MediaExtractor::getMetaData() all take a MetaDataBase& parameter that they fill out, rather than returning a MetaData directly (the corresponding methods on MediaSource and RemoteMediaExtractor continue to return MetaData) Bug: 67908544 Test: CTS MediaPlayerTest, DecoderTest, EncodeDecodeTest, manually record video Change-Id: Ib531ab309061290be33d40d6100c9a8127e22083
/frameworks/av/media/libstagefright/FrameDecoder.cpp
|
1889c3edad32995c0cf26ae2248fe7c957b7ec84 |
|
01-Feb-2018 |
Dongwon Kang <dwkang@google.com> |
Add MediaBufferBase and use it in MediaSource and MediaBufferGroup. MediaBuffer class exposes internal classes, ABuffer and IMemory, which we don't want to expose to plugins. This change introduces MediaBufferBase which does not expose any classes from system library. Test: build and post-submit media cts tests Bug: 67908556 Change-Id: Ic9ee239caf9b84b2b3740e2d533257afa25c8784
/frameworks/av/media/libstagefright/FrameDecoder.cpp
|
226c9b913fb10209d52f40c15b7a7a7264628e19 |
|
02-Dec-2017 |
Chong Zhang <chz@google.com> |
fix crash due to no output format available Output format should arrive before we get first frame, but if it doesn't, better fail it than crash. bug: 69924594 Change-Id: If70082bd9901d52f20d63d92fd6c2b34d4cee830
/frameworks/av/media/libstagefright/FrameDecoder.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/libstagefright/FrameDecoder.cpp
|