Lines Matching refs:codec
97 static void test_info(skiatest::Reporter* r, Codec* codec, const SkImageInfo& info, in test_info() argument
102 SkCodec::Result result = codec->getPixels(info, bm.getPixels(), bm.rowBytes()); in test_info()
122 static void test_incremental_decode(skiatest::Reporter* r, SkCodec* codec, const SkImageInfo& info, in test_incremental_decode() argument
127 REPORTER_ASSERT(r, SkCodec::kSuccess == codec->startIncrementalDecode(info, bm.getPixels(), in test_incremental_decode()
130 REPORTER_ASSERT(r, SkCodec::kSuccess == codec->incrementalDecode()); in test_incremental_decode()
136 static void test_in_stripes(skiatest::Reporter* r, SkCodec* codec, const SkImageInfo& info, in test_in_stripes() argument
161 if (SkCodec::kSuccess != codec->startIncrementalDecode(info, bm.getAddr(0, y), in test_in_stripes()
167 if (SkCodec::kSuccess != codec->incrementalDecode()) { in test_in_stripes()
178 static void test_codec(skiatest::Reporter* r, const char* path, Codec* codec, SkBitmap& bm, in test_codec() argument
185 SkCodec::Result result = codec->getPixels(info, bm.getPixels(), bm.rowBytes()); in test_codec()
204 auto actualResult = codec->getPixels(info565, bm565.getPixels(), bm565.rowBytes()); in test_codec()
211 test_info(r, codec, info565, expectedResult, &digest565); in test_codec()
220 test_info(r, codec, info565, SkCodec::kInvalidConversion, nullptr); in test_codec()
224 if (codec->getInfo().colorType() == kGray_8_SkColorType) { in test_codec()
225 SkImageInfo grayInfo = codec->getInfo(); in test_codec()
231 REPORTER_ASSERT(r, expectedResult == codec->getPixels(grayInfo, in test_codec()
238 test_info(r, codec, grayInfo, expectedResult, &grayDigest); in test_codec()
246 test_info(r, codec, info, expectedResult, digest); in test_codec()
251 test_info(r, codec, info.makeAlphaType(kUnpremul_SkAlphaType), in test_codec()
253 test_info(r, codec, info.makeAlphaType(kPremul_SkAlphaType), in test_codec()
257 test_info(r, codec, info.makeAlphaType(kOpaque_SkAlphaType), in test_codec()
266 test_info(r, codec, info.makeAlphaType(otherAt), expectedResult, nullptr); in test_codec()
286 SkCodec* codec, in check_scanline_decode() argument
299 test_codec(r, path, codec, bm, info, size, expectedResult, codecDigest, nullptr); in check_scanline_decode()
303 test_incremental_decode(r, codec, info, *codecDigest); in check_scanline_decode()
308 test_in_stripes(r, codec, info, *codecDigest); in check_scanline_decode()
313 REPORTER_ASSERT(r, codec->getScanlines(bm.getAddr(0, 0), 1, 0) == 0); in check_scanline_decode()
314 REPORTER_ASSERT(r, !codec->skipScanlines(1)); in check_scanline_decode()
315 const SkCodec::Result startResult = codec->startScanlineDecode(info); in check_scanline_decode()
322 const int lines = codec->getScanlines(bm.getAddr(0, y), 1, 0); in check_scanline_decode()
328 if (SkCodec::kTopDown_SkScanlineOrder == codec->getScanlineOrder()) { in check_scanline_decode()
333 REPORTER_ASSERT(r, codec->getScanlines(bm.getAddr(0, 0), 1, 0) in check_scanline_decode()
339 REPORTER_ASSERT(r, codec->startScanlineDecode(info) == SkCodec::kSuccess); in check_scanline_decode()
340 const int lines = codec->getScanlines(bm.getAddr(0, 0), 1, 0); in check_scanline_decode()
344 REPORTER_ASSERT(r, codec->getPixels(bm.info(), bm.getPixels(), bm.rowBytes()) in check_scanline_decode()
346 REPORTER_ASSERT(r, codec->getScanlines(bm.getAddr(0, 0), 1, 0) in check_scanline_decode()
348 REPORTER_ASSERT(r, codec->skipScanlines(1) in check_scanline_decode()
360 const auto partialStartResult = codec->startScanlineDecode(info, &options); in check_scanline_decode()
364 const int lines = codec->getScanlines(bm.getAddr(0, y), 1, 0); in check_scanline_decode()
376 SkCodec* codec, in check_subset_decode() argument
395 const bool supported = codec->getValidSubset(&subset); in check_subset_decode()
401 const auto result = codec->getPixels(bm.info(), bm.getPixels(), bm.rowBytes(), &opts); in check_subset_decode()
418 std::unique_ptr<SkCodec> codec, in check_android_codec() argument
428 auto androidCodec = SkAndroidCodec::MakeFromCodec(std::move(codec)); in check_android_codec()
464 std::unique_ptr<SkCodec> codec = SkCodec::MakeFromStream(std::move(bufferedStream)); in check_codec_image_generator() local
465 REPORTER_ASSERT(r, codec); in check_codec_image_generator()
466 if (codec) { in check_codec_image_generator()
467 test_info(r, codec.get(), info, SkCodec::kSuccess, &codecDigest); in check_codec_image_generator()
492 std::unique_ptr<SkCodec> codec; in check() local
495 codec = SkCodec::MakeFromData(SkData::MakeFromStream(stream.get(), 2 * length / 3)); in check()
497 codec = SkCodec::MakeFromStream(std::move(stream)); in check()
499 if (!codec) { in check()
504 const SkImageInfo info = codec->getInfo().makeColorType(kN32_SkColorType); in check()
508 check_scanline_decode(r, codec.get(), &codecDigest, info, path, size, supportsScanlineDecoding, in check()
511 check_subset_decode(r, codec.get(), info, size, supportsSubsetDecoding, supportsIncomplete); in check()
513 check_android_codec(r, std::move(codec), codecDigest, info, path, size, in check()
633 std::unique_ptr<SkAndroidCodec> codec(SkAndroidCodec::MakeFromStream(std::move(stream))); in test_dimensions() local
634 if (!codec) { in test_dimensions()
642 SkISize scaledDims = codec->getSampledDimensions(sampleSize); in test_dimensions()
643 SkImageInfo scaledInfo = codec->getInfo() in test_dimensions()
655 codec->getAndroidPixels(scaledInfo, pixels.get(), rowBytes, &options); in test_dimensions()
855 std::unique_ptr<SkCodec> codec(SkCodec::MakeFromData(wStream.detachAsData(), &chunkReader)); in DEF_TEST() local
856 REPORTER_ASSERT(r, codec); in DEF_TEST()
857 if (!codec) { in DEF_TEST()
863 decodedBm.setInfo(codec->getInfo()); in DEF_TEST()
865 SkCodec::Result result = codec->getPixels(codec->getInfo(), decodedBm.getPixels(), in DEF_TEST()
886 result = codec->getPixels(codec->getInfo(), decodedBm.getPixels(), decodedBm.rowBytes()); in DEF_TEST()
929 std::unique_ptr<SkCodec> codec(SkCodec::MakeFromStream( in DEF_TEST() local
931 REPORTER_ASSERT(r, codec); in DEF_TEST()
933 test_info(r, codec.get(), codec->getInfo(), SkCodec::kSuccess, nullptr); in DEF_TEST()
948 std::unique_ptr<SkCodec> codec(SkCodec::MakeFromStream( in DEF_TEST() local
950 REPORTER_ASSERT(r, codec); in DEF_TEST()
952 test_info(r, codec.get(), codec->getInfo(), SkCodec::kSuccess, nullptr); in DEF_TEST()
955 codec = SkCodec::MakeFromStream(std::make_unique<LimitedPeekingMemStream>(data, 0)); in DEF_TEST()
956 REPORTER_ASSERT(r, codec); in DEF_TEST()
958 test_info(r, codec.get(), codec->getInfo(), SkCodec::kSuccess, nullptr); in DEF_TEST()
978 std::unique_ptr<SkCodec> codec(SkCodec::MakeFromData(data)); in DEF_TEST() local
979 REPORTER_ASSERT(r, codec); in DEF_TEST()
980 if (!codec) { in DEF_TEST()
983 test_info(r, codec.get(), codec->getInfo(), SkCodec::kSuccess, nullptr); in DEF_TEST()
996 std::unique_ptr<SkCodec> codec(SkCodec::MakeFromStream(std::move(stream))); in DEF_TEST() local
998 REPORTER_ASSERT(r, codec); in DEF_TEST()
999 if (!codec) return; in DEF_TEST()
1001 REPORTER_ASSERT(r, codec->getInfo().width() == 65535); in DEF_TEST()
1002 REPORTER_ASSERT(r, codec->getInfo().height() == 65535); in DEF_TEST()
1010 codec = SkCodec::MakeFromStream(std::move(stream)); in DEF_TEST()
1012 REPORTER_ASSERT(r, !codec); in DEF_TEST()
1023 std::unique_ptr<SkAndroidCodec> codec(SkAndroidCodec::MakeFromData(data)); in DEF_TEST() local
1024 if (!codec) { in DEF_TEST()
1029 const int width = codec->getInfo().width(); in DEF_TEST()
1030 const int height = codec->getInfo().height(); in DEF_TEST()
1037 auto sampledInfo = codec->getInfo().makeWH(width / 12, height / 12); in DEF_TEST()
1038 auto result = codec->getAndroidPixels(sampledInfo, pixelStorage.get(), rowBytes, &opts); in DEF_TEST()
1042 result = codec->getPixels(codec->getInfo(), pixelStorage.get(), rowBytes); in DEF_TEST()
1050 result = codec->getAndroidPixels(codec->getInfo().makeWH(100, 100), pixelStorage.get(), in DEF_TEST()
1061 result = codec->getAndroidPixels(codec->getInfo(), pixelStorage.get(), rowBytes, &opts); in DEF_TEST()
1066 … std::unique_ptr<SkAndroidCodec> codec(SkAndroidCodec::MakeFromStream(GetResourceAsStream(path))); in check_color_xform() local
1070 const int subsetWidth = codec->getInfo().width() / 2; in check_color_xform()
1071 const int subsetHeight = codec->getInfo().height() / 2; in check_color_xform()
1078 SkImageInfo dstInfo = codec->getInfo().makeWH(dstWidth, dstHeight) in check_color_xform()
1084 SkCodec::Result result = codec->getAndroidPixels(dstInfo, pixelStorage.get(), rowBytes, &opts); in check_color_xform()
1124 std::unique_ptr<SkCodec> codec(SkCodec::MakeFromData(data)); in check_round_trip() local
1125 REPORTER_ASSERT(r, color_type_match(info.colorType(), codec->getInfo().colorType())); in check_round_trip()
1126 REPORTER_ASSERT(r, alpha_type_match(info.alphaType(), codec->getInfo().alphaType())); in check_round_trip()
1130 result = codec->getPixels(info, bm2.getPixels(), bm2.rowBytes()); in check_round_trip()
1137 auto codec = SkCodec::MakeFromStream(GetResourceAsStream("images/mandrill_512_q075.jpg")); in DEF_TEST() local
1143 SkImageInfo newInfo = codec->getInfo().makeColorType(colorType); in DEF_TEST()
1144 check_round_trip(r, codec.get(), newInfo); in DEF_TEST()
1147 codec = SkCodec::MakeFromStream(GetResourceAsStream("images/grayscale.jpg")); in DEF_TEST()
1148 check_round_trip(r, codec.get(), codec->getInfo()); in DEF_TEST()
1150 codec = SkCodec::MakeFromStream(GetResourceAsStream("images/yellow_rose.png")); in DEF_TEST()
1161 SkImageInfo newInfo = codec->getInfo().makeColorType(colorType) in DEF_TEST()
1164 check_round_trip(r, codec.get(), newInfo); in DEF_TEST()
1168 codec = SkCodec::MakeFromStream(GetResourceAsStream("images/index8.png")); in DEF_TEST()
1171 SkImageInfo newInfo = codec->getInfo().makeAlphaType(alphaType) in DEF_TEST()
1173 check_round_trip(r, codec.get(), newInfo); in DEF_TEST()
1185 std::unique_ptr<SkCodec> codec(SkCodec::MakeFromStream(std::move(stream))); in test_conversion_possible() local
1186 if (!codec) { in test_conversion_possible()
1191 SkImageInfo infoF16 = codec->getInfo().makeColorType(kRGBA_F16_SkColorType); in test_conversion_possible()
1195 SkCodec::Result result = codec->getPixels(infoF16, bm.getPixels(), bm.rowBytes()); in test_conversion_possible()
1198 result = codec->startScanlineDecode(infoF16); in test_conversion_possible()
1206 result = codec->startIncrementalDecode(infoF16, bm.getPixels(), bm.rowBytes()); in test_conversion_possible()
1215 result = codec->getPixels(infoF16, bm.getPixels(), bm.rowBytes()); in test_conversion_possible()
1217 result = codec->startScanlineDecode(infoF16); in test_conversion_possible()
1224 result = codec->startIncrementalDecode(infoF16, bm.getPixels(), bm.rowBytes()); in test_conversion_possible()
1238 static void decode_frame(skiatest::Reporter* r, SkCodec* codec, size_t frame) { in decode_frame() argument
1240 auto info = codec->getInfo().makeColorType(kN32_SkColorType); in decode_frame()
1245 REPORTER_ASSERT(r, SkCodec::kSuccess == codec->getPixels(info, in decode_frame()
1262 std::unique_ptr<SkCodec> codec(SkCodec::MakeFromStream(std::move(streamObj))); in DEF_TEST() local
1263 if (!codec) { in DEF_TEST()
1273 decode_frame(r, codec.get(), 0); in DEF_TEST()
1279 auto frameInfo = codec->getFrameInfo(); in DEF_TEST()
1347 std::unique_ptr<SkCodec> codec(SkCodec::MakeFromStream(std::move(stream))); in DEF_TEST() local
1348 if (!codec) { in DEF_TEST()
1353 SkImageInfo info = codec->getInfo().makeColorType(kN32_SkColorType); in DEF_TEST()
1357 if (SkCodec::kUnimplemented != codec->startIncrementalDecode(info, bm.getPixels(), in DEF_TEST()
1364 SkCodec::Result result = codec->startScanlineDecode(info); in DEF_TEST()
1378 std::unique_ptr<SkCodec> codec(SkCodec::MakeFromStream(std::move(stream))); in seek_and_decode() local
1379 if (!codec) { in seek_and_decode()
1386 (void) codec->getFrameCount(); in seek_and_decode()
1388 SkImageInfo info = codec->getInfo().makeColorType(kN32_SkColorType); in seek_and_decode()
1391 auto result = codec->getPixels(bm.pixmap()); in seek_and_decode()
1418 std::unique_ptr<SkAndroidCodec> codec(SkAndroidCodec::MakeFromStream(std::move(stream))); in DEF_TEST() local
1419 if (!codec) { in DEF_TEST()
1426 auto size = codec->getSampledDimensions(opts.fSampleSize); in DEF_TEST()
1427 auto info = codec->getInfo().makeDimensions(size).makeColorType(kN32_SkColorType); in DEF_TEST()
1430 auto result = codec->getAndroidPixels(info, bm.getPixels(), bm.rowBytes(), &opts); in DEF_TEST()
1433 info = codec->getInfo().makeColorType(kN32_SkColorType); in DEF_TEST()
1436 result = codec->getAndroidPixels(info, bm.getPixels(), bm.rowBytes(), &opts); in DEF_TEST()
1448 std::unique_ptr<SkCodec> codec(SkCodec::MakeFromData(SkData::MakeFromStream(stream.get(), 99))); in DEF_TEST() local
1449 if (!codec) { in DEF_TEST()
1454 auto info = codec->getInfo().makeColorType(kN32_SkColorType); in DEF_TEST()
1457 auto result = codec->startIncrementalDecode(info, bm.getPixels(), bm.rowBytes()); in DEF_TEST()
1463 result = codec->incrementalDecode(&rowsDecoded); in DEF_TEST()
1475 std::unique_ptr<SkCodec> codec(SkCodec::MakeFromStream(std::move(stream))); in test_invalid_images() local
1476 REPORTER_ASSERT(r, codec); in test_invalid_images()
1478 test_info(r, codec.get(), codec->getInfo().makeColorType(kN32_SkColorType), expectedResult, in test_invalid_images()
1499 std::unique_ptr<SkCodec> codec(SkCodec::MakeFromStream(std::move(stream))); in test_invalid_header() local
1500 REPORTER_ASSERT(r, !codec); in test_invalid_header()
1586 std::unique_ptr<SkCodec> codec(SkCodec::MakeFromStream(std::move(stream))); in DEF_TEST() local
1587 REPORTER_ASSERT(r, codec); in DEF_TEST()
1588 if (!codec) { in DEF_TEST()
1592 const auto info = codec->getInfo().makeColorType(kN32_SkColorType); in DEF_TEST()
1596 auto frameInfos = codec->getFrameInfo(); in DEF_TEST()
1602 auto result = codec->startIncrementalDecode(info, bm.getPixels(), bm.rowBytes(), &opts); in DEF_TEST()
1610 codec->incrementalDecode(); in DEF_TEST()
1684 std::unique_ptr<SkCodec> codec = SkCodec::MakeFromData(std::move(subset)); in DEF_TEST() local
1685 if (!codec) { in DEF_TEST()
1691 test_info(r, codec.get(), codec->getInfo(), SkCodec::kInvalidInput, nullptr); in DEF_TEST()
1790 auto codec = SkAndroidCodec::MakeFromCodec(SkCodec::MakeFromData(data)); in DEF_TEST() local
1791 if (!codec) { in DEF_TEST()
1800 const auto size = codec->getSampledDimensions(kSampleSize); in DEF_TEST()
1801 auto info = codec->getInfo().makeDimensions(size); in DEF_TEST()
1808 auto result = codec->getAndroidPixels(info, bm.getPixels(), bm.rowBytes(), &options); in DEF_TEST()
1826 auto codec = SkCodec::MakeFromData(std::move(data)); in DEF_TEST() local
1827 auto info = codec->getInfo().makeColorType(kAlpha_8_SkColorType); in DEF_TEST()
1830 REPORTER_ASSERT(r, codec->getPixels(bm.pixmap()) == SkCodec::kInvalidConversion); in DEF_TEST()
1875 auto codec = SkCodec::MakeFromData(std::move(data)); in DEF_TEST() local
1876 SkImageInfo info = codec->getInfo().makeColorType(kRGBA_F16_SkColorType) in DEF_TEST()
1878 test_info(r, codec.get(), info, SkCodec::kSuccess, nullptr); in DEF_TEST()
1899 auto codec = SkCodec::MakeFromData(std::move(data)); in DEF_TEST() local
1900 if (!codec) { in DEF_TEST()
1905 const auto* profile = codec->getICCProfile(); in DEF_TEST()
1914 SkImageInfo info = codec->getInfo().makeColorSpace(nullptr); in DEF_TEST()
1917 if (codec->getPixels(info, bm.getPixels(), bm.rowBytes()) != SkCodec::kSuccess) { in DEF_TEST()