skia2/include
scroggo db30be2f94 Make SkCodec support peek() and read()
- Update SkCodec's dox to point out that some of the data must be
  read twice in order to decode
- Add an accessor that reports how much is needed for reading twice
- Make SkCodec default to use peek()
  If an input stream supports peek()ing, peek() instead of reading.
  This way the stream need not implement rewind()
- Make SkCodec use read() + rewind() as a backup
  So that streams without peek() implemented can still function
  properly (assuming they can rewind).
- read everything we may need to determine the format once
  In SkCodec::NewFromStream, peek()/read() 14 bytes, which is enough
  to read all of the types we support. Pass the buffer to each subtype,
  which will have enough info to determine whether it is the right
  type. This simplifies the code and results in less reading and
  rewinding.
  - NOTE: SkWbmpCodec needs the following number of bytes for the header
    + 1 (type)
    + 1 (reserved)
    + 3 (width - bytes needed to support up to 0xFFFF)
    + 3 (height - bytes needed to support up to 0xFFFF)
    = 8
- in SkWebpCodec, support using read + rewind as a backup if peek does
  not work.

A change in Android will add peek() to JavaInputStreamAdapter.

BUG=skia:3257

Review URL: https://codereview.chromium.org/1472123002
2015-12-08 18:54:13 -08:00
..
android Move SkBitmapRegionDecoder to include/android and src/android 2015-11-13 06:11:09 -08:00
animator Sanitizing source files in Skia_Periodic_House_Keeping 2013-01-26 07:06:02 +00:00
c Documentation: C API comments 2015-09-01 10:45:09 -07:00
codec Make SkCodec support peek() and read() 2015-12-08 18:54:13 -08:00
config remove SkInstCnt 2015-06-26 11:45:03 -07:00
core Remove staging for SkImageDecoder::Peeker 2015-12-08 18:48:38 -08:00
device/xps CMake, include/: changes to make fiddle 2.0 better 2015-12-01 09:02:49 -08:00
effects SkAlphaThresholdFilter.h allow flattening 2015-12-07 10:29:54 -08:00
gpu Move texture drawing utility method to SkGpuDevice 2015-12-08 18:53:44 -08:00
images remove SkInstCnt 2015-06-26 11:45:03 -07:00
pathops Revert of Revert of remove SK_SUPPORT_LEGACY_PATHOP_ENUMS (patchset #1 id:1 of https://codereview.chromium.org/1203983003/) 2015-06-26 10:23:07 -07:00
pipe Fixing leaky handling of SkImage in SkDeferredCanvas. 2015-06-02 11:47:45 -07:00
ports Update documentation for SkFontMgr methods. 2015-12-03 12:12:13 -08:00
private Revert of skstd -> std for unique_ptr (patchset #17 id:320001 of https://codereview.chromium.org/1436033003/ ) 2015-12-02 12:32:02 -08:00
svg Remove SK_OFFSETOF from SkTypes, clean up offsetof usage. 2015-08-25 12:05:55 -07:00
utils clang/win: Let SK_TRACEHR not produce -Wunused-value warnings in release builds. 2015-12-07 10:41:36 -08:00
views Replace SkFunction with std::function 2015-11-12 10:41:05 -08:00
xml Move SkTemplates.h to private. 2015-08-19 11:56:48 -07:00