History log of /frameworks/av/media/libheif/HeifDecoderImpl.h
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/libheif/HeifDecoderImpl.h
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/libheif/HeifDecoderImpl.h
3f3ffab372ea65f5d658166aee1f6bff0faf78d6 23-Aug-2017 Chong Zhang <chz@google.com> heif: cache the entire stream if possible to support seek

Also, reuse decoding result if decode is called again. Currently
decode only retrieves primary picture, so there is no point to
go to metadata retriever again.

Bug: 64077740

Change-Id: I9243de396957f4d717c386bbaa8692494d624998
/frameworks/av/media/libheif/HeifDecoderImpl.h
ea280cb32091e46f3cb5ec68f2c7200913b43168 02-Aug-2017 Chong Zhang <chz@google.com> heif: adding libheif to be used by skia heif codec

- define platform-independent HeifDecoder interface to be used by
skia to decode heif

- add android implementation of HeifDecoder utilizing media framework
MediaMetadataRetriever.

bug: 64077740
Change-Id: I87d803a16c117ab081adbd7c88c1bdb3c4318d66
/frameworks/av/media/libheif/HeifDecoderImpl.h