Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c1d4244a authored by Ram Mohan's avatar Ram Mohan Committed by Dichen Zhang
Browse files

ultrahdr: minor fixes in encoder and decoder fuzzer

- Moved declarations to header so that fuzzer app can make use of it.
- Fixed alloc, initializations in fuzzer applications

Bug: 294218453
Test: ./ultrahdr_enc_fuzzer

Change-Id: I058200caca57a8f7fe0087f9511d19857a4abef4
parent bc307122
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -54,7 +54,7 @@ void UltraHdrDecFuzzer::process() {
    std::cout << "input buffer size " << jpegImgR.length << std::endl;
    std::cout << "input buffer size " << jpegImgR.length << std::endl;
    std::cout << "image dimensions " << info.width << " x " << info.width << std::endl;
    std::cout << "image dimensions " << info.width << " x " << info.width << std::endl;
#endif
#endif
    size_t outSize = info.width * info.height * ((of == ULTRAHDR_OUTPUT_SDR) ? 4 : 8);
    size_t outSize = info.width * info.height * ((of == ULTRAHDR_OUTPUT_HDR_LINEAR) ? 8 : 4);
    jpegr_uncompressed_struct decodedJpegR;
    jpegr_uncompressed_struct decodedJpegR;
    auto decodedRaw = std::make_unique<uint8_t[]>(outSize);
    auto decodedRaw = std::make_unique<uint8_t[]>(outSize);
    decodedJpegR.data = decodedRaw.get();
    decodedJpegR.data = decodedRaw.get();
+5 −3
Original line number Original line Diff line number Diff line
@@ -60,11 +60,12 @@ void UltraHdrEncFuzzer::fillP010Buffer(uint16_t* data, int width, int height, in
    uint16_t* tmp = data;
    uint16_t* tmp = data;
    std::vector<uint16_t> buffer(16);
    std::vector<uint16_t> buffer(16);
    for (int i = 0; i < buffer.size(); i++) {
    for (int i = 0; i < buffer.size(); i++) {
        buffer[i] = mFdp.ConsumeIntegralInRange<int>(0, (1 << 10) - 1);
        buffer[i] = (mFdp.ConsumeIntegralInRange<int>(0, (1 << 10) - 1)) << 6;
    }
    }
    for (int j = 0; j < height; j++) {
    for (int j = 0; j < height; j++) {
        for (int i = 0; i < width; i += buffer.size()) {
        for (int i = 0; i < width; i += buffer.size()) {
            memcpy(data + i, buffer.data(), std::min((int)buffer.size(), (width - i)));
            memcpy(tmp + i, buffer.data(),
                   std::min((int)buffer.size(), (width - i)) * sizeof(*data));
            std::shuffle(buffer.begin(), buffer.end(),
            std::shuffle(buffer.begin(), buffer.end(),
                         std::default_random_engine(std::random_device{}()));
                         std::default_random_engine(std::random_device{}()));
        }
        }
@@ -264,7 +265,8 @@ void UltraHdrEncFuzzer::process() {
            jpegr_info_struct info{0, 0, &iccData, &exifData};
            jpegr_info_struct info{0, 0, &iccData, &exifData};
            status = jpegHdr.getJPEGRInfo(&jpegImgR, &info);
            status = jpegHdr.getJPEGRInfo(&jpegImgR, &info);
            if (status == android::OK) {
            if (status == android::OK) {
                size_t outSize = info.width * info.height * ((of == ULTRAHDR_OUTPUT_SDR) ? 4 : 8);
                size_t outSize =
                        info.width * info.height * ((of == ULTRAHDR_OUTPUT_HDR_LINEAR) ? 8 : 4);
                jpegr_uncompressed_struct decodedJpegR;
                jpegr_uncompressed_struct decodedJpegR;
                auto decodedRaw = std::make_unique<uint8_t[]>(outSize);
                auto decodedRaw = std::make_unique<uint8_t[]>(outSize);
                decodedJpegR.data = decodedRaw.get();
                decodedJpegR.data = decodedRaw.get();