From: Seven Du Date: Sat, 13 Feb 2016 12:14:06 +0000 (+0800) Subject: FS-8754 add ability to read high quality PDF X-Git-Tag: v1.6.7^2~48^2~3 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1204abf87adf9797ec5aab4fe24728cd18abda1f;p=thirdparty%2Ffreeswitch.git FS-8754 add ability to read high quality PDF --- diff --git a/src/mod/formats/mod_imagick/mod_imagick.c b/src/mod/formats/mod_imagick/mod_imagick.c index 060889f16a..ec74f49f0b 100644 --- a/src/mod/formats/mod_imagick/mod_imagick.c +++ b/src/mod/formats/mod_imagick/mod_imagick.c @@ -123,21 +123,11 @@ static switch_status_t imagick_file_open(switch_file_handle_t *handle, const cha context->image_info = AcquireImageInfo(); switch_set_string(context->image_info->filename, path); - context->images = ReadImages(context->image_info, context->exception); - if (context->exception->severity != UndefinedException) { - CatchException(context->exception); - } - - if (context->images == (Image *)NULL) { - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Fail to read file: %s\n", path); - return SWITCH_STATUS_GENERR; - } - - context->pagecount = GetImageListLength(context->images); - if (handle->params) { const char *max = switch_event_get_header(handle->params, "img_ms"); const char *autoplay = switch_event_get_header(handle->params, "autoplay"); + const char *density = switch_event_get_header(handle->params, "density"); + const char *quality = switch_event_get_header(handle->params, "quality"); int tmp; if (max) { @@ -148,8 +138,30 @@ static switch_status_t imagick_file_open(switch_file_handle_t *handle, const cha if (autoplay) { context->autoplay = atoi(autoplay); } + + if (density) { + context->image_info->density = strdup(density); + } + + if (quality) { + tmp = atoi(quality); + + if (tmp > 0) context->image_info->quality = tmp; + } + } + + context->images = ReadImages(context->image_info, context->exception); + if (context->exception->severity != UndefinedException) { + CatchException(context->exception); } + if (context->images == (Image *)NULL) { + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Fail to read file: %s\n", path); + return SWITCH_STATUS_GENERR; + } + + context->pagecount = GetImageListLength(context->images); + if (context->max) { context->samples = (handle->samplerate / 1000) * context->max; }