PanoramaCameraDesign: Difference between revisions

Jump to navigation Jump to search
Line 84: Line 84:
=Design=
=Design=
==Web API==
==Web API==
*Panorama Module Selection => 通知Gecko現在是Panorama Mode
*Panorama Module Selection => Set to Panorama Mode.
*Start Capture => 開始使用Panorama
*Start Capture => Start Panorama capture.
*Progress update => Callback來通知目前進度
*Progress update => A Callback to notify Gaia camera app current progress.
*Stop Capture => 停止
*Stop Capture => Stop Panorama capture.
*Generated Finalized Preview Blob =>完成的圖片
*Generated Finalized Preview Blob => A callback for passing generated finalized preview blob.


==Gecko API for 3rd party library==
==Gecko API for 3rd party library==
*Preview Input => Camera 的Preview當作input,這邊要跟OpenGL綁定texture,這部分目前GonkNativeWindow沒有支援,要在實作。
*Preview Input => Take a GonkNativeWindow to bind texture.
*Input further work => Camera snapshot stream當作input,這邊要等之後的Android camera framework改版之後才考慮
*Preview Output => Take another GonkNativeWindow as render output. And take this GonkNativeWindow to create EGLSurface.
*Preview Output => 目前FX OS camera是直接把preview的GraphicBufferLocked轉成ImageContainer的資料,需要改接到Panorama Engine。
*Update Progress Callback => Update current progress while starting capture.
*Update Progress Callback => Preview的改變會影響目前Progress的進度,這要從Panorama Engine通知。
*Generated Picture => Generate finalized mosaic picture.
*Generated Picture => 產生出的檔案還有preview。
*Error Handling => Some error handling functions.
*Error Handling => 偏移太多等會產生Error通知
 
==Gecko Changes==
==Gecko Changes==
* A child class "GonkGLNativeWindow" inhertiage GonkNativeWindow.
* Change the OpenGL usage into Gecko's way.
* New classes like WideAnglePanoramaModule, MosaicFrameProcessor, SurfaceTextureRender, MosaicPreviewRender and MosaicRender.
Confirmed users
770

edits

Navigation menu