Alien-FreeImage
view release on metacpan or search on metacpan
src/Source/LibRawLite/src/libraw_cxx.cpp view on Meta::CPAN
d_info->decoder_name = "x3f_load_raw()";
d_info->decoder_flags = LIBRAW_DECODER_OWNALLOC;
}
#ifdef LIBRAW_DEMOSAIC_PACK_GPL2
else if (load_raw == &LibRaw::foveon_sd_load_raw )
{
d_info->decoder_name = "foveon_sd_load_raw()";
}
else if (load_raw == &LibRaw::foveon_dp_load_raw )
{
d_info->decoder_name = "foveon_dp_load_raw()";
}
#endif
else
{
d_info->decoder_name = "Unknown unpack function";
d_info->decoder_flags = LIBRAW_DECODER_NOTSET;
}
return LIBRAW_SUCCESS;
}
int LibRaw::adjust_maximum()
{
ushort real_max;
float auto_threshold;
if(O.adjust_maximum_thr < 0.00001)
return LIBRAW_SUCCESS;
else if (O.adjust_maximum_thr > 0.99999)
auto_threshold = LIBRAW_DEFAULT_ADJUST_MAXIMUM_THRESHOLD;
else
auto_threshold = O.adjust_maximum_thr;
real_max = C.data_maximum;
if (real_max > 0 && real_max < C.maximum && real_max > C.maximum* auto_threshold)
{
C.maximum = real_max;
}
return LIBRAW_SUCCESS;
}
void LibRaw:: merror (void *ptr, const char *where)
{
if (ptr) return;
if(callbacks.mem_cb)(*callbacks.mem_cb)(callbacks.memcb_data,
libraw_internal_data.internal_data.input
?libraw_internal_data.internal_data.input->fname()
:NULL,
where);
throw LIBRAW_EXCEPTION_ALLOC;
}
int LibRaw::open_file(const char *fname, INT64 max_buf_size)
{
#ifndef WIN32
struct stat st;
if(stat(fname,&st))
return LIBRAW_IO_ERROR;
int big = (st.st_size > max_buf_size)?1:0;
#else
struct _stati64 st;
if(_stati64(fname,&st))
return LIBRAW_IO_ERROR;
int big = (st.st_size > max_buf_size)?1:0;
#endif
LibRaw_abstract_datastream *stream;
try {
if(big)
stream = new LibRaw_bigfile_datastream(fname);
else
stream = new LibRaw_file_datastream(fname);
}
catch (std::bad_alloc)
{
recycle();
return LIBRAW_UNSUFFICIENT_MEMORY;
}
if(!stream->valid())
{
delete stream;
return LIBRAW_IO_ERROR;
}
ID.input_internal = 0; // preserve from deletion on error
int ret = open_datastream(stream);
if (ret == LIBRAW_SUCCESS)
{
ID.input_internal =1 ; // flag to delete datastream on recycle
}
else
{
delete stream;
ID.input_internal = 0;
}
return ret;
}
#if defined(_WIN32) && !defined(__MINGW32__) && defined(_MSC_VER) && (_MSC_VER > 1310)
int LibRaw::open_file(const wchar_t *fname, INT64 max_buf_size)
{
struct _stati64 st;
if(_wstati64(fname,&st))
return LIBRAW_IO_ERROR;
int big = (st.st_size > max_buf_size)?1:0;
LibRaw_abstract_datastream *stream;
try {
if(big)
stream = new LibRaw_bigfile_datastream(fname);
else
stream = new LibRaw_file_datastream(fname);
}
catch (std::bad_alloc)
{
recycle();
( run in 1.342 second using v1.01-cache-2.11-cpan-5b529ec07f3 )