diff --git a/examples/ultrahdr_app.cpp b/examples/ultrahdr_app.cpp index 4c67e2b0..7c96882d 100644 --- a/examples/ultrahdr_app.cpp +++ b/examples/ultrahdr_app.cpp @@ -244,17 +244,20 @@ static bool writeFile(const char* filename, uhdr_raw_image_t* img) { class UltraHdrAppInput { public: - UltraHdrAppInput( - const char* hdrIntentRawFile, const char* sdrIntentRawFile, - const char* sdrIntentCompressedFile, const char* gainmapCompressedFile, - const char* gainmapMetadataCfgFile, const char* exifFile, const char* outputFile, - size_t width, size_t height, uhdr_img_fmt_t hdrCf = UHDR_IMG_FMT_32bppRGBA1010102, - uhdr_img_fmt_t sdrCf = UHDR_IMG_FMT_32bppRGBA8888, - uhdr_color_gamut_t hdrCg = UHDR_CG_DISPLAY_P3, uhdr_color_gamut_t sdrCg = UHDR_CG_BT_709, - uhdr_color_transfer_t hdrTf = UHDR_CT_HLG, int quality = 95, - uhdr_color_transfer_t oTf = UHDR_CT_HLG, uhdr_img_fmt_t oFmt = UHDR_IMG_FMT_32bppRGBA1010102, - bool isHdrCrFull = false, int gainmapScaleFactor = 4, int gainmapQuality = 85, - bool enableMultiChannelGainMap = false, float gamma = 1.0f, bool enableGLES = false) + UltraHdrAppInput(const char* hdrIntentRawFile, const char* sdrIntentRawFile, + const char* sdrIntentCompressedFile, const char* gainmapCompressedFile, + const char* gainmapMetadataCfgFile, const char* exifFile, const char* outputFile, + size_t width, size_t height, + uhdr_img_fmt_t hdrCf = UHDR_IMG_FMT_32bppRGBA1010102, + uhdr_img_fmt_t sdrCf = UHDR_IMG_FMT_32bppRGBA8888, + uhdr_color_gamut_t hdrCg = UHDR_CG_DISPLAY_P3, + uhdr_color_gamut_t sdrCg = UHDR_CG_BT_709, + uhdr_color_transfer_t hdrTf = UHDR_CT_HLG, int quality = 95, + uhdr_color_transfer_t oTf = UHDR_CT_HLG, + uhdr_img_fmt_t oFmt = UHDR_IMG_FMT_32bppRGBA1010102, bool isHdrCrFull = false, + int gainmapScaleFactor = 4, int gainmapQuality = 85, + bool enableMultiChannelGainMap = false, float gamma = 1.0f, + bool enableGLES = false, uhdr_enc_preset_t encPreset = UHDR_USAGE_REALTIME) : mHdrIntentRawFile(hdrIntentRawFile), mSdrIntentRawFile(sdrIntentRawFile), mSdrIntentCompressedFile(sdrIntentCompressedFile), @@ -279,6 +282,7 @@ class UltraHdrAppInput { mUseMultiChannelGainMap(enableMultiChannelGainMap), mGamma(gamma), mEnableGLES(enableGLES), + mEncPreset(encPreset), mMode(0){}; UltraHdrAppInput(const char* gainmapMetadataCfgFile, const char* uhdrFile, const char* outputFile, @@ -308,6 +312,7 @@ class UltraHdrAppInput { mUseMultiChannelGainMap(false), mGamma(1.0f), mEnableGLES(enableGLES), + mEncPreset(UHDR_USAGE_REALTIME), mMode(1){}; ~UltraHdrAppInput() { @@ -387,6 +392,7 @@ class UltraHdrAppInput { const bool mUseMultiChannelGainMap; const float mGamma; const bool mEnableGLES; + const uhdr_enc_preset_t mEncPreset; const int mMode; uhdr_raw_image_t mRawP010Image{}; @@ -683,6 +689,7 @@ bool UltraHdrAppInput::encode() { RET_IF_ERR(uhdr_enc_set_using_multi_channel_gainmap(handle, mUseMultiChannelGainMap)) RET_IF_ERR(uhdr_enc_set_gainmap_scale_factor(handle, mMapDimensionScaleFactor)) RET_IF_ERR(uhdr_enc_set_gainmap_gamma(handle, mGamma)) + RET_IF_ERR(uhdr_enc_set_preset(handle, mEncPreset)) if (mEnableGLES) { RET_IF_ERR(uhdr_enable_gpu_acceleration(handle, mEnableGLES)) } @@ -1348,6 +1355,9 @@ static void usage(const char* name) { "real number (1.0 : default)].\n"); fprintf(stderr, " -M select multi channel gain map, optional. [0:disable (default), 1:enable]. \n"); + fprintf( + stderr, + " -D select encoding preset, optional. [0:real time (default), 1:best quality]. \n"); fprintf(stderr, " -x binary input resource containing exif data to insert, optional. \n"); fprintf(stderr, "\n## decoder options : \n"); fprintf(stderr, " -j ultra hdr compressed input resource, required. \n"); @@ -1425,7 +1435,7 @@ static void usage(const char* name) { fprintf(stderr, "\n## encode at high quality :\n"); fprintf(stderr, " ultrahdr_app -m 0 -p hdr_intent.raw -y sdr_intent.raw -w 640 -h 480 -c -t -t