Author: post
Date: 2011-01-07 11:45:09 +0100 (Fri, 07 Jan 2011)
New Revision: 3790
Modified:
trunk/plugins/output-jpegfile/output-jpegfile.c
trunk/plugins/output-pngfile/output-pngfile.c
trunk/plugins/output-tifffile/output-tifffile.c
Log:
Lock IO while saving 'physical' images.
Modified: trunk/plugins/output-jpegfile/output-jpegfile.c
===================================================================
--- trunk/plugins/output-jpegfile/output-jpegfile.c 2011-01-05 23:58:16 UTC
(rev 3789)
+++ trunk/plugins/output-jpegfile/output-jpegfile.c 2011-01-07 10:45:09 UTC
(rev 3790)
@@ -233,6 +233,7 @@
cinfo.in_color_space = JCS_RGB;
jpeg_set_defaults(&cinfo);
jpeg_set_quality(&cinfo, jpegfile->quality, TRUE);
+ rs_io_lock();
jpeg_start_compress(&cinfo, TRUE);
if (jpegfile->color_space &&
!g_str_equal(G_OBJECT_TYPE_NAME(jpegfile->color_space), "RSSrgb"))
{
@@ -279,6 +280,7 @@
gchar *input_filename = NULL;
rs_filter_get_recursive(filter, "filename", &input_filename, NULL);
rs_exif_copy(input_filename, jpegfile->filename,
G_OBJECT_TYPE_NAME(jpegfile->color_space), RS_EXIF_FILE_TYPE_JPEG);
+ rs_io_unlock();
g_free(input_filename);
return(TRUE);
Modified: trunk/plugins/output-pngfile/output-pngfile.c
===================================================================
--- trunk/plugins/output-pngfile/output-pngfile.c 2011-01-05 23:58:16 UTC
(rev 3789)
+++ trunk/plugins/output-pngfile/output-pngfile.c 2011-01-07 10:45:09 UTC
(rev 3790)
@@ -219,6 +219,7 @@
#ifdef G_BIG_ENDIAN
png_set_swap(png_ptr);
#endif
+ rs_io_lock();
png_write_image(png_ptr, row_pointers);
g_object_unref(image);
}
@@ -247,6 +248,7 @@
if (n_channels == 4)
png_set_filler(png_ptr, 0, PNG_FILLER_AFTER);
+ rs_io_lock();
png_write_image(png_ptr, row_pointers);
g_object_unref(pixbuf);
}
@@ -261,6 +263,7 @@
gchar *input_filename = NULL;
rs_filter_get_recursive(filter, "filename", &input_filename, NULL);
rs_exif_copy(input_filename, pngfile->filename,
G_OBJECT_TYPE_NAME(pngfile->color_space), RS_EXIF_FILE_TYPE_PNG);
+ rs_io_unlock();
g_free(input_filename);
return TRUE;
Modified: trunk/plugins/output-tifffile/output-tifffile.c
===================================================================
--- trunk/plugins/output-tifffile/output-tifffile.c 2011-01-05 23:58:16 UTC
(rev 3789)
+++ trunk/plugins/output-tifffile/output-tifffile.c 2011-01-07 10:45:09 UTC
(rev 3790)
@@ -226,6 +226,7 @@
TIFFSetField(tiff, TIFFTAG_BITSPERSAMPLE, 16);
printf("pixelsize: %d\n", image->pixelsize);
+ rs_io_lock();
for(row=0;row<image->h;row++)
{
gushort *buf = GET_PIXEL(image, 0, row);
@@ -254,6 +255,7 @@
gchar *line = g_new(gchar, width * 3);
TIFFSetField(tiff, TIFFTAG_BITSPERSAMPLE, 8);
+ rs_io_lock();
for(row=0;row<height;row++)
{
guchar *buf = GET_PIXBUF_PIXEL(pixbuf, 0, row);
@@ -278,6 +280,7 @@
rs_filter_get_recursive(filter, "filename", &input_filename, NULL);
rs_exif_copy(input_filename, tifffile->filename,
G_OBJECT_TYPE_NAME(tifffile->color_space), RS_EXIF_FILE_TYPE_TIFF);
+ rs_io_unlock();
g_free(input_filename);
return(TRUE);
_______________________________________________
Rawstudio-commit mailing list
[email protected]
http://rawstudio.org/cgi-bin/mailman/listinfo/rawstudio-commit