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

Commit 9bbeca90 authored by Dichen Zhang's avatar Dichen Zhang
Browse files

JPEG/R Optimization: Remove memcpy for the HDR input

Bug: 264715926
Test: manual test with camera / display app
Change-Id: Ibec6a88b7678e4ce432417bb0e2b7f5d0c274c3f
parent d8811815
Loading
Loading
Loading
Loading
+2 −9
Original line number Diff line number Diff line
@@ -299,14 +299,8 @@ status_t JpegRCompositeStream::processInputFrame(nsecs_t ts, const InputFrame &i
    p010.height = inputFrame.p010Buffer.height;
    p010.width = inputFrame.p010Buffer.width;
    p010.colorGamut = jpegrecoverymap::jpegr_color_gamut::JPEGR_COLORGAMUT_BT2100;
    size_t yChannelSizeInByte = p010.width * p010.height * 2;
    size_t uvChannelSizeInByte = p010.width * p010.height;
    p010.data = new uint8_t[yChannelSizeInByte + uvChannelSizeInByte];
    std::unique_ptr<uint8_t[]> p010_data;
    p010_data.reset(reinterpret_cast<uint8_t*>(p010.data));
    memcpy((uint8_t*)p010.data, inputFrame.p010Buffer.data, yChannelSizeInByte);
    memcpy((uint8_t*)p010.data + yChannelSizeInByte, inputFrame.p010Buffer.dataCb,
           uvChannelSizeInByte);
    p010.data = inputFrame.p010Buffer.data;
    p010.chroma_data = inputFrame.p010Buffer.dataCb;

    jpegR.data = dstBuffer;
    jpegR.maxLength = maxJpegRBufferSize;
@@ -367,7 +361,6 @@ status_t JpegRCompositeStream::processInputFrame(nsecs_t ts, const InputFrame &i
    }

    actualJpegRSize = jpegR.length;
    p010_data.release();

    size_t finalJpegRSize = actualJpegRSize + sizeof(CameraBlob);
    if (finalJpegRSize > maxJpegRBufferSize) {