Lines Matching +full:test +full:. +full:rawimg
5 * you may not use this file except in compliance with the License.
8 * http://www.apache.org/licenses/LICENSE-2.0
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * limitations under the License.
18 #include <windows.h>
20 #include <sys/time.h>
22 #include <gtest/gtest.h>
27 #include "ultrahdr_api.h"
29 #include "ultrahdr/ultrahdrcommon.h"
30 #include "ultrahdr/jpegr.h"
31 #include "ultrahdr/jpegrutils.h"
39 const char* kYCbCrP010FileName = "/data/local/tmp/raw_p010_image.p010";
40 const char* kYCbCr420FileName = "/data/local/tmp/raw_yuv420_image.yuv420";
41 const char* kSdrJpgFileName = "/data/local/tmp/jpeg_image.jpg";
43 const char* kYCbCrP010FileName = "./data/raw_p010_image.p010";
44 const char* kYCbCr420FileName = "./data/raw_yuv420_image.yuv420";
45 const char* kSdrJpgFileName = "./data/jpeg_image.jpg";
60 * UhdrUnCompressedStructWrapper rawImg(width, height, YCbCr_p010);
61 * rawImg.setImageColorGamut(colorGamut));
62 * rawImg.setImageStride(strideLuma, strideChroma); // optional
63 * rawImg.setChromaMode(false); // optional
64 * rawImg.allocateMemory();
65 * rawImg.loadRawResource(kYCbCrP010FileName);
91 * rawImg.allocateMemory();
111 mImg.data = nullptr; in UhdrUnCompressedStructWrapper()
112 mImg.width = width; in UhdrUnCompressedStructWrapper()
113 mImg.height = height; in UhdrUnCompressedStructWrapper()
114 mImg.colorGamut = ULTRAHDR_COLORGAMUT_UNSPECIFIED; in UhdrUnCompressedStructWrapper()
115 mImg.chroma_data = nullptr; in UhdrUnCompressedStructWrapper()
116 mImg.luma_stride = 0; in UhdrUnCompressedStructWrapper()
117 mImg.chroma_stride = 0; in UhdrUnCompressedStructWrapper()
123 if (mLumaData.get() != nullptr) { in setChromaMode()
133 if (mLumaData.get() != nullptr) { in setImageStride()
138 if (lumaStride < mImg.width) { in setImageStride()
142 mImg.luma_stride = lumaStride; in setImageStride()
145 if (mFormat == YCbCr_p010 && chromaStride < mImg.width) { in setImageStride()
149 if (mFormat == YCbCr_420 && chromaStride < (mImg.width >> 1)) { in setImageStride()
153 mImg.chroma_stride = chromaStride; in setImageStride()
159 if (mLumaData.get() != nullptr) { in setImageColorGamut()
163 mImg.colorGamut = colorGamut; in setImageColorGamut()
168 if (mImg.width == 0 || (mImg.width % 2 != 0) || mImg.height == 0 || (mImg.height % 2 != 0) || in allocateMemory()
173 int lumaStride = mImg.luma_stride == 0 ? mImg.width : mImg.luma_stride; in allocateMemory()
174 int lumaSize = lumaStride * mImg.height * (mFormat == YCbCr_p010 ? 2 : 1); in allocateMemory()
175 int chromaSize = (mImg.height >> 1) * (mFormat == YCbCr_p010 ? 2 : 1); in allocateMemory()
179 if (mImg.chroma_stride == 0) { in allocateMemory()
184 chromaSize *= mImg.chroma_stride; in allocateMemory()
186 chromaSize *= (mImg.chroma_stride * 2); in allocateMemory()
191 mImg.data = mLumaData.get(); in allocateMemory()
192 mImg.chroma_data = nullptr; in allocateMemory()
195 mImg.data = mLumaData.get(); in allocateMemory()
197 mImg.chroma_data = mChromaData.get(); in allocateMemory()
203 if (!mImg.data) { in loadRawResource()
208 if (ifd.good()) { in loadRawResource()
210 int size = ifd.tellg(); in loadRawResource()
211 int length = mImg.width * mImg.height * bpp * 3 / 2; // 2x2 subsampling in loadRawResource()
217 ifd.seekg(0, std::ios::beg); in loadRawResource()
218 size_t lumaStride = mImg.luma_stride == 0 ? mImg.width : mImg.luma_stride; in loadRawResource()
219 char* mem = static_cast<char*>(mImg.data); in loadRawResource()
220 for (size_t i = 0; i < mImg.height; i++) { in loadRawResource()
221 ifd.read(mem, mImg.width * bpp); in loadRawResource()
225 mem = static_cast<char*>(mImg.chroma_data); in loadRawResource()
232 chromaStride = mImg.chroma_stride == 0 ? lumaStride : mImg.chroma_stride; in loadRawResource()
234 chromaStride = mImg.chroma_stride == 0 ? (lumaStride / 2) : mImg.chroma_stride; in loadRawResource()
238 for (size_t i = 0; i < mImg.height / 2; i++) { in loadRawResource()
239 ifd.read(mem, mImg.width * 2); in loadRawResource()
243 for (size_t i = 0; i < mImg.height / 2; i++) { in loadRawResource()
244 ifd.read(mem, (mImg.width / 2)); in loadRawResource()
247 for (size_t i = 0; i < mImg.height / 2; i++) { in loadRawResource()
248 ifd.read(mem, (mImg.width / 2)); in loadRawResource()
272 mImg.data = mData.get(); in allocateMemory()
273 mImg.length = 0; in allocateMemory()
274 mImg.maxLength = maxLength; in allocateMemory()
283 if (ofd.is_open()) { in writeFile()
284 ofd.write(static_cast<char*>(result), length); in writeFile()
294 if (ifd.good()) { in readFile()
295 length = ifd.tellg(); in readFile()
300 ifd.seekg(0, std::ios::beg); in readFile()
301 ifd.read(static_cast<char*>(result), length); in readFile()
339 ASSERT_EQ(JPEGR_NO_ERROR, jpegHdr.getJPEGRInfo(img, &info)); in decodeJpegRImg()
340 ASSERT_EQ(kImageWidth, info.width); in decodeJpegRImg()
341 ASSERT_EQ(kImageHeight, info.height); in decodeJpegRImg()
342 size_t outSize = info.width * info.height * 8; in decodeJpegRImg()
345 destImage.data = data.get(); in decodeJpegRImg()
346 ASSERT_EQ(JPEGR_NO_ERROR, jpegHdr.decodeJPEGR(img, &destImage)); in decodeJpegRImg()
347 ASSERT_EQ(kImageWidth, destImage.width); in decodeJpegRImg()
348 ASSERT_EQ(kImageHeight, destImage.height); in decodeJpegRImg()
350 if (!writeFile(outFileName, destImage.data, outSize)) { in decodeJpegRImg()
356 uhdr_image.data = img->data; in decodeJpegRImg()
357 uhdr_image.data_sz = img->length; in decodeJpegRImg()
358 uhdr_image.capacity = img->length; in decodeJpegRImg()
359 uhdr_image.cg = UHDR_CG_UNSPECIFIED; in decodeJpegRImg()
360 uhdr_image.ct = UHDR_CT_UNSPECIFIED; in decodeJpegRImg()
361 uhdr_image.range = UHDR_CR_UNSPECIFIED; in decodeJpegRImg()
363 ASSERT_EQ(UHDR_CODEC_OK, status.error_code) << status.detail; in decodeJpegRImg()
365 ASSERT_EQ(UHDR_CODEC_OK, status.error_code) << status.detail; in decodeJpegRImg()
368 ASSERT_EQ(map_internal_cg_to_cg(destImage.colorGamut), raw_image->cg); in decodeJpegRImg()
369 ASSERT_EQ(destImage.width, raw_image->w); in decodeJpegRImg()
370 ASSERT_EQ(destImage.height, raw_image->h); in decodeJpegRImg()
372 char* refData = static_cast<char*>(destImage.data); in decodeJpegRImg()
375 const size_t refStride = destImage.width * bpp; in decodeJpegRImg()
376 const size_t length = destImage.width * bpp; in decodeJpegRImg()
377 for (unsigned i = 0; i < destImage.height; i++, testData += testStride, refData += refStride) { in decodeJpegRImg()
387 // Test Encode API-0 invalid arguments
388 TEST(JpegRTest, EncodeAPI0WithInvalidArgs) { in TEST() function
392 ASSERT_TRUE(jpgImg.allocateMemory()); in TEST()
394 // test quality factor and transfer function in TEST()
396 UhdrUnCompressedStructWrapper rawImg(16, 16, YCbCr_p010); in TEST() local
397 ASSERT_TRUE(rawImg.setImageColorGamut(ultrahdr_color_gamut::ULTRAHDR_COLORGAMUT_BT2100)); in TEST()
398 ASSERT_TRUE(rawImg.allocateMemory()); in TEST()
401 uHdrLib.encodeJPEGR(rawImg.getImageHandle(), ultrahdr_transfer_function::ULTRAHDR_TF_HLG, in TEST()
402 jpgImg.getImageHandle(), -1, nullptr), in TEST()
406 uHdrLib.encodeJPEGR(rawImg.getImageHandle(), ultrahdr_transfer_function::ULTRAHDR_TF_HLG, in TEST()
407 jpgImg.getImageHandle(), 101, nullptr), in TEST()
411 ASSERT_NE(uHdrLib.encodeJPEGR(rawImg.getImageHandle(), in TEST()
413 jpgImg.getImageHandle(), kQuality, nullptr), in TEST()
416 ASSERT_NE(uHdrLib.encodeJPEGR(rawImg.getImageHandle(), in TEST()
419 jpgImg.getImageHandle(), kQuality, nullptr), in TEST()
423 uHdrLib.encodeJPEGR(rawImg.getImageHandle(), static_cast<ultrahdr_transfer_function>(-10), in TEST()
424 jpgImg.getImageHandle(), kQuality, nullptr), in TEST()
429 // test dest in TEST()
431 UhdrUnCompressedStructWrapper rawImg(16, 16, YCbCr_p010); in TEST() local
432 ASSERT_TRUE(rawImg.setImageColorGamut(ultrahdr_color_gamut::ULTRAHDR_COLORGAMUT_BT2100)); in TEST()
433 ASSERT_TRUE(rawImg.allocateMemory()); in TEST()
436 uHdrLib.encodeJPEGR(rawImg.getImageHandle(), ultrahdr_transfer_function::ULTRAHDR_TF_HLG, in TEST()
442 uHdrLib.encodeJPEGR(rawImg.getImageHandle(), ultrahdr_transfer_function::ULTRAHDR_TF_HLG, in TEST()
443 jpgImg2.getImageHandle(), kQuality, nullptr), in TEST()
448 // test p010 input in TEST()
450 ASSERT_NE(uHdrLib.encodeJPEGR(nullptr, ultrahdr_transfer_function::ULTRAHDR_TF_HLG, in TEST()
451 jpgImg.getImageHandle(), kQuality, nullptr), in TEST()
455 UhdrUnCompressedStructWrapper rawImg(16, 16, YCbCr_p010); in TEST() local
456 ASSERT_TRUE(rawImg.setImageColorGamut(ultrahdr_color_gamut::ULTRAHDR_COLORGAMUT_BT2100)); in TEST()
458 uHdrLib.encodeJPEGR(rawImg.getImageHandle(), ultrahdr_transfer_function::ULTRAHDR_TF_HLG, in TEST()
459 jpgImg.getImageHandle(), kQuality, nullptr), in TEST()
465 UhdrUnCompressedStructWrapper rawImg(16, 16, YCbCr_p010); in TEST() local
466 ASSERT_TRUE(rawImg.setImageColorGamut(ultrahdr_color_gamut::ULTRAHDR_COLORGAMUT_UNSPECIFIED)); in TEST()
467 ASSERT_TRUE(rawImg.allocateMemory()); in TEST()
469 uHdrLib.encodeJPEGR(rawImg.getImageHandle(), ultrahdr_transfer_function::ULTRAHDR_TF_HLG, in TEST()
470 jpgImg.getImageHandle(), kQuality, nullptr), in TEST()
475 ASSERT_TRUE(rawImg2.setImageColorGamut( in TEST()
477 ASSERT_TRUE(rawImg2.allocateMemory()); in TEST()
479 uHdrLib.encodeJPEGR(rawImg2.getImageHandle(), ultrahdr_transfer_function::ULTRAHDR_TF_HLG, in TEST()
480 jpgImg.getImageHandle(), kQuality, nullptr), in TEST()
487 UhdrUnCompressedStructWrapper rawImg(kWidth, kHeight, YCbCr_p010); in TEST() local
488 ASSERT_TRUE(rawImg.setImageColorGamut(ultrahdr_color_gamut::ULTRAHDR_COLORGAMUT_BT2100)); in TEST()
489 ASSERT_TRUE(rawImg.allocateMemory()); in TEST()
490 auto rawImgP010 = rawImg.getImageHandle(); in TEST()
494 ASSERT_NE(uHdrLib.encodeJPEGR(rawImgP010, ultrahdr_transfer_function::ULTRAHDR_TF_HLG, in TEST()
495 jpgImg.getImageHandle(), kQuality, nullptr), in TEST()
501 ASSERT_NE(uHdrLib.encodeJPEGR(rawImgP010, ultrahdr_transfer_function::ULTRAHDR_TF_HLG, in TEST()
502 jpgImg.getImageHandle(), kQuality, nullptr), in TEST()
508 ASSERT_NE(uHdrLib.encodeJPEGR(rawImgP010, ultrahdr_transfer_function::ULTRAHDR_TF_HLG, in TEST()
509 jpgImg.getImageHandle(), kQuality, nullptr), in TEST()
515 ASSERT_NE(uHdrLib.encodeJPEGR(rawImgP010, ultrahdr_transfer_function::ULTRAHDR_TF_HLG, in TEST()
516 jpgImg.getImageHandle(), kQuality, nullptr), in TEST()
523 ASSERT_NE(uHdrLib.encodeJPEGR(rawImgP010, ultrahdr_transfer_function::ULTRAHDR_TF_HLG, in TEST()
524 jpgImg.getImageHandle(), kQuality, nullptr), in TEST()
533 ASSERT_NE(uHdrLib.encodeJPEGR(rawImgP010, ultrahdr_transfer_function::ULTRAHDR_TF_HLG, in TEST()
534 jpgImg.getImageHandle(), kQuality, nullptr), in TEST()
540 /* Test Encode API-1 invalid arguments */
541 TEST(JpegRTest, EncodeAPI1WithInvalidArgs) { in TEST() function
545 ASSERT_TRUE(jpgImg.allocateMemory()); in TEST()
547 // test quality factor and transfer function in TEST()
549 UhdrUnCompressedStructWrapper rawImg(16, 16, YCbCr_p010); in TEST() local
550 ASSERT_TRUE(rawImg.setImageColorGamut(ultrahdr_color_gamut::ULTRAHDR_COLORGAMUT_BT2100)); in TEST()
551 ASSERT_TRUE(rawImg.allocateMemory()); in TEST()
553 ASSERT_TRUE(rawImg2.setImageColorGamut(ultrahdr_color_gamut::ULTRAHDR_COLORGAMUT_BT709)); in TEST()
554 ASSERT_TRUE(rawImg2.allocateMemory()); in TEST()
556 ASSERT_NE(uHdrLib.encodeJPEGR(rawImg.getImageHandle(), rawImg2.getImageHandle(), in TEST()
558 jpgImg.getImageHandle(), -1, nullptr), in TEST()
561 ASSERT_NE(uHdrLib.encodeJPEGR(rawImg.getImageHandle(), rawImg2.getImageHandle(), in TEST()
563 jpgImg.getImageHandle(), 101, nullptr), in TEST()
567 ASSERT_NE(uHdrLib.encodeJPEGR(rawImg.getImageHandle(), rawImg2.getImageHandle(), in TEST()
569 jpgImg.getImageHandle(), kQuality, nullptr), in TEST()
572 ASSERT_NE(uHdrLib.encodeJPEGR(rawImg.getImageHandle(), rawImg2.getImageHandle(), in TEST()
575 jpgImg.getImageHandle(), kQuality, nullptr), in TEST()
578 ASSERT_NE(uHdrLib.encodeJPEGR(rawImg.getImageHandle(), rawImg2.getImageHandle(), in TEST()
580 jpgImg.getImageHandle(), kQuality, nullptr), in TEST()
585 // test dest in TEST()
587 UhdrUnCompressedStructWrapper rawImg(16, 16, YCbCr_p010); in TEST() local
588 ASSERT_TRUE(rawImg.setImageColorGamut(ultrahdr_color_gamut::ULTRAHDR_COLORGAMUT_BT2100)); in TEST()
589 ASSERT_TRUE(rawImg.allocateMemory()); in TEST()
591 ASSERT_TRUE(rawImg2.setImageColorGamut(ultrahdr_color_gamut::ULTRAHDR_COLORGAMUT_BT709)); in TEST()
592 ASSERT_TRUE(rawImg2.allocateMemory()); in TEST()
594 ASSERT_NE(uHdrLib.encodeJPEGR(rawImg.getImageHandle(), rawImg2.getImageHandle(), in TEST()
600 ASSERT_NE(uHdrLib.encodeJPEGR(rawImg.getImageHandle(), rawImg2.getImageHandle(), in TEST()
602 jpgImg2.getImageHandle(), kQuality, nullptr), in TEST()
607 // test p010 input in TEST()
610 ASSERT_TRUE(rawImg2.setImageColorGamut(ultrahdr_color_gamut::ULTRAHDR_COLORGAMUT_BT709)); in TEST()
611 ASSERT_TRUE(rawImg2.allocateMemory()); in TEST()
612 ASSERT_NE(uHdrLib.encodeJPEGR(nullptr, rawImg2.getImageHandle(), in TEST()
614 jpgImg.getImageHandle(), kQuality, nullptr), in TEST()
618 UhdrUnCompressedStructWrapper rawImg(16, 16, YCbCr_p010); in TEST() local
619 ASSERT_TRUE(rawImg.setImageColorGamut(ultrahdr_color_gamut::ULTRAHDR_COLORGAMUT_BT2100)); in TEST()
620 ASSERT_NE(uHdrLib.encodeJPEGR(rawImg.getImageHandle(), rawImg2.getImageHandle(), in TEST()
622 jpgImg.getImageHandle(), kQuality, nullptr), in TEST()
629 UhdrUnCompressedStructWrapper rawImg(kWidth, kHeight, YCbCr_p010); in TEST() local
630 ASSERT_TRUE(rawImg.setImageColorGamut(ultrahdr_color_gamut::ULTRAHDR_COLORGAMUT_BT2100)); in TEST()
631 ASSERT_TRUE(rawImg.allocateMemory()); in TEST()
632 auto rawImgP010 = rawImg.getImageHandle(); in TEST()
634 ASSERT_TRUE(rawImg2.setImageColorGamut(ultrahdr_color_gamut::ULTRAHDR_COLORGAMUT_BT709)); in TEST()
635 ASSERT_TRUE(rawImg2.allocateMemory()); in TEST()
636 auto rawImg420 = rawImg2.getImageHandle(); in TEST()
642 uHdrLib.encodeJPEGR(rawImgP010, rawImg420, ultrahdr_transfer_function::ULTRAHDR_TF_HLG, in TEST()
643 jpgImg.getImageHandle(), kQuality, nullptr), in TEST()
652 uHdrLib.encodeJPEGR(rawImgP010, rawImg420, ultrahdr_transfer_function::ULTRAHDR_TF_HLG, in TEST()
653 jpgImg.getImageHandle(), kQuality, nullptr), in TEST()
661 uHdrLib.encodeJPEGR(rawImgP010, rawImg420, ultrahdr_transfer_function::ULTRAHDR_TF_HLG, in TEST()
662 jpgImg.getImageHandle(), kQuality, nullptr), in TEST()
669 uHdrLib.encodeJPEGR(rawImgP010, rawImg420, ultrahdr_transfer_function::ULTRAHDR_TF_HLG, in TEST()
670 jpgImg.getImageHandle(), kQuality, nullptr), in TEST()
677 uHdrLib.encodeJPEGR(rawImgP010, rawImg420, ultrahdr_transfer_function::ULTRAHDR_TF_HLG, in TEST()
678 jpgImg.getImageHandle(), kQuality, nullptr), in TEST()
685 uHdrLib.encodeJPEGR(rawImgP010, rawImg420, ultrahdr_transfer_function::ULTRAHDR_TF_HLG, in TEST()
686 jpgImg.getImageHandle(), kQuality, nullptr), in TEST()
694 uHdrLib.encodeJPEGR(rawImgP010, rawImg420, ultrahdr_transfer_function::ULTRAHDR_TF_HLG, in TEST()
695 jpgImg.getImageHandle(), kQuality, nullptr), in TEST()
705 uHdrLib.encodeJPEGR(rawImgP010, rawImg420, ultrahdr_transfer_function::ULTRAHDR_TF_HLG, in TEST()
706 jpgImg.getImageHandle(), kQuality, nullptr), in TEST()
711 // test 420 input in TEST()
713 UhdrUnCompressedStructWrapper rawImg(16, 16, YCbCr_p010); in TEST() local
714 ASSERT_TRUE(rawImg.setImageColorGamut(ultrahdr_color_gamut::ULTRAHDR_COLORGAMUT_BT2100)); in TEST()
715 ASSERT_TRUE(rawImg.allocateMemory()); in TEST()
716 ASSERT_NE(uHdrLib.encodeJPEGR(rawImg.getImageHandle(), nullptr, in TEST()
718 jpgImg.getImageHandle(), kQuality, nullptr), in TEST()
723 ASSERT_TRUE(rawImg2.setImageColorGamut(ultrahdr_color_gamut::ULTRAHDR_COLORGAMUT_BT2100)); in TEST()
724 ASSERT_NE(uHdrLib.encodeJPEGR(rawImg.getImageHandle(), rawImg2.getImageHandle(), in TEST()
726 jpgImg.getImageHandle(), kQuality, nullptr), in TEST()
732 UhdrUnCompressedStructWrapper rawImg(kWidth, kHeight, YCbCr_p010); in TEST() local
733 ASSERT_TRUE(rawImg.setImageColorGamut(ultrahdr_color_gamut::ULTRAHDR_COLORGAMUT_BT2100)); in TEST()
734 ASSERT_TRUE(rawImg.allocateMemory()); in TEST()
735 auto rawImgP010 = rawImg.getImageHandle(); in TEST()
737 ASSERT_TRUE(rawImg2.setImageColorGamut(ultrahdr_color_gamut::ULTRAHDR_COLORGAMUT_BT709)); in TEST()
738 ASSERT_TRUE(rawImg2.allocateMemory()); in TEST()
739 auto rawImg420 = rawImg2.getImageHandle(); in TEST()
745 uHdrLib.encodeJPEGR(rawImgP010, rawImg420, ultrahdr_transfer_function::ULTRAHDR_TF_HLG, in TEST()
746 jpgImg.getImageHandle(), kQuality, nullptr), in TEST()
755 uHdrLib.encodeJPEGR(rawImgP010, rawImg420, ultrahdr_transfer_function::ULTRAHDR_TF_HLG, in TEST()
756 jpgImg.getImageHandle(), kQuality, nullptr), in TEST()
764 uHdrLib.encodeJPEGR(rawImgP010, rawImg420, ultrahdr_transfer_function::ULTRAHDR_TF_HLG, in TEST()
765 jpgImg.getImageHandle(), kQuality, nullptr), in TEST()
772 uHdrLib.encodeJPEGR(rawImgP010, rawImg420, ultrahdr_transfer_function::ULTRAHDR_TF_HLG, in TEST()
773 jpgImg.getImageHandle(), kQuality, nullptr), in TEST()
780 uHdrLib.encodeJPEGR(rawImgP010, rawImg420, ultrahdr_transfer_function::ULTRAHDR_TF_HLG, in TEST()
781 jpgImg.getImageHandle(), kQuality, nullptr), in TEST()
788 uHdrLib.encodeJPEGR(rawImgP010, rawImg420, ultrahdr_transfer_function::ULTRAHDR_TF_HLG, in TEST()
789 jpgImg.getImageHandle(), kQuality, nullptr), in TEST()
797 uHdrLib.encodeJPEGR(rawImgP010, rawImg420, ultrahdr_transfer_function::ULTRAHDR_TF_HLG, in TEST()
798 jpgImg.getImageHandle(), kQuality, nullptr), in TEST()
808 uHdrLib.encodeJPEGR(rawImgP010, rawImg420, ultrahdr_transfer_function::ULTRAHDR_TF_HLG, in TEST()
809 jpgImg.getImageHandle(), kQuality, nullptr), in TEST()
815 /* Test Encode API-2 invalid arguments */
816 TEST(JpegRTest, EncodeAPI2WithInvalidArgs) { in TEST() function
820 ASSERT_TRUE(jpgImg.allocateMemory()); in TEST()
822 // test quality factor and transfer function in TEST()
824 UhdrUnCompressedStructWrapper rawImg(16, 16, YCbCr_p010); in TEST() local
825 ASSERT_TRUE(rawImg.setImageColorGamut(ultrahdr_color_gamut::ULTRAHDR_COLORGAMUT_BT2100)); in TEST()
826 ASSERT_TRUE(rawImg.allocateMemory()); in TEST()
828 ASSERT_TRUE(rawImg2.setImageColorGamut(ultrahdr_color_gamut::ULTRAHDR_COLORGAMUT_BT709)); in TEST()
829 ASSERT_TRUE(rawImg2.allocateMemory()); in TEST()
831 ASSERT_NE(uHdrLib.encodeJPEGR( in TEST()
832 rawImg.getImageHandle(), rawImg2.getImageHandle(), jpgImg.getImageHandle(), in TEST()
833 ultrahdr_transfer_function::ULTRAHDR_TF_UNSPECIFIED, jpgImg.getImageHandle()), in TEST()
836 ASSERT_NE(uHdrLib.encodeJPEGR(rawImg.getImageHandle(), rawImg2.getImageHandle(), in TEST()
837 jpgImg.getImageHandle(), in TEST()
840 jpgImg.getImageHandle()), in TEST()
843 ASSERT_NE(uHdrLib.encodeJPEGR( in TEST()
844 rawImg.getImageHandle(), rawImg2.getImageHandle(), jpgImg.getImageHandle(), in TEST()
845 static_cast<ultrahdr_transfer_function>(-10), jpgImg.getImageHandle()), in TEST()
850 // test dest in TEST()
852 UhdrUnCompressedStructWrapper rawImg(16, 16, YCbCr_p010); in TEST() local
853 ASSERT_TRUE(rawImg.setImageColorGamut(ultrahdr_color_gamut::ULTRAHDR_COLORGAMUT_BT2100)); in TEST()
854 ASSERT_TRUE(rawImg.allocateMemory()); in TEST()
856 ASSERT_TRUE(rawImg2.setImageColorGamut(ultrahdr_color_gamut::ULTRAHDR_COLORGAMUT_BT709)); in TEST()
857 ASSERT_TRUE(rawImg2.allocateMemory()); in TEST()
859 ASSERT_NE(uHdrLib.encodeJPEGR(rawImg.getImageHandle(), rawImg2.getImageHandle(), in TEST()
860 jpgImg.getImageHandle(), in TEST()
865 ASSERT_NE(uHdrLib.encodeJPEGR( in TEST()
866 rawImg.getImageHandle(), rawImg2.getImageHandle(), jpgImg.getImageHandle(), in TEST()
867 ultrahdr_transfer_function::ULTRAHDR_TF_HLG, jpgImg2.getImageHandle()), in TEST()
872 // test compressed image in TEST()
874 UhdrUnCompressedStructWrapper rawImg(16, 16, YCbCr_p010); in TEST() local
875 ASSERT_TRUE(rawImg.setImageColorGamut(ultrahdr_color_gamut::ULTRAHDR_COLORGAMUT_BT2100)); in TEST()
876 ASSERT_TRUE(rawImg.allocateMemory()); in TEST()
878 ASSERT_TRUE(rawImg2.setImageColorGamut(ultrahdr_color_gamut::ULTRAHDR_COLORGAMUT_BT709)); in TEST()
879 ASSERT_TRUE(rawImg2.allocateMemory()); in TEST()
882 uHdrLib.encodeJPEGR(rawImg.getImageHandle(), rawImg2.getImageHandle(), nullptr, in TEST()
883 ultrahdr_transfer_function::ULTRAHDR_TF_HLG, jpgImg.getImageHandle()), in TEST()
887 ASSERT_NE(uHdrLib.encodeJPEGR( in TEST()
888 rawImg.getImageHandle(), rawImg2.getImageHandle(), jpgImg2.getImageHandle(), in TEST()
889 ultrahdr_transfer_function::ULTRAHDR_TF_HLG, jpgImg.getImageHandle()), in TEST()
894 // test p010 input in TEST()
897 ASSERT_TRUE(rawImg2.setImageColorGamut(ultrahdr_color_gamut::ULTRAHDR_COLORGAMUT_BT709)); in TEST()
898 ASSERT_TRUE(rawImg2.allocateMemory()); in TEST()
900 uHdrLib.encodeJPEGR(nullptr, rawImg2.getImageHandle(), jpgImg.getImageHandle(), in TEST()
901 ultrahdr_transfer_function::ULTRAHDR_TF_HLG, jpgImg.getImageHandle()), in TEST()
905 UhdrUnCompressedStructWrapper rawImg(16, 16, YCbCr_p010); in TEST() local
906 ASSERT_TRUE(rawImg.setImageColorGamut(ultrahdr_color_gamut::ULTRAHDR_COLORGAMUT_BT2100)); in TEST()
907 ASSERT_NE(uHdrLib.encodeJPEGR( in TEST()
908 rawImg.getImageHandle(), rawImg2.getImageHandle(), jpgImg.getImageHandle(), in TEST()
909 ultrahdr_transfer_function::ULTRAHDR_TF_HLG, jpgImg.getImageHandle()), in TEST()
916 UhdrUnCompressedStructWrapper rawImg(kWidth, kHeight, YCbCr_p010); in TEST() local
917 ASSERT_TRUE(rawImg.setImageColorGamut(ultrahdr_color_gamut::ULTRAHDR_COLORGAMUT_BT2100)); in TEST()
918 ASSERT_TRUE(rawImg.allocateMemory()); in TEST()
919 auto rawImgP010 = rawImg.getImageHandle(); in TEST()
921 ASSERT_TRUE(rawImg2.setImageColorGamut(ultrahdr_color_gamut::ULTRAHDR_COLORGAMUT_BT709)); in TEST()
922 ASSERT_TRUE(rawImg2.allocateMemory()); in TEST()
923 auto rawImg420 = rawImg2.getImageHandle(); in TEST()
929 uHdrLib.encodeJPEGR(rawImgP010, rawImg420, jpgImg.getImageHandle(), in TEST()
930 ultrahdr_transfer_function::ULTRAHDR_TF_HLG, jpgImg.getImageHandle()), in TEST()
939 uHdrLib.encodeJPEGR(rawImgP010, rawImg420, jpgImg.getImageHandle(), in TEST()
940 ultrahdr_transfer_function::ULTRAHDR_TF_HLG, jpgImg.getImageHandle()), in TEST()
948 uHdrLib.encodeJPEGR(rawImgP010, rawImg420, jpgImg.getImageHandle(), in TEST()
949 ultrahdr_transfer_function::ULTRAHDR_TF_HLG, jpgImg.getImageHandle()), in TEST()
956 uHdrLib.encodeJPEGR(rawImgP010, rawImg420, jpgImg.getImageHandle(), in TEST()
957 ultrahdr_transfer_function::ULTRAHDR_TF_HLG, jpgImg.getImageHandle()), in TEST()
964 uHdrLib.encodeJPEGR(rawImgP010, rawImg420, jpgImg.getImageHandle(), in TEST()
965 ultrahdr_transfer_function::ULTRAHDR_TF_HLG, jpgImg.getImageHandle()), in TEST()
972 uHdrLib.encodeJPEGR(rawImgP010, rawImg420, jpgImg.getImageHandle(), in TEST()
973 ultrahdr_transfer_function::ULTRAHDR_TF_HLG, jpgImg.getImageHandle()), in TEST()
981 uHdrLib.encodeJPEGR(rawImgP010, rawImg420, jpgImg.getImageHandle(), in TEST()
982 ultrahdr_transfer_function::ULTRAHDR_TF_HLG, jpgImg.getImageHandle()), in TEST()
992 uHdrLib.encodeJPEGR(rawImgP010, rawImg420, jpgImg.getImageHandle(), in TEST()
993 ultrahdr_transfer_function::ULTRAHDR_TF_HLG, jpgImg.getImageHandle()), in TEST()
998 // test 420 input in TEST()
1000 UhdrUnCompressedStructWrapper rawImg(16, 16, YCbCr_p010); in TEST() local
1001 ASSERT_TRUE(rawImg.setImageColorGamut(ultrahdr_color_gamut::ULTRAHDR_COLORGAMUT_BT2100)); in TEST()
1002 ASSERT_TRUE(rawImg.allocateMemory()); in TEST()
1004 uHdrLib.encodeJPEGR(rawImg.getImageHandle(), nullptr, jpgImg.getImageHandle(), in TEST()
1005 ultrahdr_transfer_function::ULTRAHDR_TF_HLG, jpgImg.getImageHandle()), in TEST()
1010 ASSERT_TRUE(rawImg2.setImageColorGamut(ultrahdr_color_gamut::ULTRAHDR_COLORGAMUT_BT2100)); in TEST()
1011 ASSERT_NE(uHdrLib.encodeJPEGR( in TEST()
1012 rawImg.getImageHandle(), rawImg2.getImageHandle(), jpgImg.getImageHandle(), in TEST()
1013 ultrahdr_transfer_function::ULTRAHDR_TF_HLG, jpgImg.getImageHandle()), in TEST()
1019 UhdrUnCompressedStructWrapper rawImg(kWidth, kHeight, YCbCr_p010); in TEST() local
1020 ASSERT_TRUE(rawImg.setImageColorGamut(ultrahdr_color_gamut::ULTRAHDR_COLORGAMUT_BT2100)); in TEST()
1021 ASSERT_TRUE(rawImg.allocateMemory()); in TEST()
1022 auto rawImgP010 = rawImg.getImageHandle(); in TEST()
1024 ASSERT_TRUE(rawImg2.setImageColorGamut(ultrahdr_color_gamut::ULTRAHDR_COLORGAMUT_BT709)); in TEST()
1025 ASSERT_TRUE(rawImg2.allocateMemory()); in TEST()
1026 auto rawImg420 = rawImg2.getImageHandle(); in TEST()
1032 uHdrLib.encodeJPEGR(rawImgP010, rawImg420, jpgImg.getImageHandle(), in TEST()
1033 ultrahdr_transfer_function::ULTRAHDR_TF_HLG, jpgImg.getImageHandle()), in TEST()
1042 uHdrLib.encodeJPEGR(rawImgP010, rawImg420, jpgImg.getImageHandle(), in TEST()
1043 ultrahdr_transfer_function::ULTRAHDR_TF_HLG, jpgImg.getImageHandle()), in TEST()
1051 uHdrLib.encodeJPEGR(rawImgP010, rawImg420, jpgImg.getImageHandle(), in TEST()
1052 ultrahdr_transfer_function::ULTRAHDR_TF_HLG, jpgImg.getImageHandle()), in TEST()
1059 uHdrLib.encodeJPEGR(rawImgP010, rawImg420, jpgImg.getImageHandle(), in TEST()
1060 ultrahdr_transfer_function::ULTRAHDR_TF_HLG, jpgImg.getImageHandle()), in TEST()
1067 uHdrLib.encodeJPEGR(rawImgP010, rawImg420, jpgImg.getImageHandle(), in TEST()
1068 ultrahdr_transfer_function::ULTRAHDR_TF_HLG, jpgImg.getImageHandle()), in TEST()
1075 uHdrLib.encodeJPEGR(rawImgP010, rawImg420, jpgImg.getImageHandle(), in TEST()
1076 ultrahdr_transfer_function::ULTRAHDR_TF_HLG, jpgImg.getImageHandle()), in TEST()
1084 uHdrLib.encodeJPEGR(rawImgP010, rawImg420, jpgImg.getImageHandle(), in TEST()
1085 ultrahdr_transfer_function::ULTRAHDR_TF_HLG, jpgImg.getImageHandle()), in TEST()
1095 uHdrLib.encodeJPEGR(rawImgP010, rawImg420, jpgImg.getImageHandle(), in TEST()
1096 ultrahdr_transfer_function::ULTRAHDR_TF_HLG, jpgImg.getImageHandle()), in TEST()
1102 /* Test Encode API-3 invalid arguments */
1103 TEST(JpegRTest, EncodeAPI3WithInvalidArgs) { in TEST() function
1107 ASSERT_TRUE(jpgImg.allocateMemory()); in TEST()
1109 // test quality factor and transfer function in TEST()
1111 UhdrUnCompressedStructWrapper rawImg(16, 16, YCbCr_p010); in TEST() local
1112 ASSERT_TRUE(rawImg.setImageColorGamut(ultrahdr_color_gamut::ULTRAHDR_COLORGAMUT_BT2100)); in TEST()
1113 ASSERT_TRUE(rawImg.allocateMemory()); in TEST()
1115 ASSERT_NE(uHdrLib.encodeJPEGR(rawImg.getImageHandle(), jpgImg.getImageHandle(), in TEST()
1117 jpgImg.getImageHandle()), in TEST()
1120 ASSERT_NE(uHdrLib.encodeJPEGR(rawImg.getImageHandle(), jpgImg.getImageHandle(), in TEST()
1123 jpgImg.getImageHandle()), in TEST()
1127 uHdrLib.encodeJPEGR(rawImg.getImageHandle(), jpgImg.getImageHandle(), in TEST()
1128 static_cast<ultrahdr_transfer_function>(-10), jpgImg.getImageHandle()), in TEST()
1133 // test dest in TEST()
1135 UhdrUnCompressedStructWrapper rawImg(16, 16, YCbCr_p010); in TEST() local
1136 ASSERT_TRUE(rawImg.setImageColorGamut(ultrahdr_color_gamut::ULTRAHDR_COLORGAMUT_BT2100)); in TEST()
1137 ASSERT_TRUE(rawImg.allocateMemory()); in TEST()
1139 ASSERT_NE(uHdrLib.encodeJPEGR(rawImg.getImageHandle(), jpgImg.getImageHandle(), in TEST()
1145 uHdrLib.encodeJPEGR(rawImg.getImageHandle(), jpgImg.getImageHandle(), in TEST()
1146 ultrahdr_transfer_function::ULTRAHDR_TF_HLG, jpgImg2.getImageHandle()), in TEST()
1151 // test compressed image in TEST()
1153 UhdrUnCompressedStructWrapper rawImg(16, 16, YCbCr_p010); in TEST() local
1154 ASSERT_TRUE(rawImg.setImageColorGamut(ultrahdr_color_gamut::ULTRAHDR_COLORGAMUT_BT2100)); in TEST()
1155 ASSERT_TRUE(rawImg.allocateMemory()); in TEST()
1158 uHdrLib.encodeJPEGR(rawImg.getImageHandle(), nullptr, in TEST()
1159 ultrahdr_transfer_function::ULTRAHDR_TF_HLG, jpgImg.getImageHandle()), in TEST()
1164 uHdrLib.encodeJPEGR(rawImg.getImageHandle(), jpgImg2.getImageHandle(), in TEST()
1165 ultrahdr_transfer_function::ULTRAHDR_TF_HLG, jpgImg.getImageHandle()), in TEST()
1170 // test p010 input in TEST()
1173 uHdrLib.encodeJPEGR(nullptr, jpgImg.getImageHandle(), in TEST()
1174 ultrahdr_transfer_function::ULTRAHDR_TF_HLG, jpgImg.getImageHandle()), in TEST()
1178 UhdrUnCompressedStructWrapper rawImg(16, 16, YCbCr_p010); in TEST() local
1179 ASSERT_TRUE(rawImg.setImageColorGamut(ultrahdr_color_gamut::ULTRAHDR_COLORGAMUT_BT2100)); in TEST()
1181 uHdrLib.encodeJPEGR(rawImg.getImageHandle(), jpgImg.getImageHandle(), in TEST()
1182 ultrahdr_transfer_function::ULTRAHDR_TF_HLG, jpgImg.getImageHandle()), in TEST()
1189 UhdrUnCompressedStructWrapper rawImg(kWidth, kHeight, YCbCr_p010); in TEST() local
1190 ASSERT_TRUE(rawImg.setImageColorGamut(ultrahdr_color_gamut::ULTRAHDR_COLORGAMUT_BT2100)); in TEST()
1191 ASSERT_TRUE(rawImg.allocateMemory()); in TEST()
1192 auto rawImgP010 = rawImg.getImageHandle(); in TEST()
1198 uHdrLib.encodeJPEGR(rawImgP010, jpgImg.getImageHandle(), in TEST()
1199 ultrahdr_transfer_function::ULTRAHDR_TF_HLG, jpgImg.getImageHandle()), in TEST()
1208 uHdrLib.encodeJPEGR(rawImgP010, jpgImg.getImageHandle(), in TEST()
1209 ultrahdr_transfer_function::ULTRAHDR_TF_HLG, jpgImg.getImageHandle()), in TEST()
1217 uHdrLib.encodeJPEGR(rawImgP010, jpgImg.getImageHandle(), in TEST()
1218 ultrahdr_transfer_function::ULTRAHDR_TF_HLG, jpgImg.getImageHandle()), in TEST()
1225 uHdrLib.encodeJPEGR(rawImgP010, jpgImg.getImageHandle(), in TEST()
1226 ultrahdr_transfer_function::ULTRAHDR_TF_HLG, jpgImg.getImageHandle()), in TEST()
1233 uHdrLib.encodeJPEGR(rawImgP010, jpgImg.getImageHandle(), in TEST()
1234 ultrahdr_transfer_function::ULTRAHDR_TF_HLG, jpgImg.getImageHandle()), in TEST()
1241 uHdrLib.encodeJPEGR(rawImgP010, jpgImg.getImageHandle(), in TEST()
1242 ultrahdr_transfer_function::ULTRAHDR_TF_HLG, jpgImg.getImageHandle()), in TEST()
1250 uHdrLib.encodeJPEGR(rawImgP010, jpgImg.getImageHandle(), in TEST()
1251 ultrahdr_transfer_function::ULTRAHDR_TF_HLG, jpgImg.getImageHandle()), in TEST()
1261 uHdrLib.encodeJPEGR(rawImgP010, jpgImg.getImageHandle(), in TEST()
1262 ultrahdr_transfer_function::ULTRAHDR_TF_HLG, jpgImg.getImageHandle()), in TEST()
1268 /* Test Encode API-4 invalid arguments */
1269 TEST(JpegRTest, EncodeAPI4WithInvalidArgs) { in TEST() function
1271 ASSERT_TRUE(jpgImg.allocateMemory()); in TEST()
1275 // test dest in TEST()
1276 ASSERT_NE(uHdrLib.encodeJPEGR(jpgImg.getImageHandle(), jpgImg.getImageHandle(), nullptr, nullptr), in TEST()
1279 ASSERT_NE(uHdrLib.encodeJPEGR(jpgImg.getImageHandle(), jpgImg.getImageHandle(), nullptr, in TEST()
1280 jpgImg2.getImageHandle()), in TEST()
1284 // test primary image in TEST()
1285 ASSERT_NE(uHdrLib.encodeJPEGR(nullptr, jpgImg.getImageHandle(), nullptr, jpgImg.getImageHandle()), in TEST()
1288 ASSERT_NE(uHdrLib.encodeJPEGR(jpgImg2.getImageHandle(), jpgImg.getImageHandle(), nullptr, in TEST()
1289 jpgImg.getImageHandle()), in TEST()
1293 // test gain map in TEST()
1294 ASSERT_NE(uHdrLib.encodeJPEGR(jpgImg.getImageHandle(), nullptr, nullptr, jpgImg.getImageHandle()), in TEST()
1297 ASSERT_NE(uHdrLib.encodeJPEGR(jpgImg.getImageHandle(), jpgImg2.getImageHandle(), nullptr, in TEST()
1298 jpgImg.getImageHandle()), in TEST()
1302 // test metadata in TEST()
1304 good_metadata.version = "1.0"; in TEST()
1305 good_metadata.minContentBoost = 1.0f; in TEST()
1306 good_metadata.maxContentBoost = 2.0f; in TEST()
1307 good_metadata.gamma = 1.0f; in TEST()
1308 good_metadata.offsetSdr = 0.0f; in TEST()
1309 good_metadata.offsetHdr = 0.0f; in TEST()
1310 good_metadata.hdrCapacityMin = 1.0f; in TEST()
1311 good_metadata.hdrCapacityMax = 2.0f; in TEST()
1314 metadata.version = "1.1"; in TEST()
1315 ASSERT_NE(uHdrLib.encodeJPEGR(jpgImg.getImageHandle(), jpgImg.getImageHandle(), &metadata, in TEST()
1316 jpgImg.getImageHandle()), in TEST()
1321 metadata.minContentBoost = 3.0f; in TEST()
1322 ASSERT_NE(uHdrLib.encodeJPEGR(jpgImg.getImageHandle(), jpgImg.getImageHandle(), &metadata, in TEST()
1323 jpgImg.getImageHandle()), in TEST()
1328 metadata.gamma = -0.1f; in TEST()
1329 ASSERT_NE(uHdrLib.encodeJPEGR(jpgImg.getImageHandle(), jpgImg.getImageHandle(), &metadata, in TEST()
1330 jpgImg.getImageHandle()), in TEST()
1335 metadata.offsetSdr = -0.1f; in TEST()
1336 ASSERT_NE(uHdrLib.encodeJPEGR(jpgImg.getImageHandle(), jpgImg.getImageHandle(), &metadata, in TEST()
1337 jpgImg.getImageHandle()), in TEST()
1342 metadata.offsetHdr = -0.1f; in TEST()
1343 ASSERT_NE(uHdrLib.encodeJPEGR(jpgImg.getImageHandle(), jpgImg.getImageHandle(), &metadata, in TEST()
1344 jpgImg.getImageHandle()), in TEST()
1349 metadata.hdrCapacityMax = 0.5f; in TEST()
1350 ASSERT_NE(uHdrLib.encodeJPEGR(jpgImg.getImageHandle(), jpgImg.getImageHandle(), &metadata, in TEST()
1351 jpgImg.getImageHandle()), in TEST()
1356 metadata.hdrCapacityMin = 0.5f; in TEST()
1357 ASSERT_NE(uHdrLib.encodeJPEGR(jpgImg.getImageHandle(), jpgImg.getImageHandle(), &metadata, in TEST()
1358 jpgImg.getImageHandle()), in TEST()
1363 /* Test Decode API invalid arguments */
1364 TEST(JpegRTest, DecodeAPIWithInvalidArgs) { in TEST() function
1371 destImage.data = data.get(); in TEST()
1373 // test jpegr image in TEST()
1374 ASSERT_NE(uHdrLib.decodeJPEGR(nullptr, &destImage), JPEGR_NO_ERROR) in TEST()
1376 ASSERT_NE(uHdrLib.decodeJPEGR(jpgImg.getImageHandle(), &destImage), JPEGR_NO_ERROR) in TEST()
1378 ASSERT_TRUE(jpgImg.allocateMemory()); in TEST()
1380 // test dest image in TEST()
1381 ASSERT_NE(uHdrLib.decodeJPEGR(jpgImg.getImageHandle(), nullptr), JPEGR_NO_ERROR) in TEST()
1383 destImage.data = nullptr; in TEST()
1384 ASSERT_NE(uHdrLib.decodeJPEGR(jpgImg.getImageHandle(), &destImage), JPEGR_NO_ERROR) in TEST()
1386 destImage.data = data.get(); in TEST()
1388 // test max display boost in TEST()
1389 ASSERT_NE(uHdrLib.decodeJPEGR(jpgImg.getImageHandle(), &destImage, 0.5), JPEGR_NO_ERROR) in TEST()
1392 // test output format in TEST()
1393 ASSERT_NE(uHdrLib.decodeJPEGR(jpgImg.getImageHandle(), &destImage, FLT_MAX, nullptr, in TEST()
1397 ASSERT_NE(uHdrLib.decodeJPEGR(jpgImg.getImageHandle(), &destImage, FLT_MAX, nullptr, in TEST()
1403 TEST(JpegRTest, writeXmpThenRead) { in TEST() function
1405 metadata_expected.version = "1.0"; in TEST()
1406 metadata_expected.max_content_boost = 1.25f; in TEST()
1407 metadata_expected.min_content_boost = 0.75f; in TEST()
1408 metadata_expected.gamma = 1.0f; in TEST()
1409 metadata_expected.offset_sdr = 0.0f; in TEST()
1410 metadata_expected.offset_hdr = 0.0f; in TEST()
1411 metadata_expected.hdr_capacity_min = 1.0f; in TEST()
1412 metadata_expected.hdr_capacity_max = metadata_expected.max_content_boost; in TEST()
1413 const std::string nameSpace = "http://ns.adobe.com/xap/1.0/\0"; in TEST()
1414 const size_t nameSpaceLength = nameSpace.size() + 1; // need to count the null terminator in TEST()
1419 xmpData.reserve(nameSpaceLength + xmp.size()); in TEST()
1420 xmpData.insert(xmpData.end(), reinterpret_cast<const uint8_t*>(nameSpace.c_str()), in TEST()
1421 reinterpret_cast<const uint8_t*>(nameSpace.c_str()) + nameSpaceLength); in TEST()
1422 xmpData.insert(xmpData.end(), reinterpret_cast<const uint8_t*>(xmp.c_str()), in TEST()
1423 reinterpret_cast<const uint8_t*>(xmp.c_str()) + xmp.size()); in TEST()
1426 EXPECT_EQ(getMetadataFromXMP(xmpData.data(), xmpData.size(), &metadata_read).error_code, in TEST()
1428 EXPECT_FLOAT_EQ(metadata_expected.max_content_boost, metadata_read.max_content_boost); in TEST()
1429 EXPECT_FLOAT_EQ(metadata_expected.min_content_boost, metadata_read.min_content_boost); in TEST()
1430 EXPECT_FLOAT_EQ(metadata_expected.gamma, metadata_read.gamma); in TEST()
1431 EXPECT_FLOAT_EQ(metadata_expected.offset_sdr, metadata_read.offset_sdr); in TEST()
1432 EXPECT_FLOAT_EQ(metadata_expected.offset_hdr, metadata_read.offset_hdr); in TEST()
1433 EXPECT_FLOAT_EQ(metadata_expected.hdr_capacity_min, metadata_read.hdr_capacity_min); in TEST()
1434 EXPECT_FLOAT_EQ(metadata_expected.hdr_capacity_max, metadata_read.hdr_capacity_max); in TEST()
1447 /* Test Encode API-0 and Decode */
1450 UhdrUnCompressedStructWrapper rawImg(kImageWidth, kImageHeight, YCbCr_p010); in TEST_P() local
1451 ASSERT_TRUE(rawImg.setImageColorGamut(mP010ColorGamut)); in TEST_P()
1452 ASSERT_TRUE(rawImg.allocateMemory()); in TEST_P()
1453 ASSERT_TRUE(rawImg.loadRawResource(kYCbCrP010FileName)); in TEST_P()
1455 ASSERT_TRUE(jpgImg.allocateMemory()); in TEST_P()
1458 uHdrLib.encodeJPEGR(rawImg.getImageHandle(), ultrahdr_transfer_function::ULTRAHDR_TF_HLG, in TEST_P()
1459 jpgImg.getImageHandle(), kQuality, nullptr), in TEST_P()
1464 uhdrRawImg.fmt = UHDR_IMG_FMT_24bppYCbCrP010; in TEST_P()
1465 uhdrRawImg.cg = map_internal_cg_to_cg(mP010ColorGamut); in TEST_P()
1466 uhdrRawImg.ct = map_internal_ct_to_ct(ultrahdr_transfer_function::ULTRAHDR_TF_HLG); in TEST_P()
1467 uhdrRawImg.range = UHDR_CR_LIMITED_RANGE; in TEST_P()
1468 uhdrRawImg.w = kImageWidth; in TEST_P()
1469 uhdrRawImg.h = kImageHeight; in TEST_P()
1470 uhdrRawImg.planes[UHDR_PLANE_Y] = rawImg.getImageHandle()->data; in TEST_P()
1471 uhdrRawImg.stride[UHDR_PLANE_Y] = kImageWidth; in TEST_P()
1472 uhdrRawImg.planes[UHDR_PLANE_UV] = in TEST_P()
1473 ((uint8_t*)(rawImg.getImageHandle()->data)) + kImageWidth * kImageHeight * 2; in TEST_P()
1474 uhdrRawImg.stride[UHDR_PLANE_UV] = kImageWidth; in TEST_P()
1476 ASSERT_EQ(UHDR_CODEC_OK, status.error_code) << status.detail; in TEST_P()
1478 ASSERT_EQ(UHDR_CODEC_OK, status.error_code) << status.detail; in TEST_P()
1480 ASSERT_EQ(UHDR_CODEC_OK, status.error_code) << status.detail; in TEST_P()
1482 ASSERT_EQ(UHDR_CODEC_OK, status.error_code) << status.detail; in TEST_P()
1484 ASSERT_EQ(UHDR_CODEC_OK, status.error_code) << status.detail; in TEST_P()
1486 ASSERT_EQ(UHDR_CODEC_OK, status.error_code) << status.detail; in TEST_P()
1488 ASSERT_EQ(UHDR_CODEC_OK, status.error_code) << status.detail; in TEST_P()
1491 ASSERT_EQ(jpgImg.getImageHandle()->length, compressedImage->data_sz); in TEST_P()
1493 memcmp(jpgImg.getImageHandle()->data, compressedImage->data, compressedImage->data_sz)); in TEST_P()
1499 ASSERT_TRUE(rawImg2.setImageColorGamut(mP010ColorGamut)); in TEST_P()
1500 ASSERT_TRUE(rawImg2.setImageStride(kImageWidth + 18, 0)); in TEST_P()
1501 ASSERT_TRUE(rawImg2.allocateMemory()); in TEST_P()
1502 ASSERT_TRUE(rawImg2.loadRawResource(kYCbCrP010FileName)); in TEST_P()
1504 ASSERT_TRUE(jpgImg2.allocateMemory()); in TEST_P()
1506 uHdrLib.encodeJPEGR(rawImg2.getImageHandle(), ultrahdr_transfer_function::ULTRAHDR_TF_HLG, in TEST_P()
1507 jpgImg2.getImageHandle(), kQuality, nullptr), in TEST_P()
1509 auto jpg1 = jpgImg.getImageHandle(); in TEST_P()
1510 auto jpg2 = jpgImg2.getImageHandle(); in TEST_P()
1517 ASSERT_TRUE(rawImg2.setImageColorGamut(mP010ColorGamut)); in TEST_P()
1518 ASSERT_TRUE(rawImg2.setImageStride(kImageWidth + 18, kImageWidth + 28)); in TEST_P()
1519 ASSERT_TRUE(rawImg2.setChromaMode(false)); in TEST_P()
1520 ASSERT_TRUE(rawImg2.allocateMemory()); in TEST_P()
1521 ASSERT_TRUE(rawImg2.loadRawResource(kYCbCrP010FileName)); in TEST_P()
1523 ASSERT_TRUE(jpgImg2.allocateMemory()); in TEST_P()
1525 uHdrLib.encodeJPEGR(rawImg2.getImageHandle(), ultrahdr_transfer_function::ULTRAHDR_TF_HLG, in TEST_P()
1526 jpgImg2.getImageHandle(), kQuality, nullptr), in TEST_P()
1528 auto jpg1 = jpgImg.getImageHandle(); in TEST_P()
1529 auto jpg2 = jpgImg2.getImageHandle(); in TEST_P()
1535 uhdrRawImg.fmt = UHDR_IMG_FMT_24bppYCbCrP010; in TEST_P()
1536 uhdrRawImg.cg = map_internal_cg_to_cg(mP010ColorGamut); in TEST_P()
1537 uhdrRawImg.ct = map_internal_ct_to_ct(ultrahdr_transfer_function::ULTRAHDR_TF_HLG); in TEST_P()
1538 uhdrRawImg.range = UHDR_CR_LIMITED_RANGE; in TEST_P()
1539 uhdrRawImg.w = kImageWidth; in TEST_P()
1540 uhdrRawImg.h = kImageHeight; in TEST_P()
1541 uhdrRawImg.planes[UHDR_PLANE_Y] = rawImg2.getImageHandle()->data; in TEST_P()
1542 uhdrRawImg.stride[UHDR_PLANE_Y] = rawImg2.getImageHandle()->luma_stride; in TEST_P()
1543 uhdrRawImg.planes[UHDR_PLANE_UV] = rawImg2.getImageHandle()->chroma_data; in TEST_P()
1544 uhdrRawImg.stride[UHDR_PLANE_UV] = rawImg2.getImageHandle()->chroma_stride; in TEST_P()
1546 ASSERT_EQ(UHDR_CODEC_OK, status.error_code) << status.detail; in TEST_P()
1548 ASSERT_EQ(UHDR_CODEC_OK, status.error_code) << status.detail; in TEST_P()
1550 ASSERT_EQ(UHDR_CODEC_OK, status.error_code) << status.detail; in TEST_P()
1552 ASSERT_EQ(UHDR_CODEC_OK, status.error_code) << status.detail; in TEST_P()
1554 ASSERT_EQ(UHDR_CODEC_OK, status.error_code) << status.detail; in TEST_P()
1556 ASSERT_EQ(UHDR_CODEC_OK, status.error_code) << status.detail; in TEST_P()
1558 ASSERT_EQ(UHDR_CODEC_OK, status.error_code) << status.detail; in TEST_P()
1568 ASSERT_TRUE(rawImg2.setImageColorGamut(mP010ColorGamut)); in TEST_P()
1569 ASSERT_TRUE(rawImg2.setImageStride(0, kImageWidth + 34)); in TEST_P()
1570 ASSERT_TRUE(rawImg2.setChromaMode(false)); in TEST_P()
1571 ASSERT_TRUE(rawImg2.allocateMemory()); in TEST_P()
1572 ASSERT_TRUE(rawImg2.loadRawResource(kYCbCrP010FileName)); in TEST_P()
1574 ASSERT_TRUE(jpgImg2.allocateMemory()); in TEST_P()
1576 uHdrLib.encodeJPEGR(rawImg2.getImageHandle(), ultrahdr_transfer_function::ULTRAHDR_TF_HLG, in TEST_P()
1577 jpgImg2.getImageHandle(), kQuality, nullptr), in TEST_P()
1579 auto jpg1 = jpgImg.getImageHandle(); in TEST_P()
1580 auto jpg2 = jpgImg2.getImageHandle(); in TEST_P()
1587 ASSERT_TRUE(rawImg2.setImageColorGamut(mP010ColorGamut)); in TEST_P()
1588 ASSERT_TRUE(rawImg2.setImageStride(kImageWidth, kImageWidth + 38)); in TEST_P()
1589 ASSERT_TRUE(rawImg2.allocateMemory()); in TEST_P()
1590 ASSERT_TRUE(rawImg2.loadRawResource(kYCbCrP010FileName)); in TEST_P()
1592 ASSERT_TRUE(jpgImg2.allocateMemory()); in TEST_P()
1594 uHdrLib.encodeJPEGR(rawImg2.getImageHandle(), ultrahdr_transfer_function::ULTRAHDR_TF_HLG, in TEST_P()
1595 jpgImg2.getImageHandle(), kQuality, nullptr), in TEST_P()
1597 auto jpg1 = jpgImg.getImageHandle(); in TEST_P()
1598 auto jpg2 = jpgImg2.getImageHandle(); in TEST_P()
1603 auto jpg1 = jpgImg.getImageHandle(); in TEST_P()
1605 if (!writeFile("encode_api0_output.jpeg", jpg1->data, jpg1->length)) { in TEST_P()
1610 ASSERT_NO_FATAL_FAILURE(decodeJpegRImg(jpg1, "decode_api0_output.rgb")); in TEST_P()
1613 /* Test Encode API-1 and Decode */
1616 ASSERT_TRUE(rawImgP010.setImageColorGamut(mP010ColorGamut)); in TEST_P()
1617 ASSERT_TRUE(rawImgP010.allocateMemory()); in TEST_P()
1618 ASSERT_TRUE(rawImgP010.loadRawResource(kYCbCrP010FileName)); in TEST_P()
1620 ASSERT_TRUE(rawImg420.setImageColorGamut(mYuv420ColorGamut)); in TEST_P()
1621 ASSERT_TRUE(rawImg420.allocateMemory()); in TEST_P()
1622 ASSERT_TRUE(rawImg420.loadRawResource(kYCbCr420FileName)); in TEST_P()
1624 ASSERT_TRUE(jpgImg.allocateMemory()); in TEST_P()
1626 ASSERT_EQ(uHdrLib.encodeJPEGR(rawImgP010.getImageHandle(), rawImg420.getImageHandle(), in TEST_P()
1628 jpgImg.getImageHandle(), kQuality, nullptr), in TEST_P()
1633 ASSERT_TRUE(rawImg2P010.setImageColorGamut(mP010ColorGamut)); in TEST_P()
1634 ASSERT_TRUE(rawImg2P010.setImageStride(kImageWidth + 128, 0)); in TEST_P()
1635 ASSERT_TRUE(rawImg2P010.allocateMemory()); in TEST_P()
1636 ASSERT_TRUE(rawImg2P010.loadRawResource(kYCbCrP010FileName)); in TEST_P()
1638 ASSERT_TRUE(jpgImg2.allocateMemory()); in TEST_P()
1639 ASSERT_EQ(uHdrLib.encodeJPEGR(rawImg2P010.getImageHandle(), rawImg420.getImageHandle(), in TEST_P()
1641 jpgImg2.getImageHandle(), kQuality, nullptr), in TEST_P()
1643 auto jpg1 = jpgImg.getImageHandle(); in TEST_P()
1644 auto jpg2 = jpgImg2.getImageHandle(); in TEST_P()
1651 ASSERT_TRUE(rawImg2P010.setImageColorGamut(mP010ColorGamut)); in TEST_P()
1652 ASSERT_TRUE(rawImg2P010.setImageStride(kImageWidth + 128, kImageWidth + 256)); in TEST_P()
1653 ASSERT_TRUE(rawImg2P010.setChromaMode(false)); in TEST_P()
1654 ASSERT_TRUE(rawImg2P010.allocateMemory()); in TEST_P()
1655 ASSERT_TRUE(rawImg2P010.loadRawResource(kYCbCrP010FileName)); in TEST_P()
1657 ASSERT_TRUE(jpgImg2.allocateMemory()); in TEST_P()
1658 ASSERT_EQ(uHdrLib.encodeJPEGR(rawImg2P010.getImageHandle(), rawImg420.getImageHandle(), in TEST_P()
1660 jpgImg2.getImageHandle(), kQuality, nullptr), in TEST_P()
1662 auto jpg1 = jpgImg.getImageHandle(); in TEST_P()
1663 auto jpg2 = jpgImg2.getImageHandle(); in TEST_P()
1670 ASSERT_TRUE(rawImg2P010.setImageColorGamut(mP010ColorGamut)); in TEST_P()
1671 ASSERT_TRUE(rawImg2P010.setImageStride(0, kImageWidth + 64)); in TEST_P()
1672 ASSERT_TRUE(rawImg2P010.setChromaMode(false)); in TEST_P()
1673 ASSERT_TRUE(rawImg2P010.allocateMemory()); in TEST_P()
1674 ASSERT_TRUE(rawImg2P010.loadRawResource(kYCbCrP010FileName)); in TEST_P()
1676 ASSERT_TRUE(jpgImg2.allocateMemory()); in TEST_P()
1677 ASSERT_EQ(uHdrLib.encodeJPEGR(rawImg2P010.getImageHandle(), rawImg420.getImageHandle(), in TEST_P()
1679 jpgImg2.getImageHandle(), kQuality, nullptr), in TEST_P()
1681 auto jpg1 = jpgImg.getImageHandle(); in TEST_P()
1682 auto jpg2 = jpgImg2.getImageHandle(); in TEST_P()
1689 ASSERT_TRUE(rawImg2P010.setImageColorGamut(mP010ColorGamut)); in TEST_P()
1690 ASSERT_TRUE(rawImg2P010.setImageStride(kImageWidth + 64, kImageWidth + 256)); in TEST_P()
1691 ASSERT_TRUE(rawImg2P010.allocateMemory()); in TEST_P()
1692 ASSERT_TRUE(rawImg2P010.loadRawResource(kYCbCrP010FileName)); in TEST_P()
1694 ASSERT_TRUE(jpgImg2.allocateMemory()); in TEST_P()
1695 ASSERT_EQ(uHdrLib.encodeJPEGR(rawImg2P010.getImageHandle(), rawImg420.getImageHandle(), in TEST_P()
1697 jpgImg2.getImageHandle(), kQuality, nullptr), in TEST_P()
1699 auto jpg1 = jpgImg.getImageHandle(); in TEST_P()
1700 auto jpg2 = jpgImg2.getImageHandle(); in TEST_P()
1707 ASSERT_TRUE(rawImg2420.setImageColorGamut(mYuv420ColorGamut)); in TEST_P()
1708 ASSERT_TRUE(rawImg2420.setImageStride(kImageWidth + 14, 0)); in TEST_P()
1709 ASSERT_TRUE(rawImg2420.allocateMemory()); in TEST_P()
1710 ASSERT_TRUE(rawImg2420.loadRawResource(kYCbCr420FileName)); in TEST_P()
1712 ASSERT_TRUE(jpgImg2.allocateMemory()); in TEST_P()
1713 ASSERT_EQ(uHdrLib.encodeJPEGR(rawImgP010.getImageHandle(), rawImg2420.getImageHandle(), in TEST_P()
1715 jpgImg2.getImageHandle(), kQuality, nullptr), in TEST_P()
1717 auto jpg1 = jpgImg.getImageHandle(); in TEST_P()
1718 auto jpg2 = jpgImg2.getImageHandle(); in TEST_P()
1725 ASSERT_TRUE(rawImg2420.setImageColorGamut(mYuv420ColorGamut)); in TEST_P()
1726 ASSERT_TRUE(rawImg2420.setImageStride(kImageWidth + 46, kImageWidth / 2 + 34)); in TEST_P()
1727 ASSERT_TRUE(rawImg2420.setChromaMode(false)); in TEST_P()
1728 ASSERT_TRUE(rawImg2420.allocateMemory()); in TEST_P()
1729 ASSERT_TRUE(rawImg2420.loadRawResource(kYCbCr420FileName)); in TEST_P()
1731 ASSERT_TRUE(jpgImg2.allocateMemory()); in TEST_P()
1732 ASSERT_EQ(uHdrLib.encodeJPEGR(rawImgP010.getImageHandle(), rawImg2420.getImageHandle(), in TEST_P()
1734 jpgImg2.getImageHandle(), kQuality, nullptr), in TEST_P()
1736 auto jpg1 = jpgImg.getImageHandle(); in TEST_P()
1737 auto jpg2 = jpgImg2.getImageHandle(); in TEST_P()
1743 uhdrRawImg.fmt = UHDR_IMG_FMT_24bppYCbCrP010; in TEST_P()
1744 uhdrRawImg.cg = map_internal_cg_to_cg(mP010ColorGamut); in TEST_P()
1745 uhdrRawImg.ct = map_internal_ct_to_ct(ultrahdr_transfer_function::ULTRAHDR_TF_HLG); in TEST_P()
1746 uhdrRawImg.range = UHDR_CR_LIMITED_RANGE; in TEST_P()
1747 uhdrRawImg.w = kImageWidth; in TEST_P()
1748 uhdrRawImg.h = kImageHeight; in TEST_P()
1749 uhdrRawImg.planes[UHDR_PLANE_Y] = rawImgP010.getImageHandle()->data; in TEST_P()
1750 uhdrRawImg.stride[UHDR_PLANE_Y] = kImageWidth; in TEST_P()
1751 uhdrRawImg.planes[UHDR_PLANE_UV] = in TEST_P()
1752 ((uint8_t*)(rawImgP010.getImageHandle()->data)) + kImageWidth * kImageHeight * 2; in TEST_P()
1753 uhdrRawImg.stride[UHDR_PLANE_UV] = kImageWidth; in TEST_P()
1755 ASSERT_EQ(UHDR_CODEC_OK, status.error_code) << status.detail; in TEST_P()
1757 uhdrRawImg.fmt = UHDR_IMG_FMT_12bppYCbCr420; in TEST_P()
1758 uhdrRawImg.cg = map_internal_cg_to_cg(mYuv420ColorGamut); in TEST_P()
1759 uhdrRawImg.ct = map_internal_ct_to_ct(ultrahdr_transfer_function::ULTRAHDR_TF_SRGB); in TEST_P()
1760 uhdrRawImg.range = UHDR_CR_FULL_RANGE; in TEST_P()
1761 uhdrRawImg.w = kImageWidth; in TEST_P()
1762 uhdrRawImg.h = kImageHeight; in TEST_P()
1763 uhdrRawImg.planes[UHDR_PLANE_Y] = rawImg2420.getImageHandle()->data; in TEST_P()
1764 uhdrRawImg.stride[UHDR_PLANE_Y] = rawImg2420.getImageHandle()->luma_stride; in TEST_P()
1765 uhdrRawImg.planes[UHDR_PLANE_U] = rawImg2420.getImageHandle()->chroma_data; in TEST_P()
1766 uhdrRawImg.stride[UHDR_PLANE_U] = rawImg2420.getImageHandle()->chroma_stride; in TEST_P()
1767 uhdrRawImg.planes[UHDR_PLANE_V] = ((uint8_t*)(rawImg2420.getImageHandle()->chroma_data)) + in TEST_P()
1768 rawImg2420.getImageHandle()->chroma_stride * kImageHeight / 2; in TEST_P()
1769 uhdrRawImg.stride[UHDR_PLANE_V] = rawImg2420.getImageHandle()->chroma_stride; in TEST_P()
1771 ASSERT_EQ(UHDR_CODEC_OK, status.error_code) << status.detail; in TEST_P()
1774 ASSERT_EQ(UHDR_CODEC_OK, status.error_code) << status.detail; in TEST_P()
1776 ASSERT_EQ(UHDR_CODEC_OK, status.error_code) << status.detail; in TEST_P()
1778 ASSERT_EQ(UHDR_CODEC_OK, status.error_code) << status.detail; in TEST_P()
1780 ASSERT_EQ(UHDR_CODEC_OK, status.error_code) << status.detail; in TEST_P()
1782 ASSERT_EQ(UHDR_CODEC_OK, status.error_code) << status.detail; in TEST_P()
1784 ASSERT_EQ(UHDR_CODEC_OK, status.error_code) << status.detail; in TEST_P()
1787 ASSERT_EQ(jpgImg.getImageHandle()->length, compressedImage->data_sz); in TEST_P()
1789 0, memcmp(jpgImg.getImageHandle()->data, compressedImage->data, compressedImage->data_sz)); in TEST_P()
1795 ASSERT_TRUE(rawImg2420.setImageColorGamut(mYuv420ColorGamut)); in TEST_P()
1796 ASSERT_TRUE(rawImg2420.setImageStride(0, kImageWidth / 2 + 38)); in TEST_P()
1797 ASSERT_TRUE(rawImg2420.setChromaMode(false)); in TEST_P()
1798 ASSERT_TRUE(rawImg2420.allocateMemory()); in TEST_P()
1799 ASSERT_TRUE(rawImg2420.loadRawResource(kYCbCr420FileName)); in TEST_P()
1801 ASSERT_TRUE(jpgImg2.allocateMemory()); in TEST_P()
1802 ASSERT_EQ(uHdrLib.encodeJPEGR(rawImgP010.getImageHandle(), rawImg2420.getImageHandle(), in TEST_P()
1804 jpgImg2.getImageHandle(), kQuality, nullptr), in TEST_P()
1806 auto jpg1 = jpgImg.getImageHandle(); in TEST_P()
1807 auto jpg2 = jpgImg2.getImageHandle(); in TEST_P()
1814 ASSERT_TRUE(rawImg2420.setImageColorGamut(mYuv420ColorGamut)); in TEST_P()
1815 ASSERT_TRUE(rawImg2420.setImageStride(kImageWidth + 26, kImageWidth / 2 + 44)); in TEST_P()
1816 ASSERT_TRUE(rawImg2420.allocateMemory()); in TEST_P()
1817 ASSERT_TRUE(rawImg2420.loadRawResource(kYCbCr420FileName)); in TEST_P()
1819 ASSERT_TRUE(jpgImg2.allocateMemory()); in TEST_P()
1820 ASSERT_EQ(uHdrLib.encodeJPEGR(rawImgP010.getImageHandle(), rawImg2420.getImageHandle(), in TEST_P()
1822 jpgImg2.getImageHandle(), kQuality, nullptr), in TEST_P()
1824 auto jpg1 = jpgImg.getImageHandle(); in TEST_P()
1825 auto jpg2 = jpgImg2.getImageHandle(); in TEST_P()
1830 auto jpg1 = jpgImg.getImageHandle(); in TEST_P()
1833 if (!writeFile("encode_api1_output.jpeg", jpg1->data, jpg1->length)) { in TEST_P()
1838 ASSERT_NO_FATAL_FAILURE(decodeJpegRImg(jpg1, "decode_api1_output.rgb")); in TEST_P()
1841 /* Test Encode API-2 and Decode */
1844 ASSERT_TRUE(rawImgP010.setImageColorGamut(mP010ColorGamut)); in TEST_P()
1845 ASSERT_TRUE(rawImgP010.allocateMemory()); in TEST_P()
1846 ASSERT_TRUE(rawImgP010.loadRawResource(kYCbCrP010FileName)); in TEST_P()
1848 ASSERT_TRUE(rawImg420.setImageColorGamut(mYuv420ColorGamut)); in TEST_P()
1849 ASSERT_TRUE(rawImg420.allocateMemory()); in TEST_P()
1850 ASSERT_TRUE(rawImg420.loadRawResource(kYCbCr420FileName)); in TEST_P()
1852 ASSERT_TRUE(jpgImg.allocateMemory()); in TEST_P()
1854 ASSERT_TRUE(jpgSdr.allocateMemory()); in TEST_P()
1855 auto sdr = jpgSdr.getImageHandle(); in TEST_P()
1859 uHdrLib.encodeJPEGR(rawImgP010.getImageHandle(), rawImg420.getImageHandle(), sdr, in TEST_P()
1860 ultrahdr_transfer_function::ULTRAHDR_TF_HLG, jpgImg.getImageHandle()), in TEST_P()
1865 ASSERT_TRUE(rawImg2P010.setImageColorGamut(mP010ColorGamut)); in TEST_P()
1866 ASSERT_TRUE(rawImg2P010.setImageStride(kImageWidth + 128, 0)); in TEST_P()
1867 ASSERT_TRUE(rawImg2P010.allocateMemory()); in TEST_P()
1868 ASSERT_TRUE(rawImg2P010.loadRawResource(kYCbCrP010FileName)); in TEST_P()
1870 ASSERT_TRUE(jpgImg2.allocateMemory()); in TEST_P()
1872 uHdrLib.encodeJPEGR(rawImg2P010.getImageHandle(), rawImg420.getImageHandle(), sdr, in TEST_P()
1873 ultrahdr_transfer_function::ULTRAHDR_TF_HLG, jpgImg2.getImageHandle()), in TEST_P()
1875 auto jpg1 = jpgImg.getImageHandle(); in TEST_P()
1876 auto jpg2 = jpgImg2.getImageHandle(); in TEST_P()
1883 ASSERT_TRUE(rawImg2P010.setImageColorGamut(mP010ColorGamut)); in TEST_P()
1884 ASSERT_TRUE(rawImg2P010.setImageStride(kImageWidth + 128, kImageWidth + 256)); in TEST_P()
1885 ASSERT_TRUE(rawImg2P010.setChromaMode(false)); in TEST_P()
1886 ASSERT_TRUE(rawImg2P010.allocateMemory()); in TEST_P()
1887 ASSERT_TRUE(rawImg2P010.loadRawResource(kYCbCrP010FileName)); in TEST_P()
1889 ASSERT_TRUE(jpgImg2.allocateMemory()); in TEST_P()
1891 uHdrLib.encodeJPEGR(rawImg2P010.getImageHandle(), rawImg420.getImageHandle(), sdr, in TEST_P()
1892 ultrahdr_transfer_function::ULTRAHDR_TF_HLG, jpgImg2.getImageHandle()), in TEST_P()
1894 auto jpg1 = jpgImg.getImageHandle(); in TEST_P()
1895 auto jpg2 = jpgImg2.getImageHandle(); in TEST_P()
1902 ASSERT_TRUE(rawImg2P010.setImageColorGamut(mP010ColorGamut)); in TEST_P()
1903 ASSERT_TRUE(rawImg2P010.setImageStride(0, kImageWidth + 64)); in TEST_P()
1904 ASSERT_TRUE(rawImg2P010.setChromaMode(false)); in TEST_P()
1905 ASSERT_TRUE(rawImg2P010.allocateMemory()); in TEST_P()
1906 ASSERT_TRUE(rawImg2P010.loadRawResource(kYCbCrP010FileName)); in TEST_P()
1908 ASSERT_TRUE(jpgImg2.allocateMemory()); in TEST_P()
1910 uHdrLib.encodeJPEGR(rawImg2P010.getImageHandle(), rawImg420.getImageHandle(), sdr, in TEST_P()
1911 ultrahdr_transfer_function::ULTRAHDR_TF_HLG, jpgImg2.getImageHandle()), in TEST_P()
1913 auto jpg1 = jpgImg.getImageHandle(); in TEST_P()
1914 auto jpg2 = jpgImg2.getImageHandle(); in TEST_P()
1921 ASSERT_TRUE(rawImg2420.setImageColorGamut(mYuv420ColorGamut)); in TEST_P()
1922 ASSERT_TRUE(rawImg2420.setImageStride(kImageWidth + 128, 0)); in TEST_P()
1923 ASSERT_TRUE(rawImg2420.allocateMemory()); in TEST_P()
1924 ASSERT_TRUE(rawImg2420.loadRawResource(kYCbCr420FileName)); in TEST_P()
1926 ASSERT_TRUE(jpgImg2.allocateMemory()); in TEST_P()
1928 uHdrLib.encodeJPEGR(rawImgP010.getImageHandle(), rawImg2420.getImageHandle(), sdr, in TEST_P()
1929 ultrahdr_transfer_function::ULTRAHDR_TF_HLG, jpgImg2.getImageHandle()), in TEST_P()
1931 auto jpg1 = jpgImg.getImageHandle(); in TEST_P()
1932 auto jpg2 = jpgImg2.getImageHandle(); in TEST_P()
1939 ASSERT_TRUE(rawImg2420.setImageColorGamut(mYuv420ColorGamut)); in TEST_P()
1940 ASSERT_TRUE(rawImg2420.setImageStride(kImageWidth + 128, kImageWidth + 256)); in TEST_P()
1941 ASSERT_TRUE(rawImg2420.setChromaMode(false)); in TEST_P()
1942 ASSERT_TRUE(rawImg2420.allocateMemory()); in TEST_P()
1943 ASSERT_TRUE(rawImg2420.loadRawResource(kYCbCr420FileName)); in TEST_P()
1945 ASSERT_TRUE(jpgImg2.allocateMemory()); in TEST_P()
1947 uHdrLib.encodeJPEGR(rawImgP010.getImageHandle(), rawImg2420.getImageHandle(), sdr, in TEST_P()
1948 ultrahdr_transfer_function::ULTRAHDR_TF_HLG, jpgImg2.getImageHandle()), in TEST_P()
1950 auto jpg1 = jpgImg.getImageHandle(); in TEST_P()
1951 auto jpg2 = jpgImg2.getImageHandle(); in TEST_P()
1957 uhdrRawImg.fmt = UHDR_IMG_FMT_24bppYCbCrP010; in TEST_P()
1958 uhdrRawImg.cg = map_internal_cg_to_cg(mP010ColorGamut); in TEST_P()
1959 uhdrRawImg.ct = map_internal_ct_to_ct(ultrahdr_transfer_function::ULTRAHDR_TF_HLG); in TEST_P()
1960 uhdrRawImg.range = UHDR_CR_LIMITED_RANGE; in TEST_P()
1961 uhdrRawImg.w = kImageWidth; in TEST_P()
1962 uhdrRawImg.h = kImageHeight; in TEST_P()
1963 uhdrRawImg.planes[UHDR_PLANE_Y] = rawImgP010.getImageHandle()->data; in TEST_P()
1964 uhdrRawImg.stride[UHDR_PLANE_Y] = kImageWidth; in TEST_P()
1965 uhdrRawImg.planes[UHDR_PLANE_UV] = in TEST_P()
1966 ((uint8_t*)(rawImgP010.getImageHandle()->data)) + kImageWidth * kImageHeight * 2; in TEST_P()
1967 uhdrRawImg.stride[UHDR_PLANE_UV] = kImageWidth; in TEST_P()
1969 ASSERT_EQ(UHDR_CODEC_OK, status.error_code) << status.detail; in TEST_P()
1971 uhdrRawImg.fmt = UHDR_IMG_FMT_12bppYCbCr420; in TEST_P()
1972 uhdrRawImg.cg = map_internal_cg_to_cg(mYuv420ColorGamut); in TEST_P()
1973 uhdrRawImg.ct = map_internal_ct_to_ct(ultrahdr_transfer_function::ULTRAHDR_TF_SRGB); in TEST_P()
1974 uhdrRawImg.range = UHDR_CR_FULL_RANGE; in TEST_P()
1975 uhdrRawImg.w = kImageWidth; in TEST_P()
1976 uhdrRawImg.h = kImageHeight; in TEST_P()
1977 uhdrRawImg.planes[UHDR_PLANE_Y] = rawImg2420.getImageHandle()->data; in TEST_P()
1978 uhdrRawImg.stride[UHDR_PLANE_Y] = rawImg2420.getImageHandle()->luma_stride; in TEST_P()
1979 uhdrRawImg.planes[UHDR_PLANE_U] = rawImg2420.getImageHandle()->chroma_data; in TEST_P()
1980 uhdrRawImg.stride[UHDR_PLANE_U] = rawImg2420.getImageHandle()->chroma_stride; in TEST_P()
1981 uhdrRawImg.planes[UHDR_PLANE_V] = ((uint8_t*)(rawImg2420.getImageHandle()->chroma_data)) + in TEST_P()
1982 rawImg2420.getImageHandle()->chroma_stride * kImageHeight / 2; in TEST_P()
1983 uhdrRawImg.stride[UHDR_PLANE_V] = rawImg2420.getImageHandle()->chroma_stride; in TEST_P()
1985 ASSERT_EQ(UHDR_CODEC_OK, status.error_code) << status.detail; in TEST_P()
1988 uhdrCompressedImg.data = sdr->data; in TEST_P()
1989 uhdrCompressedImg.data_sz = sdr->length; in TEST_P()
1990 uhdrCompressedImg.capacity = sdr->length; in TEST_P()
1991 uhdrCompressedImg.cg = map_internal_cg_to_cg(sdr->colorGamut); in TEST_P()
1992 uhdrCompressedImg.ct = UHDR_CT_UNSPECIFIED; in TEST_P()
1993 uhdrCompressedImg.range = UHDR_CR_UNSPECIFIED; in TEST_P()
1995 ASSERT_EQ(UHDR_CODEC_OK, status.error_code) << status.detail; in TEST_P()
1998 ASSERT_EQ(UHDR_CODEC_OK, status.error_code) << status.detail; in TEST_P()
2000 ASSERT_EQ(UHDR_CODEC_OK, status.error_code) << status.detail; in TEST_P()
2002 ASSERT_EQ(UHDR_CODEC_OK, status.error_code) << status.detail; in TEST_P()
2004 ASSERT_EQ(UHDR_CODEC_OK, status.error_code) << status.detail; in TEST_P()
2006 ASSERT_EQ(UHDR_CODEC_OK, status.error_code) << status.detail; in TEST_P()
2008 ASSERT_EQ(UHDR_CODEC_OK, status.error_code) << status.detail; in TEST_P()
2011 ASSERT_EQ(jpgImg.getImageHandle()->length, compressedImage->data_sz); in TEST_P()
2013 0, memcmp(jpgImg.getImageHandle()->data, compressedImage->data, compressedImage->data_sz)); in TEST_P()
2019 ASSERT_TRUE(rawImg2420.setImageColorGamut(mYuv420ColorGamut)); in TEST_P()
2020 ASSERT_TRUE(rawImg2420.setImageStride(0, kImageWidth + 64)); in TEST_P()
2021 ASSERT_TRUE(rawImg2420.setChromaMode(false)); in TEST_P()
2022 ASSERT_TRUE(rawImg2420.allocateMemory()); in TEST_P()
2023 ASSERT_TRUE(rawImg2420.loadRawResource(kYCbCr420FileName)); in TEST_P()
2025 ASSERT_TRUE(jpgImg2.allocateMemory()); in TEST_P()
2027 uHdrLib.encodeJPEGR(rawImgP010.getImageHandle(), rawImg2420.getImageHandle(), sdr, in TEST_P()
2028 ultrahdr_transfer_function::ULTRAHDR_TF_HLG, jpgImg2.getImageHandle()), in TEST_P()
2030 auto jpg1 = jpgImg.getImageHandle(); in TEST_P()
2031 auto jpg2 = jpgImg2.getImageHandle(); in TEST_P()
2036 auto jpg1 = jpgImg.getImageHandle(); in TEST_P()
2039 if (!writeFile("encode_api2_output.jpeg", jpg1->data, jpg1->length)) { in TEST_P()
2044 ASSERT_NO_FATAL_FAILURE(decodeJpegRImg(jpg1, "decode_api2_output.rgb")); in TEST_P()
2047 /* Test Encode API-3 and Decode */
2050 ASSERT_TRUE(rawImgP010.setImageColorGamut(mP010ColorGamut)); in TEST_P()
2051 ASSERT_TRUE(rawImgP010.allocateMemory()); in TEST_P()
2052 ASSERT_TRUE(rawImgP010.loadRawResource(kYCbCrP010FileName)); in TEST_P()
2054 ASSERT_TRUE(jpgImg.allocateMemory()); in TEST_P()
2056 ASSERT_TRUE(jpgSdr.allocateMemory()); in TEST_P()
2057 auto sdr = jpgSdr.getImageHandle(); in TEST_P()
2061 uHdrLib.encodeJPEGR(rawImgP010.getImageHandle(), sdr, in TEST_P()
2062 ultrahdr_transfer_function::ULTRAHDR_TF_HLG, jpgImg.getImageHandle()), in TEST_P()
2067 ASSERT_TRUE(rawImg2P010.setImageColorGamut(mP010ColorGamut)); in TEST_P()
2068 ASSERT_TRUE(rawImg2P010.setImageStride(kImageWidth + 128, 0)); in TEST_P()
2069 ASSERT_TRUE(rawImg2P010.allocateMemory()); in TEST_P()
2070 ASSERT_TRUE(rawImg2P010.loadRawResource(kYCbCrP010FileName)); in TEST_P()
2072 ASSERT_TRUE(jpgImg2.allocateMemory()); in TEST_P()
2074 uHdrLib.encodeJPEGR(rawImg2P010.getImageHandle(), sdr, in TEST_P()
2075 ultrahdr_transfer_function::ULTRAHDR_TF_HLG, jpgImg2.getImageHandle()), in TEST_P()
2077 auto jpg1 = jpgImg.getImageHandle(); in TEST_P()
2078 auto jpg2 = jpgImg2.getImageHandle(); in TEST_P()
2085 ASSERT_TRUE(rawImg2P010.setImageColorGamut(mP010ColorGamut)); in TEST_P()
2086 ASSERT_TRUE(rawImg2P010.setImageStride(kImageWidth + 128, kImageWidth + 256)); in TEST_P()
2087 ASSERT_TRUE(rawImg2P010.setChromaMode(false)); in TEST_P()
2088 ASSERT_TRUE(rawImg2P010.allocateMemory()); in TEST_P()
2089 ASSERT_TRUE(rawImg2P010.loadRawResource(kYCbCrP010FileName)); in TEST_P()
2091 ASSERT_TRUE(jpgImg2.allocateMemory()); in TEST_P()
2093 uHdrLib.encodeJPEGR(rawImg2P010.getImageHandle(), sdr, in TEST_P()
2094 ultrahdr_transfer_function::ULTRAHDR_TF_HLG, jpgImg2.getImageHandle()), in TEST_P()
2096 auto jpg1 = jpgImg.getImageHandle(); in TEST_P()
2097 auto jpg2 = jpgImg2.getImageHandle(); in TEST_P()
2104 ASSERT_TRUE(rawImg2P010.setImageColorGamut(mP010ColorGamut)); in TEST_P()
2105 ASSERT_TRUE(rawImg2P010.setImageStride(0, kImageWidth + 64)); in TEST_P()
2106 ASSERT_TRUE(rawImg2P010.setChromaMode(false)); in TEST_P()
2107 ASSERT_TRUE(rawImg2P010.allocateMemory()); in TEST_P()
2108 ASSERT_TRUE(rawImg2P010.loadRawResource(kYCbCrP010FileName)); in TEST_P()
2110 ASSERT_TRUE(jpgImg2.allocateMemory()); in TEST_P()
2112 uHdrLib.encodeJPEGR(rawImg2P010.getImageHandle(), sdr, in TEST_P()
2113 ultrahdr_transfer_function::ULTRAHDR_TF_HLG, jpgImg2.getImageHandle()), in TEST_P()
2115 auto jpg1 = jpgImg.getImageHandle(); in TEST_P()
2116 auto jpg2 = jpgImg2.getImageHandle(); in TEST_P()
2123 ASSERT_TRUE(rawImg2P010.setImageColorGamut(mP010ColorGamut)); in TEST_P()
2124 ASSERT_TRUE(rawImg2P010.setImageStride(kImageWidth + 32, kImageWidth + 256)); in TEST_P()
2125 ASSERT_TRUE(rawImg2P010.allocateMemory()); in TEST_P()
2126 ASSERT_TRUE(rawImg2P010.loadRawResource(kYCbCrP010FileName)); in TEST_P()
2128 ASSERT_TRUE(jpgImg2.allocateMemory()); in TEST_P()
2130 uHdrLib.encodeJPEGR(rawImg2P010.getImageHandle(), sdr, in TEST_P()
2131 ultrahdr_transfer_function::ULTRAHDR_TF_HLG, jpgImg2.getImageHandle()), in TEST_P()
2133 auto jpg1 = jpgImg.getImageHandle(); in TEST_P()
2134 auto jpg2 = jpgImg2.getImageHandle(); in TEST_P()
2142 uhdrRawImg.fmt = UHDR_IMG_FMT_24bppYCbCrP010; in TEST_P()
2143 uhdrRawImg.cg = map_internal_cg_to_cg(mP010ColorGamut); in TEST_P()
2144 uhdrRawImg.ct = map_internal_ct_to_ct(ultrahdr_transfer_function::ULTRAHDR_TF_HLG); in TEST_P()
2145 uhdrRawImg.range = UHDR_CR_LIMITED_RANGE; in TEST_P()
2146 uhdrRawImg.w = kImageWidth; in TEST_P()
2147 uhdrRawImg.h = kImageHeight; in TEST_P()
2148 uhdrRawImg.planes[UHDR_PLANE_Y] = rawImgP010.getImageHandle()->data; in TEST_P()
2149 uhdrRawImg.stride[UHDR_PLANE_Y] = kImageWidth; in TEST_P()
2150 uhdrRawImg.planes[UHDR_PLANE_UV] = in TEST_P()
2151 ((uint8_t*)(rawImgP010.getImageHandle()->data)) + kImageWidth * kImageHeight * 2; in TEST_P()
2152 uhdrRawImg.stride[UHDR_PLANE_UV] = kImageWidth; in TEST_P()
2154 ASSERT_EQ(UHDR_CODEC_OK, status.error_code) << status.detail; in TEST_P()
2157 uhdrCompressedImg.data = sdr->data; in TEST_P()
2158 uhdrCompressedImg.data_sz = sdr->length; in TEST_P()
2159 uhdrCompressedImg.capacity = sdr->length; in TEST_P()
2160 uhdrCompressedImg.cg = map_internal_cg_to_cg(sdr->colorGamut); in TEST_P()
2161 uhdrCompressedImg.ct = UHDR_CT_UNSPECIFIED; in TEST_P()
2162 uhdrCompressedImg.range = UHDR_CR_UNSPECIFIED; in TEST_P()
2164 ASSERT_EQ(UHDR_CODEC_OK, status.error_code) << status.detail; in TEST_P()
2167 ASSERT_EQ(UHDR_CODEC_OK, status.error_code) << status.detail; in TEST_P()
2169 ASSERT_EQ(UHDR_CODEC_OK, status.error_code) << status.detail; in TEST_P()
2171 ASSERT_EQ(UHDR_CODEC_OK, status.error_code) << status.detail; in TEST_P()
2173 ASSERT_EQ(UHDR_CODEC_OK, status.error_code) << status.detail; in TEST_P()
2175 ASSERT_EQ(UHDR_CODEC_OK, status.error_code) << status.detail; in TEST_P()
2177 ASSERT_EQ(UHDR_CODEC_OK, status.error_code) << status.detail; in TEST_P()
2180 ASSERT_EQ(jpgImg.getImageHandle()->length, compressedImage->data_sz); in TEST_P()
2182 0, memcmp(jpgImg.getImageHandle()->data, compressedImage->data, compressedImage->data_sz)); in TEST_P()
2186 auto jpg1 = jpgImg.getImageHandle(); in TEST_P()
2189 if (!writeFile("encode_api3_output.jpeg", jpg1->data, jpg1->length)) { in TEST_P()
2194 ASSERT_NO_FATAL_FAILURE(decodeJpegRImg(jpg1, "decode_api3_output.rgb")); in TEST_P()
2218 elapsedMicroseconds.QuadPart = mEndingTime.QuadPart - mStartingTime.QuadPart; in elapsedTime()
2219 return (double)elapsedMicroseconds.QuadPart / (double)frequency.QuadPart * 1000000; in elapsedTime()
2235 elapsedMicroseconds.tv_sec = mEndingTime.tv_sec - mStartingTime.tv_sec; in elapsedTime()
2236 elapsedMicroseconds.tv_usec = mEndingTime.tv_usec - mStartingTime.tv_usec; in elapsedTime()
2237 return elapsedMicroseconds.tv_sec * 1000000 + elapsedMicroseconds.tv_usec; in elapsedTime()
2268 profileGenerateMap.timerStart(); in BenchmarkGenerateGainMap()
2270 ASSERT_EQ(UHDR_CODEC_OK, generateGainMap(yuv420Image, p010Image, metadata, gainmap).error_code); in BenchmarkGenerateGainMap()
2272 profileGenerateMap.timerStop(); in BenchmarkGenerateGainMap()
2274 profileGenerateMap.elapsedTime() / (kProfileCount * 1000.f)); in BenchmarkGenerateGainMap()
2281 profileRecMap.timerStart(); in BenchmarkApplyGainMap()
2285 .error_code); in BenchmarkApplyGainMap()
2287 profileRecMap.timerStop(); in BenchmarkApplyGainMap()
2289 profileRecMap.elapsedTime() / (kProfileCount * 1000.f)); in BenchmarkApplyGainMap()
2292 TEST(JpegRTest, ProfileGainMapFuncs) { in TEST() function
2294 ASSERT_TRUE(rawImgP010.setImageColorGamut(ultrahdr_color_gamut::ULTRAHDR_COLORGAMUT_BT2100)); in TEST()
2295 ASSERT_TRUE(rawImgP010.allocateMemory()); in TEST()
2296 ASSERT_TRUE(rawImgP010.loadRawResource(kYCbCrP010FileName)); in TEST()
2298 ASSERT_TRUE(rawImg420.setImageColorGamut(ultrahdr_color_gamut::ULTRAHDR_COLORGAMUT_BT709)); in TEST()
2299 ASSERT_TRUE(rawImg420.allocateMemory()); in TEST()
2300 ASSERT_TRUE(rawImg420.loadRawResource(kYCbCr420FileName)); in TEST()
2306 auto rawImg = rawImgP010.getImageHandle(); in TEST() local
2307 if (rawImg->luma_stride == 0) rawImg->luma_stride = rawImg->width; in TEST()
2308 if (!rawImg->chroma_data) { in TEST()
2309 uint16_t* data = reinterpret_cast<uint16_t*>(rawImg->data); in TEST()
2310 rawImg->chroma_data = data + rawImg->luma_stride * rawImg->height; in TEST()
2311 rawImg->chroma_stride = rawImg->luma_stride; in TEST()
2313 hdr_intent.fmt = UHDR_IMG_FMT_24bppYCbCrP010; in TEST()
2314 hdr_intent.cg = UHDR_CG_BT_2100; in TEST()
2315 hdr_intent.ct = UHDR_CT_HLG; in TEST()
2316 hdr_intent.range = UHDR_CR_LIMITED_RANGE; in TEST()
2317 hdr_intent.w = rawImg->width; in TEST()
2318 hdr_intent.h = rawImg->height; in TEST()
2319 hdr_intent.planes[UHDR_PLANE_Y] = rawImg->data; in TEST()
2320 hdr_intent.stride[UHDR_PLANE_Y] = rawImg->luma_stride; in TEST()
2321 hdr_intent.planes[UHDR_PLANE_UV] = rawImg->chroma_data; in TEST()
2322 hdr_intent.stride[UHDR_PLANE_UV] = rawImg->chroma_stride; in TEST()
2323 hdr_intent.planes[UHDR_PLANE_V] = nullptr; in TEST()
2324 hdr_intent.stride[UHDR_PLANE_V] = 0; in TEST()
2327 auto rawImg = rawImg420.getImageHandle(); in TEST() local
2328 if (rawImg->luma_stride == 0) rawImg->luma_stride = rawImg->width; in TEST()
2329 if (!rawImg->chroma_data) { in TEST()
2330 uint8_t* data = reinterpret_cast<uint8_t*>(rawImg->data); in TEST()
2331 rawImg->chroma_data = data + rawImg->luma_stride * rawImg->height; in TEST()
2332 rawImg->chroma_stride = rawImg->luma_stride / 2; in TEST()
2334 sdr_intent.fmt = UHDR_IMG_FMT_12bppYCbCr420; in TEST()
2335 sdr_intent.cg = UHDR_CG_DISPLAY_P3; in TEST()
2336 sdr_intent.ct = UHDR_CT_SRGB; in TEST()
2337 sdr_intent.range = rawImg->colorRange; in TEST()
2338 sdr_intent.w = rawImg->width; in TEST()
2339 sdr_intent.h = rawImg->height; in TEST()
2340 sdr_intent.planes[UHDR_PLANE_Y] = rawImg->data; in TEST()
2341 sdr_intent.stride[UHDR_PLANE_Y] = rawImg->luma_stride; in TEST()
2342 sdr_intent.planes[UHDR_PLANE_U] = rawImg->chroma_data; in TEST()
2343 sdr_intent.stride[UHDR_PLANE_U] = rawImg->chroma_stride; in TEST()
2344 uint8_t* data = reinterpret_cast<uint8_t*>(rawImg->chroma_data); in TEST()
2345 data += (rawImg->height * rawImg->chroma_stride) / 2; in TEST()
2346 sdr_intent.planes[UHDR_PLANE_V] = data; in TEST()
2347 sdr_intent.stride[UHDR_PLANE_V] = rawImg->chroma_stride; in TEST()
2354 glCtxt.init_opengl_ctxt(); in TEST()
2355 JpegRBenchmark benchmark(glCtxt.mErrorStatus.error_code == UHDR_CODEC_OK ? &glCtxt : nullptr); in TEST()
2361 benchmark.BenchmarkGenerateGainMap(&sdr_intent, &hdr_intent, &metadata, gainmap)); in TEST()
2366 output.fmt = UHDR_IMG_FMT_32bppRGBA1010102; in TEST()
2367 output.cg = UHDR_CG_UNSPECIFIED; in TEST()
2368 output.ct = UHDR_CT_UNSPECIFIED; in TEST()
2369 output.range = UHDR_CR_UNSPECIFIED; in TEST()
2370 output.w = kImageWidth; in TEST()
2371 output.h = kImageHeight; in TEST()
2372 output.planes[UHDR_PLANE_PACKED] = bufferDst.get(); in TEST()
2373 output.stride[UHDR_PLANE_PACKED] = kImageWidth; in TEST()
2374 output.planes[UHDR_PLANE_U] = nullptr; in TEST()
2375 output.stride[UHDR_PLANE_U] = 0; in TEST()
2376 output.planes[UHDR_PLANE_V] = nullptr; in TEST()
2377 output.stride[UHDR_PLANE_V] = 0; in TEST()
2380 benchmark.BenchmarkApplyGainMap(&sdr_intent, gainmap.get(), &metadata, &output)); in TEST()
2383 glCtxt.delete_opengl_ctxt(); in TEST()