| 672 | } |
| 673 | |
| 674 | AvifRwData Encode(const avifImage* image, int speed, int quality) { |
| 675 | EncoderPtr encoder(avifEncoderCreate()); |
| 676 | if (!encoder) return {}; |
| 677 | encoder->speed = speed; |
| 678 | encoder->quality = quality; |
| 679 | encoder->qualityAlpha = quality; |
| 680 | encoder->qualityGainMap = quality; |
| 681 | testutil::AvifRwData bytes; |
| 682 | if (avifEncoderWrite(encoder.get(), image, &bytes) != AVIF_RESULT_OK) { |
| 683 | return {}; |
| 684 | } |
| 685 | return bytes; |
| 686 | } |
| 687 | |
| 688 | ImagePtr Decode(const uint8_t* bytes, size_t num_bytes) { |
| 689 | ImagePtr decoded(avifImageCreateEmpty()); |