| Index: src/codec/SkCodecPriv.h | 
| diff --git a/src/codec/SkCodecPriv.h b/src/codec/SkCodecPriv.h | 
| index 27e2a63722d8ff095911846ece0d45d46cc7479f..4ae049744c3017b4a1a87da9800845c2404df04c 100644 | 
| --- a/src/codec/SkCodecPriv.h | 
| +++ b/src/codec/SkCodecPriv.h | 
| @@ -75,11 +75,14 @@ inline bool is_coord_necessary(int srcCoord, int sampleFactor, int scaledDim) { | 
| } | 
|  | 
| inline bool valid_alpha(SkAlphaType dstAlpha, SkAlphaType srcAlpha) { | 
| -    // Check for supported alpha types | 
| +    if (kUnknown_SkAlphaType == dstAlpha) { | 
| +        return false; | 
| +    } | 
| + | 
| if (srcAlpha != dstAlpha) { | 
| if (kOpaque_SkAlphaType == srcAlpha) { | 
| -            // If the source is opaque, we must decode to opaque | 
| -            return false; | 
| +            // If the source is opaque, we can support any. | 
| +            return true; | 
| } | 
|  | 
| // The source is not opaque | 
| @@ -99,7 +102,8 @@ inline bool valid_alpha(SkAlphaType dstAlpha, SkAlphaType srcAlpha) { | 
| /* | 
| * Most of our codecs support the same conversions: | 
| * - profileType must be the same | 
| - * - opaque only to opaque (and 565 only if opaque) | 
| + * - opaque to any alpha type | 
| + * - 565 only if opaque | 
| * - premul to unpremul and vice versa | 
| * - always support N32 | 
| * - otherwise match the src color type | 
|  |