Check correct number of planes in queryYUVA8

Bug: chromium:897395
Change-Id: I6bc872d00de466963383ee4caeeb60aea83c39fb
Reviewed-on: https://skia-review.googlesource.com/c/164047
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
diff --git a/src/core/SkImageGenerator.cpp b/src/core/SkImageGenerator.cpp
index 42d5214..c437494 100644
--- a/src/core/SkImageGenerator.cpp
+++ b/src/core/SkImageGenerator.cpp
@@ -39,8 +39,8 @@
         // try the deprecated method and make a guess at the other data
         if (this->onQueryYUV8(sizeInfo, colorSpace)) {
             // take a guess at the number of planes
-            int numPlanes = SkYUVSizeInfo::kMaxCount;
-            for (int i = 0; i < SkYUVSizeInfo::kMaxCount; ++i) {
+            int numPlanes = 3;  // onQueryYUV8 only supports up to 3 channels
+            for (int i = 0; i < 3; ++i) {
                 if (sizeInfo->fSizes[i].isEmpty()) {
                     numPlanes = i;
                     break;
@@ -66,7 +66,7 @@
                     yuvaIndices[SkYUVAIndex::kA_Index].fChannel = SkColorChannel::kR;
                     break;
                 case 2:
-                    // Assume 1 Y plane and interleaved UV planes
+                    // Assume 1 Y plane and interleaved UV planes (NV12)
                     sizeInfo->fColorTypes[0] = kAlpha_8_SkColorType;
                     sizeInfo->fColorTypes[1] = kRGBA_8888_SkColorType;
                     sizeInfo->fColorTypes[2] = kUnknown_SkColorType;
@@ -81,6 +81,7 @@
                     yuvaIndices[SkYUVAIndex::kA_Index].fChannel = SkColorChannel::kR;
                     break;
                 case 3:
+                default:
                     // Assume 3 separate non-interleaved planes
                     sizeInfo->fColorTypes[0] = kAlpha_8_SkColorType;
                     sizeInfo->fColorTypes[1] = kAlpha_8_SkColorType;
@@ -95,22 +96,6 @@
                     yuvaIndices[SkYUVAIndex::kA_Index].fIndex = -1;
                     yuvaIndices[SkYUVAIndex::kA_Index].fChannel = SkColorChannel::kR;
                     break;
-                case 4:
-                default:
-                    // Assume 4 separate non-interleaved planes
-                    sizeInfo->fColorTypes[0] = kAlpha_8_SkColorType;
-                    sizeInfo->fColorTypes[1] = kAlpha_8_SkColorType;
-                    sizeInfo->fColorTypes[2] = kAlpha_8_SkColorType;
-                    sizeInfo->fColorTypes[3] = kAlpha_8_SkColorType;
-                    yuvaIndices[SkYUVAIndex::kY_Index].fIndex = 0;
-                    yuvaIndices[SkYUVAIndex::kY_Index].fChannel = SkColorChannel::kR;
-                    yuvaIndices[SkYUVAIndex::kU_Index].fIndex = 1;
-                    yuvaIndices[SkYUVAIndex::kU_Index].fChannel = SkColorChannel::kR;
-                    yuvaIndices[SkYUVAIndex::kV_Index].fIndex = 2;
-                    yuvaIndices[SkYUVAIndex::kV_Index].fChannel = SkColorChannel::kR;
-                    yuvaIndices[SkYUVAIndex::kA_Index].fIndex = 3;
-                    yuvaIndices[SkYUVAIndex::kA_Index].fChannel = SkColorChannel::kR;
-                    break;
             }
 
             return true;