在glibc環境下控制安卓相機的方法、裝置及移動設備的制作方法
【專利摘要】本發明實施例提供了一種在glibc環境下控制安卓相機的方法、裝置和移動設備,該方法包括:將bionic環境下的安卓相機服務中的功能接口通過Libhybris技術轉換成glibc環境能調用的功能接口;基于GStreamer框架生成能夠對轉換后的功能接口進行調用的相機插件;通過相機管道接收來自相機應用模塊的相機操作命令,驅動所述相機插件調用所述轉換后的功能接口,對相機硬件進行操作;由所述相機插件通過所述轉換后的功能接口接收相機硬件生成的數據,并將數據經由所述相機管道返回所述相機應用模塊。
【專利說明】在gl ibc環境下控制安卓相機的方法、裝置及移動設備
【技術領域】
[0001]本發明涉及操作系統【技術領域】,特別涉及一種在glibc環境下控制安卓相機的方法、裝置及移動設備。
【背景技術】
[0002]B1nic 是安卓系統(Android)的 C/C++ 庫,Iibc 是 GNU/Linux 以及其他類 Unix系統的基礎函數庫,最常用的是GNU的libc,也就是glibc。現有技術中,在glibc的編譯環境下是無法調用b1nic環境下的相機功能接口的,也就是說無法實現相機的基本操作。一旦在android設備上使用基于glibc的操作系統來刷機,將無法使用b1nic環境下的相機功能接口。
[0003]—種解決方式是采用Libhybris技術實現從b1nic到glibc的轉換,但是目前在glibc環境下對于android相機接口的調用所采用的是直接對相機硬件抽象層的封裝,這種方式需要在系統啟動時就在后臺運行安卓相機服務來加載媒體庫,會占用大量的資源。
【發明內容】
[0004]為了克服現有技術中的上述缺陷,本發明提供了一種在glibc環境下控制安卓相機的方法、裝置及移動設備。
[0005]本發明一實施方式提供了一種在glibc環境下控制安卓相機的方法,所述方法包括:將b1nic環境下的安卓相機服務中的功能接口通過Libhybris技術轉換成glibc環境能調用的功能接口 ;基于GStreamer框架生成能夠對轉換后的功能接口進行調用的相機插件;通過相機管道接收來自相機應用模塊的相機操作命令,驅動所述相機插件調用所述轉換后的功能接口,對相機硬件進行操作;由所述相機插件通過所述轉換后的功能接口接收相機硬件生成的數據,并將數據經由所述相機管道返回所述相機應用模塊。
[0006]其中,通過相機管道接收來自相機應用模塊的相機操作命令,驅動所述相機插件調用所述轉換后的功能接口,對相機硬件進行操作包括:通過與所述相機操作命令對應的相機管道接收來自相機應用模塊的所述相機操作命令;由所述對應的相機管道驅動所述相機插件中與所述操作命令對應的相機源;由所述對應的相機源調用所述轉換后的功能接口中與所述操作命令對應的功能接口,對相機硬件進行操作。
[0007]其中,由所述相機插件通過轉換后的功能接口接收相機硬件生成的數據并將數據經由所述相機管道返回所述相機應用模塊包括:由所述轉換后的功能接口中與所述操作命令對應的功能接口接收來自相機硬件生成的數據;由所述對應的功能接口將所述數據發送給所述相機插件中與所述操作命令對應的相機源;由所述對應的相機源將所述數據發送給與所述相機操作命令對應的相機管道;由所述對應的相機管道將所述數據輸出給所述相機應用模塊。
[0008]其中,所述相機管道包括:照相管道、預覽管道和錄像管道;所述相機插件包括:照相源、預覽源和錄像源;所述轉換后的接口包括:照相接口、預覽接口和錄像接口 ;所述照相管道驅動所述照相源,所述照相源調用所述照相接口 ;所述預覽管道驅動所述預覽源,所述預覽源調用所述預覽接口 ;所述錄像管道驅動所述錄像源,所述錄像源調用所述錄像接口。
[0009]本發明另一實施方式提供了一種在glibc環境下控制安卓相機的裝置,所述裝置包括:相機管道、相機插件以及功能接口 ;所述功能接口是將b1nic環境下的安卓相機服務中的功能接口通過Libhybris技術轉換成的glibc環境能調用的功能接口 ;所述相機插件是基于GStreamer框架生成的能夠對轉換后的功能接口進行調用的相機插件;所述相機管道,接收來自相機應用模塊的相機操作命令,驅動所述相機插件調用所述轉換后的功能接口,對相機硬件進行操作;所述相機插件,通過所述轉換后的功能接口接收相機硬件生成的數據,并將數據經由所述相機管道返回所述相機應用模塊。
[0010]其中,所述相機管道,通過與所述相機操作命令對應的相機管道接收來自相機應用模塊的所述相機操作命令,并由所述對應的相機管道驅動所述相機插件中與所述操作命令對應的相機源;所述相機插件,由所述對應的相機源調用所述功能接口中與所述操作命令對應的功能接口,對相機硬件進行操作。
[0011]其中,所述功能接口,通過所述功能接口中與所述操作命令對應的功能接口接收來自相機硬件的數據,并將所述數據發送給所述相機插件中與所述操作命令對應的相機源;所述相機插件,由所述對應的相機源將所述數據發送給與所述相機操作命令對應的相機管道;所述相機管道,由所述對應的相機管道將所述數據輸出給所述相機應用模塊。
[0012]其中,所述相機管道包括:照相管道、預覽管道和錄像管道;所述相機插件包括照相源、預覽源和錄像源;所述轉換后的接口包括:照相接口、預覽接口和錄像接口 ;所述照相管道,驅動所述照相源;所述照相源,調用所述照相接口 ;所述預覽管道,驅動所述預覽源;所述預覽源,調用所述預覽接口 ;所述錄像管道,驅動所述錄像源;所述錄像源,調用所述錄像接口。
[0013]其中,所述照相管道包括:過濾單元,接收來自所述照相源的圖片數據,對圖片類型進行過濾;圖片輸出單元,將過濾后的圖片提供給相機應用模塊。
[0014]本發明又一實施方式提供了一種移動設備,所述移動設備包括:前述實施例所述的在glibc環境下控制安卓相機的裝置、相機硬件以及相機應用模塊;所述相機應用模塊,通過所述在glibc環境下控制安卓相機的裝置控制所述相機硬件的操作,并通過所述在glibc環境下控制安卓相機的裝置接收來自相機硬件的數據;所述相機硬件,接收來自所述在glibc環境下控制安卓相機的裝置的相機操作命令,執行相應的相機操作,并通過所述在glibc環境下控制安卓相機的裝置將相機硬件的數據返回給所述相機應用模塊。
[0015]本發明實施方式的方案不涉及對安卓相機硬件抽象層進行封裝,而是對硬件抽象層以上的安卓相機服務功能接口進行轉換,使得在glibc環境下能夠調用安卓環境下的相機功能接口,該方案不需要在系統運行時就在后臺運行相機服務,而是在相機啟動時才建立相機服務,進行數據傳輸,節約了系統資源,提高了運行效率。并且,由于相機服務是直接調用相機硬件抽象層的,不論相機硬件抽象層如何變化,都要遵循相機服務的規則,本發明的方案不需要針對不同的硬件抽象層設計不同的封裝方式,后期維護也很方便。
【專利附圖】
【附圖說明】
[0016]通過閱讀參照以下附圖所作的對非限制性實施例所作的詳細描述,本發明的其它特征、目的和優點將會變得更明顯:
[0017]圖1為本發明實施例的方法流程圖;
[0018]圖2為本發明實施例采用Libhybris技術進行功能接口轉換的示意圖;
[0019]圖3為本發明實施例的GStreamer多媒體框架圖;
[0020]圖4為本發明實施例的客戶端-服務端模型示意圖;
[0021]圖5為本發明實施例的GStreamer框架的細化功能框圖;
[0022]圖6為本發明實施例照相管道的功能框圖;
[0023]圖7為本發明實施例預覽管道的功能框圖;
[0024]圖8為本發明實施例錄像管道的功能框圖;
[0025]圖9為本發明實施例圖1中S103的細化流程圖;
[0026]圖10為本發明實施例拍照操作的工作流程圖;
[0027]圖11為本發明實施例圖1中S104的細化流程圖;
[0028]圖12為本發明實施相機插件的照相源的工作流程圖;
[0029]圖13為本發明實施相機插件的預覽源的工作流程圖;
[0030]圖14為本發明實施相機插件的錄像源的工作流程圖;
[0031]圖15為本發明實施移動設備的一種具體實現示意圖。
[0032]附圖中相同或相似的附圖標記代表相同或相似的部件。
【具體實施方式】
[0033]為了更好地理解和闡釋本發明,下面將結合附圖對本發明作進一步的詳細描述。
[0034]實施例1:
[0035]本實施例提供一種在glibc環境下控制安卓相機的方法,圖1為本實施例的方法流程圖。如圖1所示,本實施例的方法包括:
[0036]SlOl、將b1nic環境下的安卓相機服務中的功能接口通過Libhybris技術轉換成glibc環境能調用的功能接口。
[0037]圖2為本實施例采用Libhybris技術進行功能接口轉換的示意圖。
[0038]如圖2所不,在安卓(android)編譯環境下,在安卓相機服務(android cameraservice)中規定了基于安卓相機服務框架的功能接口,硬件廠商基于該功能接口通過相機的硬件抽象層(camera HAL)來實現各自的相機功能。
[0039]本實施例中,為了配合在glibc環境下實現對安卓相機的控制,不能直接使用安卓自帶的功能接口,而需要重新生成基于安卓相機服務框架的功能接口,如照相接口、預覽接口和錄像接口,然后將生成的功能接口通過Libhybris技術轉換成glibc能調用的功能接口,也就是生成在glibc環境下的功能接口。
[0040]這樣做的原因是,現有的安卓環境下的功能接口是在獲取硬件數據之后直接在安卓原生窗口(android native window)中顯示數據,而本實施例中生成的基于安卓相機服務框架的功能接口是采用數據回調的方式來傳輸數據,即不直接在android nativewindow中顯示數據而是通過回調方式傳給相機插件,并通過相機管道傳輸給相機應用模塊。
[0041]Libhybris技術是一項成熟的技術,它是一個兼容層,能夠加載安卓的硬件適配層,并能夠方便的實現從b1nic環境到glibc環境的轉換,本實施例是利用這項技術來實現安卓相機服務框架的功能接口的轉換,使得在glibc環境下能夠調用安卓環境下的相機服務功能接口。
[0042]S102、基于GStreamer框架生成能夠對轉換后的功能接口進行調用的相機插件。
[0043]圖3為本實施例的GStreamer多媒體框架圖。GStreamer是一個開放性的多媒體框架,在GStreamer中,采用插件形式來實現具體的功能。因此,本實施例為了調用經Libhybris技術轉換后的功能接口,需要基于GStreamer框架生成能夠對轉換后的功能接口進行調用的相機插件。本實施例的相機插件中包含與不同的相機操作命令對應的相機源,如照相源、預覽源和錄像源,分別對經Libhybris技術轉換后的功能接口中的照相接口、預覽接口和錄像接口進行調用。
[0044]S103、通過相機管道接收來自相機應用模塊的相機操作命令,驅動相機插件調用轉換后的功能接口,對相機硬件進行操作;
[0045]圖4為本實施例的客戶端-服務端模型示意圖。如圖4所示,本實施例中,相機應用模塊為客戶端,GStreamer框架為服務端。相機應用模塊為用戶提供照相、預覽以及錄像的功能,而GStreamer框架為這些功能提供具體的硬件數據并返回給相機應用模塊。
[0046]以照相為例,相機應用模塊發起照相請求,點擊拍照按鈕,服務端接收到請求,開始進行拍照操作,然后把拍照后的數據返回給相機應用模塊,相機應用模塊得到拍照數據,將數據存儲起來,這樣用戶就能看到照片。
[0047]圖5為本實施例的GStreamer框架的細化功能框圖。如圖5所示,本實施例的相機管道包括:照相管道、預覽管道和錄像管道;相機插件包括:照相源、預覽源和錄像源;轉換后的接口包括:照相接口、預覽接口和錄像接口 ;其中:照相管道驅動照相源,照相源調用照相接口 ;預覽管道驅動預覽源,預覽源調用預覽接口 ;錄像管道驅動錄像源,錄像源調用錄像接口。
[0048]當相機硬件獲得數據之后,通過轉換后的功能接口、相機插件和相機管道將數據傳輸給相機應用模塊。對于照相操作,在相機應用模塊中存儲為圖片文件;對于預覽操作,在相機應用模塊中顯示預覽數據;對于錄像操作,在相機應用模塊中存儲為錄像文件。
[0049]圖6為本實施例照相管道的功能框圖。如圖6所示:照相源的圖片數據進入照相管道后,首先通過過濾單元進行圖片類型過濾,然后通過輸出單元將經過圖片過濾的照片輸出存儲。本實施例的照相管道與現有技術所不同的是,在過濾單元和輸出單元之間沒有圖像編碼單元,因為本實施例的照相源獲得的就是圖片數據,不需要再次進行圖片編碼,而現有技術中基于GStreamer框架下的照相管道獲得的是沒有經過壓縮的YUV數據,因此需要圖像編碼單元對獲得的原始數據進行編碼來生成圖片。
[0050]圖7為本實施例預覽管道的功能框圖,如圖7所示:預覽源的數據進入預覽管道,由于預覽源的數據量比較大,需要讓源數據有序地進行顯示,因此在預覽管道中,首先要經過隊列單元的處理,把預覽源的數據進行排隊,然后經過過濾單元對數據類型進行過濾,最后送到預覽輸出單元進行顯示。
[0051]圖8為本實施例錄像管道的功能框圖,如圖8所示:錄像源進入錄像管道,同照相管道一樣,先通過過濾單元進行類型過濾,然后再經過錄像編碼單元進行音頻編碼和視頻編碼,將編碼后的數據通過錄像輸出單元輸出并存儲成錄像文件。
[0052]源作為數據的輸入端,經過相機管道后再輸出,因此輸入端的數據非常重要,也就是說只有源正確了,才能有正確的輸出。在具體實現中,本實施例的相機管道采用GStreamer框架下性能有待改善的插件(gst-plugins-bad)中的camerabin20
[0053]圖9為S103的細化流程圖。如圖9所示:
[0054]S901、通過與相機操作命令對應的相機管道接收來自相機應用模塊的相機操作命令;
[0055]S902、由對應的相機管道驅動相機插件中與操作命令對應的相機源;
[0056]S903、由對應的相機源調用轉換后的功能接口中與操作命令對應的功能接口,對相機硬件進行操作。
[0057]下面以拍照操作為例來說明圖9的具體過程。圖10為拍照操作的工作流程圖。首先相機插件需要注冊到GStreamer中,這樣GStreamer就可以找到該相機插件。當相機應用發送拍照請求后,GStreamer接收到拍照請求,通知Camerabin2,然后Camerabin2根據請求,在拍照管道中,驅使相機插件進行拍照,此時相機插件根據Camerbin2的指示,通過相機服務功能接口的拍照動作調用Camera HAL來實現拍照功能。
[0058]S104、由相機插件通過轉換后的功能接口接收相機硬件生成的數據,并將數據經由相機管道返回相機應用模塊。
[0059]圖11為S104的細化流程圖。如圖4所示:S104具體包括:
[0060]S1101、由轉換后的功能接口中與操作命令對應的功能接口接收來自相機硬件生成的數據;
[0061]S1102、由對應的功能接口將數據發送給相機插件中與操作命令對應的相機源;
[0062]S1103、由對應的相機源將數據發送給與相機操作命令對應的相機管道;
[0063]SI 104、由對應的相機管道將數據輸出給相機應用模塊。
[0064]下面詳細描述相機插件中照相源、預覽源和錄像源的工作原理。
[0065]圖12為本實施例相機插件的照相源的工作流程。如圖12所示:照相開始時,需要知道當前的動作行為,如先判斷是否是照相,如果是要進行照相,那么開始設置照相類型、照相模式,這些基本操作完成后,開始獲取照相數據,在獲取數據時,調用轉換后的照相接口,把獲取的數據輸出到照相管道中,并輸出給相機應用模塊存儲;如果不是照相,那么就處于等待狀態,直到照相動作開始。
[0066]圖13為本實施例相機插件的預覽源的工作流程,如圖13所示:相機啟動,判斷是不是實時運行預覽操作,如果是,則直接獲取數據,輸出到預覽管道用于顯示,如果不是,則等待,一直到實時運行預覽為止。類似的,預覽源獲取數據時,會調用轉換后的預覽接口。
[0067]圖14為本實施例相機插件的錄像源的工作流程,如圖14所示:相機開始錄像時,首先要判斷當前是不是錄像模式,如果是的話,那么直接獲取數據輸出,如果不是的話,先改變相機模式為預覽模式,然后判斷是不是需要錄像,如果不是,則等待,直到需要錄像為止;如果是,則改變相機模式為錄像模式,然后獲取錄像數據,輸出到錄像管道中。類似的,錄像源獲取數據時會調用轉換后的錄像接口。
[0068]本實施例的方法不涉及對安卓相機硬件抽象層進行封裝,而是對硬件抽象層以上的安卓相機服務功能接口進行轉換,使得在glibc環境下能夠調用安卓環境下的相機功能接口,并不需要在系統運行時都在后臺運行相機服務,而是在相機啟動時才建立相機服務,進行數據傳輸,節約了系統資源,提高了運行效率。而且由于相機服務是直接調用相機硬件抽象層的,不論相機硬件抽象層如何變化,都要遵循相機服務的規則,本發明的方案不需要針對不同的硬件抽象層設計不同的封裝方式,后期維護也很方便。
[0069]實施例2:
[0070]本實施例提供一種在glibc環境下控制安卓相機的裝置及包含該裝置的移動設備。本實施例的裝置架構可以參見圖3和圖5。
[0071]如圖3所示,該裝置包括:相機管道、相機插件以及功能接口 ;功能接口是將b1nic環境下的安卓相機服務中的功能接口通過Libhybris技術轉換成的glibc環境能調用的功能接口 ;相機插件是基于GStreamer框架生成的能夠對轉換后的功能接口進行調用的相機插件;其中:相機管道,接收來自相機應用模塊的相機操作命令,驅動相機插件調用轉換后的功能接口,對相機硬件進行操作;相機插件,通過轉換后的功能接口接收相機硬件生成的數據,并將數據經由相機管道返回相機應用模塊。
[0072]具體地,當從相機應用模塊啟動相機操作功能時:相機管道,通過與相機操作命令對應的相機管道接收來自相機應用模塊的相機操作命令,并由對應的相機管道驅動相機插件中與操作命令對應的相機源;相機插件,由對應的相機源調用功能接口中與操作命令對應的功能接口,對相機硬件進行操作。
[0073]本實施例的相機管道包括:照相管道、預覽管道和錄像管道;相機插件包括照相源、預覽源和錄像源;轉換后的接口包括:照相接口、預覽接口和錄像接口 ;照相管道,驅動照相源;照相源,調用照相接口 ;預覽管道,驅動預覽源;預覽源,調用預覽接口 ;錄像管道,驅動錄像源;錄像源,調用錄像接口。
[0074]具體地,本實施例的照相管道包括:過濾單元,接收來自照相源的圖片數據,對圖片類型進行過濾;圖片輸出單元,將過濾后的圖片提供給相機應用模塊。
[0075]具體地,當從相機硬件向相機應用模塊發送數據時:功能接口,通過功能接口中與操作命令對應的功能接口接收來自相機硬件的數據,并將數據發送給相機插件中與操作命令對應的相機源;相機插件,由對應的相機源將數據發送給與相機操作命令對應的相機管道;相機管道,由對應的相機管道將數據輸出給相機應用模塊。
[0076]本實施例的相機插件、相機管道和功能接口的工作原理在實施例1中已經進行了詳細描述,此處不再贅述。
[0077]本實施例還提供一種移動設備,該移動設備包括前述在glibc環境下控制安卓相機的裝置、相機硬件以及相機應用模塊;其中:相機應用模塊,通過在glibc環境下控制安卓相機的裝置控制相機硬件的操作,并通過在glibc環境下控制安卓相機的裝置接收來自相機硬件的數據;相機硬件,接收來自在glibc環境下控制安卓相機的裝置的相機操作命令,執行相應的相機操作,并通過在glibc環境下控制安卓相機的裝置將相機硬件的數據返回給相機應用模塊。
[0078]圖15為本實施例移動設備的一種具體實現示意圖。如圖15所示:
[0079]該移動設備具有處理器510,其負責移動設備的整體操作,并且可以利用中央處理單元(CPU)、數字信號處理器(DSP)或任何其他電子可編程邏輯器件(PLD)實現。處理器510具有關聯的存儲器520,該存儲器520包括但不限于RAM存儲器、ROM存儲器、EEPROM存儲器、閃存或其組合。存儲器520由處理器510控制用于各種目的,其中之一在于為移動設備中各種軟件存儲程序指令和數據。
[0080]該移動設備還包括實時操作系統540、用于人機界面560的驅動器、應用處理機550和各種應用。應用例如是文本編輯器551、手寫識別應用552和其他多媒體應用553,典型地該其他多媒體應用包括諸如語音呼叫應用、視頻呼叫應用、發送和接收短消息服務(SMS)消息應用、多媒體消息服務(MMS)應用或電子郵件應用、web瀏覽器、即時消息收發應用、電話簿應用、日歷應用、控制面板應用、照相機應用、一個或多個視頻游戲、記事本應用等。應當注意,上述應用的兩個或更多可以作為同一應用執行。本實施例的相機應用模塊可以是位于多媒體應用553中。本實施例的在glibc環境下控制安卓相機的裝置可以位于實時操作系統540中。
[0081]該移動設備還包括一個或多個硬件控制器,用于與人機界面560的驅動器一起與顯不設備561,相機562、麥克風563和各種I/O設備(諸如揚聲器、振動器、響鈴發生器、LED指示器等)564協作,以實現移動的人機交互。本領域技術人員應當理解用戶可以通過這樣形成的人機界面560來操作移動終端。
[0082]該移動終端還可以包括各種模塊、協議棧、驅動器等與通信相關的邏輯,歸納為如圖15中示出的通信接口 570,用于為無線射頻接口 571以及可選地為藍牙接口 572和/或紅外接口 573提供通信服務(例如傳輸、網絡和連通性),以實現智能終端的互聯互通。無線射頻接口 571包括內部或外部天線以及用于建立和維護通往基站的無線鏈路的適當電路。如本領域技術人員公知的,電路包括一系列模擬和數字電子組件,其一起形成無線電接收機和發射機。這些組件例如包括帶通濾波器、放大器、混頻器、本地振蕩器、低通濾波器、AD/DA轉換器等。
[0083]該智能終端還可以包括讀卡裝置530,該讀卡裝置530用于讀出SM卡的信息并以此為根據協作無線射頻接口 571接入運營商所提供的網絡。
[0084]本發明實施方式的裝置不涉及對安卓相機硬件抽象層進行封裝,而是對硬件抽象層以上的安卓相機服務功能接口進行轉換,使得在glibc環境下能夠調用安卓環境下的相機功能接口,并不需要在系統運行時都在后臺運行相機服務,而是在相機啟動時才建立相機服務,進行數據傳輸,節約了系統資源,提高了運行效率。而且由于相機服務是直接調用相機硬件抽象層的,不論相機硬件抽象層如何變化,都要遵循相機服務的規則,本發明的方案不需要針對不同的硬件抽象層設計不同的封裝方式,后期維護也很方便。
[0085]本發明提供的在glibc環境下控制安卓相機的方法可以使用可編程邏輯器件來實現,也可以實施為計算機程序產品,該程序產品使計算機執行用于所示范的方法。計算機程序產品包括計算機可讀存儲介質,該介質上包含計算機程序邏輯或代碼部分,用于實現上述方法的各個步驟。計算機可讀存儲介質可以是被安裝在計算機中的內置介質或者可從計算機主體拆卸的可移動介質(例如可熱拔插的存儲設備)。內置介質包括但不限于可重寫的非易失性存儲器,例如RAM、ROM和硬盤。可移動介質包括但不限于:光存儲媒體(例如CD-ROM和DVD)、磁光存儲媒體(例如MO)、磁存儲媒體(例如磁帶或移動硬盤)、具有內置的可重寫的非易失性存儲器的媒體(例如存儲卡)和具有內置ROM的媒體(例如ROM盒)。
[0086]本領域技術人員應當理解,任何具有適當編程裝置的計算機系統都能夠執行包含在計算機程序產品中的本發明的方法的諸步驟。盡管本說明書中描述的多數【具體實施方式】都側重于軟件程序,但是以硬件方式實現本發明提供的方法的替代實施例同樣在本發明要求保護的范圍之內。
[0087]對于本領域技術人員而言,顯然本發明不限于上述示范性實施例的細節,而且在不背離本發明的精神或基本特征的情況下,能夠以其他的具體形式實現本發明。因此,應將實施例看作是示范性的,而且是非限制性的,本發明的范圍由所附權利要求而不是上述說明限定,在權利要求的等同要件的含義和范圍內的所有變化均涵括在本發明內。不應將權利要求中的任何附圖標記視為限制所涉及的權利要求。此外,顯然“包括”一詞不排除其他部件、單元或步驟,單數不排除復數。權利要求中陳述的多個部件、單元或裝置也可以由一個部件、單元或裝置通過軟件或者硬件來實現。
[0088]以上所披露的僅為本發明的一些較佳實施例,不能以此來限定本發明權利要求的保護范圍,依照本發明權利要求所作的等同變化,仍屬本發明所涵蓋的范圍。
【權利要求】
1.一種在glibc環境下控制安卓相機的方法,其特征在于,所述方法包括: 將b1nic環境下的安卓相機服務中的功能接口通過Libhybris技術轉換成glibc環境能調用的功能接口; 基于GStreamer框架生成能夠對轉換后的功能接口進行調用的相機插件; 通過相機管道接收來自相機應用模塊的相機操作命令,驅動所述相機插件調用所述轉換后的功能接口,對相機硬件進行操作; 由所述相機插件通過所述轉換后的功能接口接收相機硬件生成的數據,并將數據經由所述相機管道返回所述相機應用模塊。
2.根據權利要求1所述的方法,其特征在于,通過相機管道接收來自相機應用模塊的相機操作命令,驅動所述相機插件調用所述轉換后的功能接口,對相機硬件進行操作包括: 通過與所述相機操作命令對應的相機管道接收來自相機應用模塊的所述相機操作命令; 由所述對應的相機管道驅動所述相機插件中與所述操作命令對應的相機源; 由所述對應的相機源調用所述轉換后的功能接口中與所述操作命令對應的功能接口,對相機硬件進行操作。
3.根據權利要求1所述的方法,其特征在于,由所述相機插件通過轉換后的功能接口接收相機硬件生成的數據并將數據經由所述相機管道返回所述相機應用模塊包括: 由所述轉換后的功能接口中與所述操作命令對應的功能接口接收來自相機硬件生成的數據; 由所述對應的功能接口將所述數據發送給所述相機插件中與所述操作命令對應的相機源; 由所述對應的相機源將所述數據發送給與所述相機操作命令對應的相機管道; 由所述對應的相機管道將所述數據輸出給所述相機應用模塊。
4.根據權利要求2所述的方法,其特征在于,所述相機管道包括:照相管道、預覽管道和錄像管道;所述相機插件包括:照相源、預覽源和錄像源;所述轉換后的接口包括:照相接口、預覽接口和錄像接口 ; 所述照相管道驅動所述照相源,所述照相源調用所述照相接口 ; 所述預覽管道驅動所述預覽源,所述預覽源調用所述預覽接口 ; 所述錄像管道驅動所述錄像源,所述錄像源調用所述錄像接口。
5.一種在glibc環境下控制安卓相機的裝置,其特征在于,所述裝置包括:相機管道、相機插件以及功能接口 ;所述功能接口是將b1nic環境下的安卓相機服務中的功能接口通過Libhybris技術轉換成的glibc環境能調用的功能接口 ;所述相機插件是基于GStreamer框架生成的能夠對轉換后的功能接口進行調用的相機插件; 所述相機管道,接收來自相機應用模塊的相機操作命令,驅動所述相機插件調用所述轉換后的功能接口,對相機硬件進行操作; 所述相機插件,通過所述轉換后的功能接口接收相機硬件生成的數據,并將數據經由所述相機管道返回所述相機應用模塊。
6.根據權利要求5所述的裝置,其特征在于: 所述相機管道,通過與所述相機操作命令對應的相機管道接收來自相機應用模塊的所述相機操作命令,并由所述對應的相機管道驅動所述相機插件中與所述操作命令對應的相機源; 所述相機插件,由所述對應的相機源調用所述功能接口中與所述操作命令對應的功能接口,對相機硬件進行操作。
7.根據權利要求5所述的裝置,其特征在于: 所述功能接口,通過所述功能接口中與所述操作命令對應的功能接口接收來自相機硬件的數據,并將所述數據發送給所述相機插件中與所述操作命令對應的相機源; 所述相機插件,由所述對應的相機源將所述數據發送給與所述相機操作命令對應的相機管道; 所述相機管道,由所述對應的相機管道將所述數據輸出給所述相機應用模塊。
8.根據權利要求6所述的裝置,其特征在于:所述相機管道包括:照相管道、預覽管道和錄像管道;所述相機插件包括照相源、預覽源和錄像源;所述轉換后的接口包括:照相接口、預覽接口和錄像接口 ; 所述照相管道,驅動所述照相源; 所述照相源,調用所述照相接口 ; 所述預覽管道,驅動所述預覽源; 所述預覽源,調用所述預覽接口 ; 所述錄像管道,驅動所述錄像源; 所述錄像源,調用所述錄像接口。
9.根據權利要求8所述的照相管道,其特征在于,所述照相管道包括: 過濾單元,接收來自所述照相源的圖片數據,對圖片類型進行過濾; 圖片輸出單元,將過濾后的圖片提供給相機應用模塊。
10.一種移動設備,其特征在于,所述移動設備包括:權利要求5-9中任意一項權利要求所述的在glibc環境下控制安卓相機的裝置、相機硬件以及相機應用模塊; 所述相機應用模塊,通過所述在glibc環境下控制安卓相機的裝置控制所述相機硬件的操作,并通過所述在glibc環境下控制安卓相機的裝置接收來自相機硬件的數據; 所述相機硬件,接收來自所述在glibc環境下控制安卓相機的裝置的相機操作命令,執行相應的相機操作,并通過所述在glibc環境下控制安卓相機的裝置將相機硬件的數據返回給所述相機應用模塊。
【文檔編號】G06F9/44GK104484181SQ201410816044
【公開日】2015年4月1日 申請日期:2014年12月23日 優先權日:2014年12月23日
【發明者】王 華 申請人:北京元心科技有限公司