Y no lo solo eso, sino que además según el modelo de Android la imagen en vertical se verá rotada 90º, o la imagen horizontal en 90º en otros modelos, o en otros modelos 90º en ambas. Y la cámara frontal se ve también rotada, pero 180º. Y en algunos al hacer la foto sale rotada 90º mientras que en el Preview se veía bien.
Yo también estaba haciendo una aplicación con la cámara integrada, y después de ver todos los problemas que daba para hacerlo estandar para cualquier Android decidí abandonar y que lo tomase desde el Intent de la cámara.
Las aplicaciones de cámara lo hacen perfectamente, en calidad y en velocidad de procesamiento, porque lo hacen a bajo nivel, trabajando en NDK. Así que salvo que encuentres algún tutorial para tomar fotos mediante NDK tendrás que resignarte a que el procesamiento sea lento, y además imagenes rotadas en algunos dispositivos (aunque esto es más o menos controlable a base de hacer muchos chequeos).
Por cierto, si encuentras algún tutorial para hacerlo con NDK postealo