Premetto che il programma:
-è in codice c (non c++)
-dovrebbe essere violentemente ottimizzato (leggi: girare a fuoco)
-non ha problemi nè warnings in compilazione
-crea tra l'altro tre matrici di unsigned char 480X640 più poche stringhe
-è stato scritto sulla falsa riga del codice d'esempio in fondo al pdf:"Video for Linux Two API Specification
Revision 0.24" (che era funzionante sempre)
-il programma funziona sempre se lanciato in debug mode (anche senza break point)
-la cosa più brutta che faccio è:
ma avendo solo un puntatore all'area di memoria (restituitomi correttamente da funzioni che non voglio toccare) in cui è salvato il frame di dimensione d_f_width(rappresentato in unsigned char); e volendo poi lavorare in notazione matriciale voi come avreste fatto?unsigned char* cropped_frame[cropped_height];
for (i=0;i<cropped_height;i++) {
cropped_frame[i]=start_image_in_frame+i*d_f_width;
}
-lanciato in normal mode (oppure una volta lanciato l'eseguibile), ogni tanto funziona ogni tanto no terminando con valore exit -1
Non posto il programma perché sono oltre 500 righe di codice piene di macro.
Le domande che desidero rivolgere alla comunità del forum sono pertanto 3:
1)Cosa fa il debug mode che il "normal mode" non fa?
2)Cosa significa exit -1?
3)Voi come avreste fatto avendo un puntatore ad all'inizio di un area di memoria (che sapete contigua) a usarlo con la notazione matriciale (mat[i][j] per intenderci)?
Grazie.
P.S.
Dubito fortemente che il problema sia legato a linux o fedora. I due imptati principali sono Eclipse e il codice.