Lines Matching refs:codec
106 static void test_info(skiatest::Reporter* r, Codec* codec, const SkImageInfo& info, in test_info() argument
111 SkCodec::Result result = codec->getPixels(info, bm.getPixels(), bm.rowBytes()); in test_info()
131 static void test_incremental_decode(skiatest::Reporter* r, SkCodec* codec, const SkImageInfo& info, in test_incremental_decode() argument
136 REPORTER_ASSERT(r, SkCodec::kSuccess == codec->startIncrementalDecode(info, bm.getPixels(), in test_incremental_decode()
139 REPORTER_ASSERT(r, SkCodec::kSuccess == codec->incrementalDecode()); in test_incremental_decode()
145 static void test_in_stripes(skiatest::Reporter* r, SkCodec* codec, const SkImageInfo& info, in test_in_stripes() argument
170 if (SkCodec::kSuccess != codec->startIncrementalDecode(info, bm.getAddr(0, y), in test_in_stripes()
176 if (SkCodec::kSuccess != codec->incrementalDecode()) { in test_in_stripes()
187 static void test_codec(skiatest::Reporter* r, const char* path, Codec* codec, SkBitmap& bm, in test_codec() argument
194 SkCodec::Result result = codec->getPixels(info, bm.getPixels(), bm.rowBytes()); in test_codec()
213 auto actualResult = codec->getPixels(info565, bm565.getPixels(), bm565.rowBytes()); in test_codec()
220 test_info(r, codec, info565, expectedResult, &digest565); in test_codec()
229 test_info(r, codec, info565, SkCodec::kInvalidConversion, nullptr); in test_codec()
233 if (codec->getInfo().colorType() == kGray_8_SkColorType) { in test_codec()
234 SkImageInfo grayInfo = codec->getInfo(); in test_codec()
240 REPORTER_ASSERT(r, expectedResult == codec->getPixels(grayInfo, in test_codec()
247 test_info(r, codec, grayInfo, expectedResult, &grayDigest); in test_codec()
255 test_info(r, codec, info, expectedResult, digest); in test_codec()
260 test_info(r, codec, info.makeAlphaType(kUnpremul_SkAlphaType), in test_codec()
262 test_info(r, codec, info.makeAlphaType(kPremul_SkAlphaType), in test_codec()
266 test_info(r, codec, info.makeAlphaType(kOpaque_SkAlphaType), in test_codec()
275 test_info(r, codec, info.makeAlphaType(otherAt), expectedResult, nullptr); in test_codec()
295 SkCodec* codec, in check_scanline_decode() argument
308 test_codec(r, path, codec, bm, info, size, expectedResult, codecDigest, nullptr); in check_scanline_decode()
312 test_incremental_decode(r, codec, info, *codecDigest); in check_scanline_decode()
317 test_in_stripes(r, codec, info, *codecDigest); in check_scanline_decode()
322 REPORTER_ASSERT(r, codec->getScanlines(bm.getAddr(0, 0), 1, 0) == 0); in check_scanline_decode()
323 REPORTER_ASSERT(r, !codec->skipScanlines(1)); in check_scanline_decode()
324 const SkCodec::Result startResult = codec->startScanlineDecode(info); in check_scanline_decode()
331 const int lines = codec->getScanlines(bm.getAddr(0, y), 1, 0); in check_scanline_decode()
337 if (SkCodec::kTopDown_SkScanlineOrder == codec->getScanlineOrder()) { in check_scanline_decode()
342 REPORTER_ASSERT(r, codec->getScanlines(bm.getAddr(0, 0), 1, 0) in check_scanline_decode()
348 REPORTER_ASSERT(r, codec->startScanlineDecode(info) == SkCodec::kSuccess); in check_scanline_decode()
349 const int lines = codec->getScanlines(bm.getAddr(0, 0), 1, 0); in check_scanline_decode()
353 REPORTER_ASSERT(r, codec->getPixels(bm.info(), bm.getPixels(), bm.rowBytes()) in check_scanline_decode()
355 REPORTER_ASSERT(r, codec->getScanlines(bm.getAddr(0, 0), 1, 0) in check_scanline_decode()
357 REPORTER_ASSERT(r, codec->skipScanlines(1) in check_scanline_decode()
369 const auto partialStartResult = codec->startScanlineDecode(info, &options); in check_scanline_decode()
373 const int lines = codec->getScanlines(bm.getAddr(0, y), 1, 0); in check_scanline_decode()
385 SkCodec* codec, in check_subset_decode() argument
404 const bool supported = codec->getValidSubset(&subset); in check_subset_decode()
410 const auto result = codec->getPixels(bm.info(), bm.getPixels(), bm.rowBytes(), &opts); in check_subset_decode()
427 std::unique_ptr<SkCodec> codec, in check_android_codec() argument
437 auto androidCodec = SkAndroidCodec::MakeFromCodec(std::move(codec)); in check_android_codec()
473 std::unique_ptr<SkCodec> codec = SkCodec::MakeFromStream(std::move(bufferedStream)); in check_codec_image_generator() local
474 REPORTER_ASSERT(r, codec); in check_codec_image_generator()
475 if (codec) { in check_codec_image_generator()
476 test_info(r, codec.get(), info, SkCodec::kSuccess, &codecDigest); in check_codec_image_generator()
501 std::unique_ptr<SkCodec> codec; in check() local
504 codec = SkCodec::MakeFromData(SkData::MakeFromStream(stream.get(), 2 * length / 3)); in check()
506 codec = SkCodec::MakeFromStream(std::move(stream)); in check()
508 if (!codec) { in check()
513 const SkImageInfo info = codec->getInfo().makeColorType(kN32_SkColorType); in check()
517 check_scanline_decode(r, codec.get(), &codecDigest, info, path, size, supportsScanlineDecoding, in check()
520 check_subset_decode(r, codec.get(), info, size, supportsSubsetDecoding, supportsIncomplete); in check()
522 check_android_codec(r, std::move(codec), codecDigest, info, path, size, in check()
642 std::unique_ptr<SkAndroidCodec> codec(SkAndroidCodec::MakeFromStream(std::move(stream))); in test_dimensions() local
643 if (!codec) { in test_dimensions()
651 SkISize scaledDims = codec->getSampledDimensions(sampleSize); in test_dimensions()
652 SkImageInfo scaledInfo = codec->getInfo() in test_dimensions()
664 codec->getAndroidPixels(scaledInfo, pixels.get(), rowBytes, &options); in test_dimensions()
866 std::unique_ptr<SkCodec> codec(SkCodec::MakeFromData(wStream.detachAsData(), &chunkReader)); in DEF_TEST() local
867 REPORTER_ASSERT(r, codec); in DEF_TEST()
868 if (!codec) { in DEF_TEST()
874 decodedBm.setInfo(codec->getInfo()); in DEF_TEST()
876 SkCodec::Result result = codec->getPixels(codec->getInfo(), decodedBm.getPixels(), in DEF_TEST()
897 result = codec->getPixels(codec->getInfo(), decodedBm.getPixels(), decodedBm.rowBytes()); in DEF_TEST()
940 std::unique_ptr<SkCodec> codec(SkCodec::MakeFromStream( in DEF_TEST() local
942 REPORTER_ASSERT(r, codec); in DEF_TEST()
944 test_info(r, codec.get(), codec->getInfo(), SkCodec::kSuccess, nullptr); in DEF_TEST()
959 std::unique_ptr<SkCodec> codec(SkCodec::MakeFromStream( in DEF_TEST() local
961 REPORTER_ASSERT(r, codec); in DEF_TEST()
963 test_info(r, codec.get(), codec->getInfo(), SkCodec::kSuccess, nullptr); in DEF_TEST()
966 codec = SkCodec::MakeFromStream(std::make_unique<LimitedPeekingMemStream>(data, 0)); in DEF_TEST()
967 REPORTER_ASSERT(r, codec); in DEF_TEST()
969 test_info(r, codec.get(), codec->getInfo(), SkCodec::kSuccess, nullptr); in DEF_TEST()
989 std::unique_ptr<SkCodec> codec(SkCodec::MakeFromData(data)); in DEF_TEST() local
990 REPORTER_ASSERT(r, codec); in DEF_TEST()
991 if (!codec) { in DEF_TEST()
994 test_info(r, codec.get(), codec->getInfo(), SkCodec::kSuccess, nullptr); in DEF_TEST()
1007 std::unique_ptr<SkCodec> codec(SkCodec::MakeFromStream(std::move(stream))); in DEF_TEST() local
1009 REPORTER_ASSERT(r, codec); in DEF_TEST()
1010 if (!codec) return; in DEF_TEST()
1012 REPORTER_ASSERT(r, codec->getInfo().width() == 65535); in DEF_TEST()
1013 REPORTER_ASSERT(r, codec->getInfo().height() == 65535); in DEF_TEST()
1021 codec = SkCodec::MakeFromStream(std::move(stream)); in DEF_TEST()
1023 REPORTER_ASSERT(r, !codec); in DEF_TEST()
1034 std::unique_ptr<SkAndroidCodec> codec(SkAndroidCodec::MakeFromData(data)); in DEF_TEST() local
1035 if (!codec) { in DEF_TEST()
1040 const int width = codec->getInfo().width(); in DEF_TEST()
1041 const int height = codec->getInfo().height(); in DEF_TEST()
1048 auto sampledInfo = codec->getInfo().makeWH(width / 12, height / 12); in DEF_TEST()
1049 auto result = codec->getAndroidPixels(sampledInfo, pixelStorage.get(), rowBytes, &opts); in DEF_TEST()
1053 result = codec->getPixels(codec->getInfo(), pixelStorage.get(), rowBytes); in DEF_TEST()
1061 result = codec->getAndroidPixels(codec->getInfo().makeWH(100, 100), pixelStorage.get(), in DEF_TEST()
1072 result = codec->getAndroidPixels(codec->getInfo(), pixelStorage.get(), rowBytes, &opts); in DEF_TEST()
1077 … std::unique_ptr<SkAndroidCodec> codec(SkAndroidCodec::MakeFromStream(GetResourceAsStream(path))); in check_color_xform() local
1081 const int subsetWidth = codec->getInfo().width() / 2; in check_color_xform()
1082 const int subsetHeight = codec->getInfo().height() / 2; in check_color_xform()
1089 SkImageInfo dstInfo = codec->getInfo().makeWH(dstWidth, dstHeight) in check_color_xform()
1095 SkCodec::Result result = codec->getAndroidPixels(dstInfo, pixelStorage.get(), rowBytes, &opts); in check_color_xform()
1136 std::unique_ptr<SkCodec> codec(SkCodec::MakeFromData(stream.detachAsData())); in check_round_trip() local
1137 REPORTER_ASSERT(r, color_type_match(info.colorType(), codec->getInfo().colorType())); in check_round_trip()
1138 REPORTER_ASSERT(r, alpha_type_match(info.alphaType(), codec->getInfo().alphaType())); in check_round_trip()
1142 result = codec->getPixels(info, bm2.getPixels(), bm2.rowBytes()); in check_round_trip()
1149 auto codec = SkCodec::MakeFromStream(GetResourceAsStream("images/mandrill_512_q075.jpg")); in DEF_TEST() local
1155 SkImageInfo newInfo = codec->getInfo().makeColorType(colorType); in DEF_TEST()
1156 check_round_trip(r, codec.get(), newInfo); in DEF_TEST()
1159 codec = SkCodec::MakeFromStream(GetResourceAsStream("images/grayscale.jpg")); in DEF_TEST()
1160 check_round_trip(r, codec.get(), codec->getInfo()); in DEF_TEST()
1162 codec = SkCodec::MakeFromStream(GetResourceAsStream("images/yellow_rose.png")); in DEF_TEST()
1173 SkImageInfo newInfo = codec->getInfo().makeColorType(colorType) in DEF_TEST()
1176 check_round_trip(r, codec.get(), newInfo); in DEF_TEST()
1180 codec = SkCodec::MakeFromStream(GetResourceAsStream("images/index8.png")); in DEF_TEST()
1183 SkImageInfo newInfo = codec->getInfo().makeAlphaType(alphaType) in DEF_TEST()
1185 check_round_trip(r, codec.get(), newInfo); in DEF_TEST()
1197 std::unique_ptr<SkCodec> codec(SkCodec::MakeFromStream(std::move(stream))); in test_conversion_possible() local
1198 if (!codec) { in test_conversion_possible()
1203 SkImageInfo infoF16 = codec->getInfo().makeColorType(kRGBA_F16_SkColorType); in test_conversion_possible()
1207 SkCodec::Result result = codec->getPixels(infoF16, bm.getPixels(), bm.rowBytes()); in test_conversion_possible()
1210 result = codec->startScanlineDecode(infoF16); in test_conversion_possible()
1218 result = codec->startIncrementalDecode(infoF16, bm.getPixels(), bm.rowBytes()); in test_conversion_possible()
1227 result = codec->getPixels(infoF16, bm.getPixels(), bm.rowBytes()); in test_conversion_possible()
1229 result = codec->startScanlineDecode(infoF16); in test_conversion_possible()
1236 result = codec->startIncrementalDecode(infoF16, bm.getPixels(), bm.rowBytes()); in test_conversion_possible()
1250 static void decode_frame(skiatest::Reporter* r, SkCodec* codec, size_t frame) { in decode_frame() argument
1252 auto info = codec->getInfo().makeColorType(kN32_SkColorType); in decode_frame()
1257 REPORTER_ASSERT(r, SkCodec::kSuccess == codec->getPixels(info, in decode_frame()
1274 std::unique_ptr<SkCodec> codec(SkCodec::MakeFromStream(std::move(streamObj))); in DEF_TEST() local
1275 if (!codec) { in DEF_TEST()
1285 decode_frame(r, codec.get(), 0); in DEF_TEST()
1291 auto frameInfo = codec->getFrameInfo(); in DEF_TEST()
1359 std::unique_ptr<SkCodec> codec(SkCodec::MakeFromStream(std::move(stream))); in DEF_TEST() local
1360 if (!codec) { in DEF_TEST()
1365 SkImageInfo info = codec->getInfo().makeColorType(kN32_SkColorType); in DEF_TEST()
1369 if (SkCodec::kUnimplemented != codec->startIncrementalDecode(info, bm.getPixels(), in DEF_TEST()
1376 SkCodec::Result result = codec->startScanlineDecode(info); in DEF_TEST()
1390 std::unique_ptr<SkCodec> codec(SkCodec::MakeFromStream(std::move(stream))); in seek_and_decode() local
1391 if (!codec) { in seek_and_decode()
1398 (void) codec->getFrameCount(); in seek_and_decode()
1400 SkImageInfo info = codec->getInfo().makeColorType(kN32_SkColorType); in seek_and_decode()
1403 auto result = codec->getPixels(bm.pixmap()); in seek_and_decode()
1430 std::unique_ptr<SkAndroidCodec> codec(SkAndroidCodec::MakeFromStream(std::move(stream))); in DEF_TEST() local
1431 if (!codec) { in DEF_TEST()
1438 auto size = codec->getSampledDimensions(opts.fSampleSize); in DEF_TEST()
1439 auto info = codec->getInfo().makeDimensions(size).makeColorType(kN32_SkColorType); in DEF_TEST()
1442 auto result = codec->getAndroidPixels(info, bm.getPixels(), bm.rowBytes(), &opts); in DEF_TEST()
1445 info = codec->getInfo().makeColorType(kN32_SkColorType); in DEF_TEST()
1448 result = codec->getAndroidPixels(info, bm.getPixels(), bm.rowBytes(), &opts); in DEF_TEST()
1460 std::unique_ptr<SkCodec> codec(SkCodec::MakeFromData(SkData::MakeFromStream(stream.get(), 99))); in DEF_TEST() local
1461 if (!codec) { in DEF_TEST()
1466 auto info = codec->getInfo().makeColorType(kN32_SkColorType); in DEF_TEST()
1469 auto result = codec->startIncrementalDecode(info, bm.getPixels(), bm.rowBytes()); in DEF_TEST()
1475 result = codec->incrementalDecode(&rowsDecoded); in DEF_TEST()
1487 std::unique_ptr<SkCodec> codec(SkCodec::MakeFromStream(std::move(stream))); in test_invalid_images() local
1488 REPORTER_ASSERT(r, codec); in test_invalid_images()
1490 test_info(r, codec.get(), codec->getInfo().makeColorType(kN32_SkColorType), expectedResult, in test_invalid_images()
1524 std::unique_ptr<SkCodec> codec(SkCodec::MakeFromStream(std::move(stream))); in test_invalid_header() local
1525 REPORTER_ASSERT(r, !codec); in test_invalid_header()
1611 std::unique_ptr<SkCodec> codec(SkCodec::MakeFromStream(std::move(stream))); in DEF_TEST() local
1612 REPORTER_ASSERT(r, codec); in DEF_TEST()
1613 if (!codec) { in DEF_TEST()
1617 const auto info = codec->getInfo().makeColorType(kN32_SkColorType); in DEF_TEST()
1621 auto frameInfos = codec->getFrameInfo(); in DEF_TEST()
1627 auto result = codec->startIncrementalDecode(info, bm.getPixels(), bm.rowBytes(), &opts); in DEF_TEST()
1635 codec->incrementalDecode(); in DEF_TEST()
1709 std::unique_ptr<SkCodec> codec = SkCodec::MakeFromData(std::move(subset)); in DEF_TEST() local
1710 if (!codec) { in DEF_TEST()
1716 test_info(r, codec.get(), codec->getInfo(), SkCodec::kInvalidInput, nullptr); in DEF_TEST()
1768 auto codec = SkAndroidCodec::MakeFromCodec(SkCodec::MakeFromData(data)); in DEF_TEST() local
1769 if (!codec) { in DEF_TEST()
1778 const auto size = codec->getSampledDimensions(kSampleSize); in DEF_TEST()
1779 auto info = codec->getInfo().makeDimensions(size); in DEF_TEST()
1786 auto result = codec->getAndroidPixels(info, bm.getPixels(), bm.rowBytes(), &options); in DEF_TEST()
1804 auto codec = SkCodec::MakeFromData(std::move(data)); in DEF_TEST() local
1805 auto info = codec->getInfo().makeColorType(kAlpha_8_SkColorType); in DEF_TEST()
1808 REPORTER_ASSERT(r, codec->getPixels(bm.pixmap()) == SkCodec::kInvalidConversion); in DEF_TEST()
1853 auto codec = SkCodec::MakeFromData(std::move(data)); in DEF_TEST() local
1854 SkImageInfo info = codec->getInfo().makeColorType(kRGBA_F16_SkColorType) in DEF_TEST()
1856 test_info(r, codec.get(), info, SkCodec::kSuccess, nullptr); in DEF_TEST()
1877 auto codec = SkCodec::MakeFromData(std::move(data)); in DEF_TEST() local
1878 if (!codec) { in DEF_TEST()
1883 const auto* profile = codec->getICCProfile(); in DEF_TEST()
1892 SkImageInfo info = codec->getInfo().makeColorSpace(nullptr); in DEF_TEST()
1895 if (codec->getPixels(info, bm.getPixels(), bm.rowBytes()) != SkCodec::kSuccess) { in DEF_TEST()
1914 std::unique_ptr<SkCodec> codec(SkCodec::MakeFromData(stream.detachAsData())); in DEF_TEST() local
1917 bool success = codec->getPixels(dstInfo, dstBm.getPixels(), dstBm.rowBytes()); in DEF_TEST()
1932 auto codec = SkCodec::MakeFromStream(std::make_unique<SkMemoryStream>(data), in DEF_TEST() local
1935 REPORTER_ASSERT(r, codec->getFrameCount() == 60); in DEF_TEST()
1936 const auto info = codec->getInfo(); in DEF_TEST()
1941 SkCodec::Result result = codec->getPixels(info, bm.getPixels(), bm.rowBytes()); in DEF_TEST()
1946 auto codec = SkCodec::MakeFromStream(std::make_unique<NonseekableStream>(std::move(data)), in DEF_TEST() local
1949 REPORTER_ASSERT(r, codec->getFrameCount() == 1); in DEF_TEST()
1951 test_info(r, codec.get(), codec->getInfo(), SkCodec::kSuccess, &goodDigest); in DEF_TEST()
1968 auto codec = SkCodec::MakeFromStream(std::make_unique<SkMemoryStream>(data), in DEF_TEST() local
1971 REPORTER_ASSERT(r, codec->getFrameCount() == 60); in DEF_TEST()
1972 const auto info = codec->getInfo(); in DEF_TEST()
1977 SkCodec::Result result = codec->getPixels(info, bm.getPixels(), bm.rowBytes(), &options); in DEF_TEST()
1983 auto codec = SkCodec::MakeFromStream(std::make_unique<NonseekableStream>(std::move(data)), in DEF_TEST() local
1986 REPORTER_ASSERT(r, codec->getFrameCount() == 60); in DEF_TEST()
1989 bm.allocPixels(codec->getInfo()); in DEF_TEST()
1991 SkCodec::Result result = codec->getPixels(codec->getInfo(), bm.getPixels(), bm.rowBytes(), in DEF_TEST()
2006 auto codec = SkGifDecoder::Decode(std::make_unique<SkMemoryStream>(std::move(data)), in DEF_TEST() local
2009 REPORTER_ASSERT(r, codec); in DEF_TEST()
2011 auto [image, res] = codec->getImage(); in DEF_TEST()
2030 auto codec = SkGifDecoder::Decode(data, &result, nullptr); in DEF_TEST() local
2032 REPORTER_ASSERT(r, codec); in DEF_TEST()
2034 sk_sp<SkImage> image = SkCodecs::DeferredImage(std::move(codec), kPremul_SkAlphaType); in DEF_TEST()
2063 auto codec = SkJpegDecoder::Decode(std::move(stream), &result, nullptr); in DEF_TEST() local
2065 REPORTER_ASSERT(r, codec); in DEF_TEST()
2067 sk_sp<SkImage> image = SkCodecs::DeferredImage(std::move(codec), kUnpremul_SkAlphaType); in DEF_TEST()