调整多流输出崩溃问题

This commit is contained in:
13038267101 2023-01-13 14:24:37 +08:00
parent 0f8118e96e
commit ac64e93cf5
1 changed files with 11 additions and 10 deletions

View File

@ -970,7 +970,7 @@ void hg_scanner::thread_handle_image_process(void)
else
stop_fatal_ = SCANNER_ERR_INSUFFICIENT_MEMORY;
VLOG_MINI_1(LOG_LEVEL_ALL, "is opencv Fatal: %s\n", e.what());
stop();
//stop();
break;
}
@ -1573,10 +1573,10 @@ int hg_scanner::setting_resolution(void* data)
// check paper ...
if (!check_paper_and_resolution(resolution_, image_prc_param_.bits.paper))
{
//resolution_ = old;
//*((int*)data) = old;
resolution_ = old;
*((int*)data) = old;
return SCANNER_ERR_DEVICE_NOT_SUPPORT;
return SCANNER_ERR_NOT_EXACT;
}
/*if (!check_resolution_and_quality(resolution_, is_img_quality(is_quality_).c_str()))
{
@ -2665,7 +2665,7 @@ int hg_scanner::save_final_image(hg_imgproc::LPIMGHEAD head, void* buf)
is_1bit = true;
}
if (image_prc_param_.bits.color_mode == COLOR_MODE_BLACK_WHITE || (is_1bit && is_multiout))
if ((image_prc_param_.bits.color_mode == COLOR_MODE_BLACK_WHITE && !is_multiout) || (is_1bit && is_multiout))
{
int old = head->line_bytes;
/*/
@ -3726,7 +3726,8 @@ void hg_scanner::image_process(std::shared_ptr<tiny_buffer>& buffer)
if (pid_ != 0x239 && pid_ != 0x439)
{
float dpi3288 = (img_conf_.resolution_dst < 300 && is_kernelsnap3288_221106_) ? 200 : 300;
float dpi3288 = (img_conf_.resolution_dst > 300 && is_kernelsnap3288_221106_) ? 300 : 200;
ret = hg_imgproc::auto_crop(ImagePrc_pHandle_, dpi3288);
(this->*dump_img_)(ImagePrc_pHandle_, "auto_crop");
}
@ -3744,10 +3745,10 @@ void hg_scanner::image_process(std::shared_ptr<tiny_buffer>& buffer)
(this->*dump_img_)(ImagePrc_pHandle_, "fadeback");
}
if (((img_conf_.resolution_dst != img_conf_.resolution_native) && (pid_ != 0x239 && pid_ != 0x439) && !is_kernelsnap3288_221106_)
|| (is_kernelsnap3288_221106_ && img_conf_.resolution_dst > 200))
if (((img_conf_.resolution_dst != img_conf_.resolution_native) && (pid_ == 0x300 || pid_ == 0x0400) && !is_kernelsnap3288_221106_)
|| (is_kernelsnap3288_221106_ && (img_conf_.resolution_dst != 200 && img_conf_.resolution_dst != 300)))
{
float dpi3288 = (img_conf_.resolution_dst < 300 && is_kernelsnap3288_221106_) ? 200 : 300;
float dpi3288 = (img_conf_.resolution_dst > 300 && is_kernelsnap3288_221106_) ? 300 : 200;
hg_imgproc::resolution_change(ImagePrc_pHandle_, dpi3288);
(this->*dump_img_)(ImagePrc_pHandle_, "resolution_change");
@ -3853,7 +3854,7 @@ void hg_scanner::image_process(std::shared_ptr<tiny_buffer>& buffer)
(this->*dump_img_)(ImagePrc_pHandle_, "split");
}
if (!img_conf_.splitImage || !img_conf_.multi_output_red || !is_multiout) //239
if (!img_conf_.splitImage && !img_conf_.multi_output_red && !is_multiout) //239
{
if (img_conf_.automaticcolor)
{