Segfault accessing Bayer Data
Hi there,
I'm new on this forum and I need your help.
So far I am trying to read Raw data, accessing the Bayer data. My code is working well except I have sometimes segfault on the same line: sometimes I read one pic, sometime I segfault on the same pic.
Here a piece of my code :
libraw_data_t *raw = libraw_init(0);
int i;
int npixels;
unsigned short *data=NULL;
int ret = libraw_open_file(raw, name);
HANDLE_ALL_ERRORS(ret);
ret = libraw_unpack(raw);
HANDLE_ALL_ERRORS(ret);
int raw_width = raw->sizes.raw_width;
int raw_height = raw->sizes.raw_height;
npixels = raw_width * raw_height;
data = (WORD*) calloc(1, npixels * sizeof(WORD));
if (!data) {
return -1;
}
WORD *buf = data;
int offset = raw_width * raw->rawdata.sizes.top_margin + raw->rawdata.sizes.left_margin;
for (i = 0; i < npixels; i++) {
buf[i] = raw->rawdata.raw_image[i + offset];
}
.......The line causing trouble is
buf[i] = raw->rawdata.raw_image[i + offset];
Program received signal SIGSEGV, Segmentation fault. 0x000000000043f20d in readraw_in_cfa (name=0x1056410 "/home/lock/Projet/Pictures/RAW/trails/IMG_3828.CR2", fit=0x666d60 <gfit>) at image_formats_libraries.c:790 790 buf[i] = raw->rawdata.raw_image[i + offset];
But as I said, sometimes it is wotking very well and I see no "pattern" in the segfault.
Did I make something wrong ?
Thanks for your help,
lock

Recent comments