#1
|
||||
|
||||
Pruebas Camara ROM Kalim
He abierto este hilo, porque creo que estamos saturando a la gente con el tema de la camara dentro del hilo de la ROM y creo que es mejor que dejemos ese hilo para los problemas reales con la ROM.
Pues bien, despues de un buen rato probando y mirando, creo que acabo de ver algo. A partir del primer driver que dejaste, que me parece el mas estable de los 3, he podido comprobar que solo guardamos un canal de los 3 de RGB, por eso salen bien las fotos en blanco y negro cuando seleccionamos 1 canal al pasarla a photoshop, pq solo tenemos guardado un canal completo. A ver si me explico un poco. Foto a 2048 guarda un raw de 3.072 KB Foto a 1600 guarda un raw de 1.875 KB Foto a 1024 guarda un raw de 768 KB Ahora bien, si hacemos los calculos, recordemos que las imagenes RAW siempre tienen el mismo tamaño pq guardan toda la información : alto x ancho x bitsdecolor x canales = tamaño de archivo tenemos que 2048 x 1536 x 8 x 3 = 75497472 bits = 9.216 KB = 3072 x 3 1600 x 1200 x 8 x 3 = 46080000 bits = 5.625 KB = 1875 x 3 1024 x 768 x 8 x 3 = 18874368 bits = 2.304 KB = 768 x 3 Segun esto, los buffers tienen que inicializarse con esos valores En un log de una foto a 1024, se puedo ver 01-18 22:28:15.929 D/QualcommCameraHardware(121)stopPreviewInternal X: 0 01-18 22:28:15.929 D/QualcommCameraHardware(121)initRaw E: picture size=1024x768 01-18 22:28:15.929 D/QualcommCameraHardware(121)native_set_dimension: E 01-18 22:28:15.929 D/QualcommCameraHardware(121)native_set_parm: type: 1, length=28 01-18 22:28:15.969 D/QualcommCameraHardware(121)initRaw: initializing mThumbHeap. with size 294912 01-18 22:28:15.969 D/QualcommCameraHardware(121)constructing MemPool thumbnail camera backed by pmem pool /dev/pmem_adsp: 1 frames @ 294912 bytes, offset 0, buffer size 294912 01-18 22:28:15.969 D/QualcommCameraHardware(121)pmem pool /dev/pmem_adsp ioctl(fd = 31, PMEM_GET_SIZE) is 524288 01-18 22:28:15.969 D/QualcommCameraHardware(121)initRaw: initializing mRawHeap. with size 1179648 este ultimo valor deberia de ser para ese tamaño de foto de 2359296, que son los bytes necesarios para guardarla, por eso creo que no estamos leyendo la imagen completa y por eso creo que cuando ponemos un valor mayor de lectura el sistema falla, porque estamos solicitando datos de memoria que no tenemos asignada. Bueno, todo esto son solo suposiciones a partir de logs, leer y probar, me acuesto ya que hay que trabajar. Animo Kalim, el trabajo que haces para la comunidad no tiene precio. |
|
#2
|
||||
|
||||
Me parece bien el hilo nuevo, y yo solo sin vuestra ayuda no podría ni tan solo haber llegado aquí. Además de que animáis un huevo.
Ahi va otro test
__________________
__________________________________________________ __
CyanogenMod Nexus Devices |
#3
|
||||
|
||||
al abrirla con phtoshop me muestra mal la imagen, si selecciono ver solo el canal rojo, se muestra ibien la imagen en blanco y negro, si marco los canales azul o verde solo tengo trozos de la foto. Sigo pensando lo mismo. creo que lo de dividir entre dos el valor al inicializar el valor de mrawheap no deberia de estar. Me marcho al trabajo, sigo luego. |
#4
|
||||
|
||||
Me parece bien lo del nuevo tema, como pense, si son 3 canales deberían ser 9 MB aprox pero el driver de la cámara parece no quiere guardar 3 canales, a ver ese tema... Pienso y según lo que has dicho NewZa habría que dar un valor según la resolución con la que usemos la cámara con una variable pero en caso de que funcionase así, de donde sacamos si es 1M, 2M o 3M?
Si quieres hacer alguna prueba estoy libre Kalim. Si os parece voy a crear una recopilación de imágenes según la librería con la que se hicieron y podemos ir comparando... 1ª LIBRERÍA (22:50 - 21/01/11) - 9 MB 2ª LIBRERÍA (07:47 - 22/01/11) - 2.25 MB 3ª LIBRERÍA (11:12 - 22/01/11) - 4.5 MB 4ª LIBRERÍA (12:05 - 22/01/11) - 3 MB Edito: He sacado temp.jpg como dijo @NewZa pero cuando le pongo tres canales, parece que no están bien los colores y salen líneas verticales, he intentado editarlo con el bloc de notas (el espacio rellanado de 0 son 1 MB más de lo que es el contenido) pero nada de nada. Seguiré probando. Última edición por Agedjus Día 22/01/11 a las 12:32:47. |
#5
|
||||
|
||||
Me parece bien lo del nuevo tema, como pense, si son 3 canales deberían ser 9 MB aprox pero el driver de la cámara parece no quiere guardar 3 canales, a ver ese tema... Pienso y según lo que has dicho NewZa habría que dar un valor según la resolución con la que usemos la cámara con una variable pero en caso de que funcionase así, de donde sacamos si es 1M, 2M o 3M?
Si quieres hacer alguna prueba estoy libre Kalim. Si os parece voy a crear una recopilación de imágenes según la librería con la que se hicieron y podemos ir comparando... CAPTURAS LIBRERÍA (22:50 - 21/01/11) Edito: He sacado temp.jpg como dijo @NewZa pero cuando le pongo tres canales, parece que no están bien los colores y salen líneas verticales, he intentado editarlo con el bloc de notas (el espacio rellanado de 0 son 1 MB más de lo que es el contenido) pero nada de nada. Seguiré probando.
__________________
__________________________________________________ __
CyanogenMod Nexus Devices |
#6
|
||||
|
||||
Adjunto nueva librería:
__________________
__________________________________________________ __
CyanogenMod Nexus Devices |
#8
|
||||
|
||||
__________________
Terminales
SE Xperia x10 HTC Wildfire HTC Tattoo Última edición por lokko Día 22/01/11 a las 11:57:21. |
#10
|
||||
|
||||
Otro intento
__________________
__________________________________________________ __
CyanogenMod Nexus Devices |
#11
|
||||
|
||||
oye que las fotos en blanco y negro son muy artisticas lo podriamos dejar asi no? jaja, fuera de coñas, gracias por vuestro tiempo y trabajo, soys unos cracks!
|
#12
|
||||
|
||||
Me parece bien lo de crear este post y asi no se lie con las demas dudas y esta la cosa interesante, lo que pasa por levantarme un poco mas tarde .
Hasta despues de comer necesito el movil operativo, asi que os seguire mientras y despues me uno a las pruebas animo!!!!
__________________
|
#13
|
||||
|
||||
Ok, a ver que tal ahora, por cierto según las imágenes, fijarse que en la primera de 9 MB hay una zona negra debajo, se supone que esa es la correspondiente al tamaño de sobra del archivo, algo como:
9 MB - (MB zona negra) = Tamaño Real RAW Imágenes añadidas y me he dado cuenta de otra cosa... Como dice @NewZa, el PhotoShop, a falta de más información, coloca las capas como quiere y lo vemos de esta manera. Podéis verlo aquí con esta prueba con la misma imagen pero cada una con un color: ROJO - VERDE - ROJO Y AZUL - ROJO, VERDE Y AZUL Podemos decir entonces que sin un .raw completo no conseguiremos una imagen completa con todas las capas, lo que dije antes tiene que ser un valor por debajo de 9 MB, apuesto por 7.5 MB. La indicación de que no lo rellena de basura es sencilla, si la guarda en la SD sabemos dos cosas, no tiene basura y falta información. Última edición por Agedjus Día 22/01/11 a las 13:19:24. |
#14
|
||||
|
||||
No puedo hacer pruebas ahora mismo, estoy en el trabajo.
Por lo que veo en las pruebas que estais haciendo, me sigue pareciendo que nos falta parte del Archivo RAW. Si escribimos un archivo de 9Mb con solo parte del RAW, tenemos que escribe información correcta, hasta la mitad y el resto lo rellena con basura. No es un fallo de la libreria que pasa el Raw como quiere, sino que es el photoshop que intentan organizar los canales como puede, solo tiene información de la capa roja, y media de la azul, y esta media de la azul la distribuye entre las dos capas, haciendo que se vean las rayas. Impaciente por llegar a casa y poder probar. |
#15
|
||||
|
||||
Podemos decir entonces que sin un .raw completo no conseguiremos una imagen completa con todas las capas, lo que dije antes tiene que ser un valor por debajo de 9 MB, apuesto por 7.5 MB. La indicación de que no lo rellena de basura es sencilla, si la guarda en la SD sabemos dos cosas, no tiene basura y falta información.
|
#16
|
||||
|
||||
Por tanto daría igual no obtener el tamaño real del .raw, porque al convertirlo a .jpg la basura la borra y entonces hay que asignarle un tamaño alto al .raw Última edición por Agedjus Día 22/01/11 a las 13:03:35. |
#17
|
||||
|
||||
El kernel no me da los 9Mb que me comentas, por eso está multiplicado por 3/2 ( ese es uno de los motivos por el que estoy haciendo un kernel nuevo )
__________________
__________________________________________________ __
CyanogenMod Nexus Devices |
#18
|
||||
|
||||
Ok, esperaremos entonces al nuevo kernel para seguir haciendo pruebas. Por cierto, ¿la función que convierte de .raw a .jpg funciona actualmente en el caso de dar con un .raw válido?
|
#19
|
||||
|
||||
Ahora, te entiendo, pues tiene que haber alguna manera, aunque sea haciendo dos pasadas de lectura. Seguire mirando a ver que veo por ahi.
|
|
#20
|
||||
|
||||
La cámara está cerca |
Estás aquí | ||||||
|