diff --git a/src/zm_image.cpp b/src/zm_image.cpp index b0c850aaa..280cdb20a 100644 --- a/src/zm_image.cpp +++ b/src/zm_image.cpp @@ -1092,13 +1092,15 @@ bool Image::WriteJpeg(const char *filename, int quality_override, struct timeval } bool Image::WriteJpeg(const char *filename, int quality_override, struct timeval timestamp, bool on_blocking_abort) const { - // jpeg libs are not thread safe - std::unique_lock lck(jpeg_mutex); if ( config.colour_jpeg_files && (colours == ZM_COLOUR_GRAY8) ) { Image temp_image(*this); temp_image.Colourise(ZM_COLOUR_RGB24, ZM_SUBPIX_ORDER_RGB); return temp_image.WriteJpeg(filename, quality_override, timestamp, on_blocking_abort); } + + // jpeg libs are not thread safe + std::unique_lock lck(jpeg_mutex); + int quality = quality_override ? quality_override : config.jpeg_file_quality; struct jpeg_compress_struct *cinfo = writejpg_ccinfo[quality];