-/*! ========================================================================
-** Synfig
-** ppm Target Module
-** $Id: mptr_jpeg.cpp,v 1.1.1.1 2005/01/04 01:23:11 darco Exp $
+/* === S Y N F I G ========================================================= */
+/*! \file mptr_jpeg.cpp
+** \brief ppm Target Module
**
+** $Id$
+**
+** \legal
** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley
**
** This package is free software; you can redistribute it and/or
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
** General Public License for more details.
+** \endlegal
**
** === N O T E S ===========================================================
**
/* === G L O B A L S ======================================================= */
SYNFIG_IMPORTER_INIT(jpeg_mptr);
-SYNFIG_IMPORTER_SET_NAME(jpeg_mptr,"jpeg_mptr");
+SYNFIG_IMPORTER_SET_NAME(jpeg_mptr,"jpeg");
SYNFIG_IMPORTER_SET_EXT(jpeg_mptr,"jpg");
SYNFIG_IMPORTER_SET_VERSION(jpeg_mptr,"0.1");
-SYNFIG_IMPORTER_SET_CVS_ID(jpeg_mptr,"$Id: mptr_jpeg.cpp,v 1.1.1.1 2005/01/04 01:23:11 darco Exp $");
+SYNFIG_IMPORTER_SET_CVS_ID(jpeg_mptr,"$Id$");
/* === M E T H O D S ======================================================= */
{
struct my_error_mgr jerr;
filename=file_name;
-
+
/* Open the file pointer */
FILE *file = fopen(file_name, "rb");
if (!file)
throw String("error on importer construction, *WRITEME*1");
return;
}
-
+
/* Step 1: allocate and initialize JPEG decompression object */
-
+
/* We set up the normal JPEG error routines, then override error_exit. */
cinfo.err = jpeg_std_error(&jerr.pub);
jerr.pub.error_exit = my_error_exit;
}
/* Now we can initialize the JPEG decompression object. */
jpeg_create_decompress(&cinfo);
-
+
/* Step 2: specify data source (eg, a file) */
-
+
jpeg_stdio_src(&cinfo, file);
-
+
/* Step 3: read file parameters with jpeg_read_header() */
-
+
(void) jpeg_read_header(&cinfo, TRUE);
/* We can ignore the return value from jpeg_read_header since
* (a) suspension is not possible with the stdio data source, and
* (b) we passed TRUE to reject a tables-only JPEG file as an error.
* See libjpeg.doc for more info.
*/
-
+
/* Step 4: set parameters for decompression */
-
+
/* In this example, we don't need to change any of the defaults set by
* jpeg_read_header(), so we do nothing here.
*/
-
+
/* Step 5: Start decompressor */
-
+
(void) jpeg_start_decompress(&cinfo);
/* We can ignore the return value since suspension is not possible
* with the stdio data source.
synfig::error("jpeg_mptr: error: alloc of \"buffer\" failed (bug?)");
throw String("alloc of \"buffer\" failed (bug?)");
}
-
+
int x;
int y;
surface_buffer.set_wh(cinfo.output_width,cinfo.output_height);
for(y=0;y<surface_buffer.get_h();y++)
{
int x;
- jpeg_read_scanlines(&cinfo, buffer, 1);
+ jpeg_read_scanlines(&cinfo, buffer, 1);
for(x=0;x<surface_buffer.get_w();x++)
{
float r=gamma().g_U8_to_F32((unsigned char)buffer[0][x*3+0]);
}
}
break;
-
+
case 1:
for(y=0;y<surface_buffer.get_h();y++)
{
- jpeg_read_scanlines(&cinfo, buffer, 1);
+ jpeg_read_scanlines(&cinfo, buffer, 1);
for(x=0;x<surface_buffer.get_w();x++)
{
float gray=gamma().g_U8_to_F32((unsigned char)buffer[0][x]);
throw String("error on importer construction, *WRITEME*6");
return;
}
-
+
/* Step 7: Finish decompression */
-
+
(void) jpeg_finish_decompress(&cinfo);
/* We can ignore the return value since suspension is not possible
* with the stdio data source.
*/
-
+
/* Step 8: Release JPEG decompression object */
-
+
/* This is an important step since it will release a good deal of memory. */
jpeg_destroy_decompress(&cinfo);
-
+
/* After finish_decompress, we can close the input file.
* Here we postpone it until after no more JPEG errors are possible,
* so as to simplify the setjmp error logic above. (Actually, I don't
}
bool
-jpeg_mptr::get_frame(synfig::Surface &surface,Time, synfig::ProgressCallback *cb)
+jpeg_mptr::get_frame(synfig::Surface &surface,Time, synfig::ProgressCallback */*cb*/)
{
surface.mirror(surface_buffer);
return true;