專利名稱:應(yīng)用程序崩潰后向視頻堆棧的接入保持的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及使用視頻流的計(jì)算機(jī)系統(tǒng),特別涉及當(dāng)使用視頻流的應(yīng)用程序發(fā)生崩潰時仍能與視頻流保持接入的技術(shù)。
計(jì)算機(jī)系統(tǒng)經(jīng)常用來為與之相連的電視機(jī)或顯示器提供電視節(jié)目,電視機(jī)一般配有電視調(diào)諧卡。電視與計(jì)算機(jī)的結(jié)合有很多優(yōu)勢。計(jì)算機(jī)可以提供方便選擇電視節(jié)目的軟件,例如使用電子節(jié)目指南。此外,電視還可以接收包含電視節(jié)目并伴隨有網(wǎng)絡(luò)內(nèi)容的互動式的廣播節(jié)目。網(wǎng)絡(luò)內(nèi)容,其可以與電視節(jié)目相關(guān),可以提供更多信息并允許用戶回應(yīng)在電視廣播中做出的查詢。不僅如此,還可以提供鏈接,使瀏覽者連接到與廣播公司或廣播本身相關(guān)的因特網(wǎng)網(wǎng)站。
當(dāng)應(yīng)用程序調(diào)用電視節(jié)目時,應(yīng)用程序接入一視頻堆棧,視頻堆棧是處理視頻的軟件層,其為應(yīng)用程序提供視頻流。如果應(yīng)用程序在視頻流的傳輸過程中發(fā)生崩潰,視頻流將不可能被正確的關(guān)閉。結(jié)果是,沒有發(fā)生崩潰的應(yīng)用程序也無法接入視頻堆棧。
對于崩潰發(fā)生后,隨后希望接入視頻堆棧的一個應(yīng)用程序,需要重新啟動計(jì)算機(jī)系統(tǒng),重新設(shè)置視頻堆棧,才能與視頻堆棧重新建立連接。這對很多計(jì)算機(jī)用戶來說是很不方便的事情,因?yàn)橛?jì)算機(jī)用戶可能正在其計(jì)算機(jī)上運(yùn)行的其他處理,不得不因需要重啟計(jì)算機(jī)而中斷。
因此,對電視視頻流系統(tǒng)來說,希望當(dāng)使用視頻堆棧的應(yīng)用程序發(fā)生崩潰時,不需要重新啟動計(jì)算機(jī)系統(tǒng)仍能允許對視頻堆棧的接入。
依據(jù)本發(fā)明的一個實(shí)施例,一種接入視頻流的方法包含當(dāng)一個第一應(yīng)用程序請求視頻時使用一個視頻服務(wù)器(video server)來初始化視頻流。如果第一應(yīng)用程序崩潰,通過視頻服務(wù)器為一個第二應(yīng)用程序維持對視頻流的連接。
圖1是依照本發(fā)明的一個實(shí)施例的具有一個視頻服務(wù)器和一個視頻堆棧的一對應(yīng)用程序的相互作用的示意圖;圖2示出了圖1所示系統(tǒng)的操作流程圖;和圖3是實(shí)現(xiàn)本發(fā)明一個實(shí)施例的計(jì)算機(jī)的方框圖。
如圖1所示,應(yīng)用程序與電視視頻通過一視頻服務(wù)器連接,該視頻服務(wù)器通過一個獨(dú)立的視頻窗來工作,該視頻窗的存儲地址空間區(qū)別于應(yīng)用程序本身所使用的存儲地址空間。視頻服務(wù)器例如可以是一個電視視頻服務(wù)器,也可以是一個數(shù)字視頻盤(DVD)服務(wù)器。由方框10表示的應(yīng)用程序“A”建立一個父視頻窗14。該父視頻窗14連通至視頻服務(wù)器18,后者生成父視頻窗14的子視頻窗19。在實(shí)際運(yùn)行中,父視頻窗向子視頻窗設(shè)定操作,子視頻窗再向視頻堆棧設(shè)定操作。
服務(wù)器18由此將視頻放入子視頻窗19中。子視頻窗19處理服務(wù)器18與視頻堆棧20之間的通信。視頻堆棧20例如可以是Video for Windows或DirectShow,兩者均來自微軟公司。由于視窗14與視窗19運(yùn)行于計(jì)算機(jī)存儲器中的分離且不同的地址空間,因此如果應(yīng)用程序A崩潰,如圖1所示,電視服務(wù)器(TV server)18中的視窗19仍可以被維持。
在現(xiàn)有的計(jì)算機(jī)系統(tǒng)中,當(dāng)應(yīng)用程序A崩潰時,提供視頻服務(wù)的視窗14也同時崩潰,并使視頻堆棧20處于不可用的狀態(tài)。因此,如果不重新啟動計(jì)算機(jī)的話,另一個試圖接入視頻服務(wù)的應(yīng)用程序,例如方框12中的應(yīng)用程序B,就不能進(jìn)行。
在如圖1所示的本發(fā)明的具體實(shí)施例中,應(yīng)用程序12可以建立其自身的父視窗14,其繼而處理電視服務(wù)器18中的視頻窗19。應(yīng)用程序B可以快速地通過服務(wù)器18與視頻堆棧連接,而不需要考慮應(yīng)用程序A可能已經(jīng)崩潰和不能運(yùn)行的事實(shí)。關(guān)于服務(wù)器18和視窗19中的設(shè)置可以繼續(xù)維持而不受應(yīng)用程序A的崩潰的影響。
請參考圖2,圖2是用于實(shí)現(xiàn)圖1所示的系統(tǒng)的實(shí)施例的軟件程序,其從28開始。如方框30所示,一個例如應(yīng)用程序A的應(yīng)用程序,接入電視服務(wù)器18。應(yīng)用程序請求視頻(方框32),如菱形框34所示,執(zhí)行一次查詢以判斷視頻是否已經(jīng)初始化。如是,則對該視頻進(jìn)行解初始化。這可以將視頻恢復(fù)成已知、穩(wěn)定的狀態(tài)。如否,電視服務(wù)器使用由應(yīng)用程序提供的父視頻窗對視頻進(jìn)行初始化(方框38)。如方框40所示,應(yīng)用程序如其所設(shè)想的意圖使用視頻。
在菱形框42中,查詢并判斷應(yīng)用程序是否崩潰。崩潰檢測例如可以通過監(jiān)視異常處理碼來完成。軟件可以綁定操作系統(tǒng)并等待預(yù)先設(shè)置的異常處理碼來指示崩潰。當(dāng)某一特定的碼被檢測到時,軟件就可以判斷出在應(yīng)用程序中發(fā)生了崩潰。一旦檢測出有崩潰發(fā)生,在方框48中,視頻堆棧會自動關(guān)閉,在方框50中,電視調(diào)諧卡也同時自動關(guān)閉。
如果未檢測出崩潰發(fā)生,當(dāng)應(yīng)用程序處理完視頻時,應(yīng)用程序最后會要求電視服務(wù)器關(guān)掉視頻,如方框44所示。只要操作系統(tǒng)正常工作,應(yīng)用程序就保留視頻初始化的狀態(tài),如方框46所示。
一旦發(fā)生崩潰,當(dāng)檢測出錯誤狀態(tài)時通過馬上關(guān)閉視頻堆棧和電視調(diào)諧卡,視頻堆棧仍可以對例如圖1中所示的應(yīng)用程序B的后繼的應(yīng)用程序保持可使用的狀態(tài)。即使父視頻窗14不能使用,電視服務(wù)器18仍可以正常運(yùn)行并可接入視頻堆棧20,這是由于電視服務(wù)器中的窗口19所使用的地址空間區(qū)別于應(yīng)用程序的窗口14的地址空間。
使用服務(wù)器18提供的操作可以在窗口中激活視頻。如果出現(xiàn)崩潰,父窗口14消失,但視頻堆棧仍舊與電視服務(wù)器的窗口19相連。當(dāng)一個新的應(yīng)用程序啟動時,其請求來自電視服務(wù)器18的視頻,而電視服務(wù)器可以不受前一應(yīng)用程序崩潰的影響,提供對視頻堆棧的連接。
請參照圖3,用于實(shí)現(xiàn)本發(fā)明實(shí)施例的一個示例性的計(jì)算機(jī)系統(tǒng)51,包含與一橋接器(Bridge)54相連接的一處理器52。橋接器54進(jìn)一步連接到系統(tǒng)存儲器56。系統(tǒng)存儲器56包含多個地址空間,包括地址空間70和72。地址空間70和72中的一個地址空間可以用于視窗19,另一個可以用于視窗14。
橋接器54與一常規(guī)的總線58相連。一調(diào)諧卡62與總線58相連。顯示器64,例如可以是一電視,與調(diào)諧卡62相連。橋接器60也與總線58相連。橋接器60與硬盤驅(qū)動器66相連接,硬盤驅(qū)動器66中存儲了包含實(shí)現(xiàn)服務(wù)器18、視頻堆棧20、和應(yīng)用程序68的多個軟件程序,應(yīng)用程序68對應(yīng)于圖1中所示的應(yīng)用程序A或應(yīng)用程序B。
盡管本發(fā)明僅列出了有限的實(shí)施例,但本領(lǐng)域的技術(shù)人員仍可據(jù)此做出許多相關(guān)的修改和改進(jìn)。應(yīng)當(dāng)明了的是,凡屬依據(jù)本發(fā)明構(gòu)思所能得到方法或改進(jìn),均屬本發(fā)明權(quán)利要求保護(hù)的范圍。
權(quán)利要求
1.一種接入視頻流的方法,包含當(dāng)一個第一應(yīng)用程序請求視頻時,使用一個視頻服務(wù)器初始化視頻流;和如果該第一應(yīng)用程序被崩潰,通過視頻服務(wù)器為一個第二應(yīng)用程序維持對視頻流的接入。
2.如權(quán)利要求1所述的方法,其特征在于包含檢測該第一應(yīng)用程序是否崩潰。
3.如權(quán)利要求1所述的方法,其特征在于包含當(dāng)檢測出有崩潰發(fā)生時關(guān)閉視頻堆棧。
4.如權(quán)利要求1所述的方法,其特征在于包含當(dāng)檢測出有崩潰發(fā)生時關(guān)閉一電視捕捉卡。
5.一種包含用于存儲指令的介質(zhì)的裝置,該指令用于使計(jì)算機(jī)完成當(dāng)一個第一應(yīng)用程序請求視頻時,使用一個視頻服務(wù)器初始化視頻流;和如果該第一應(yīng)用程序崩潰,通過視頻服務(wù)器為一個第二應(yīng)用程序維持對視頻流的接入。
6.如權(quán)利要求5所述的裝置,其特征在于包含使計(jì)算機(jī)檢測該第一應(yīng)用程序是否崩潰的指令。
7.如權(quán)利要求6所述的裝置,其特征在于進(jìn)一步包含使計(jì)算機(jī)通過監(jiān)視一異常處理程序來檢測該第一應(yīng)用程序是否崩潰的指令。
8.如權(quán)利要求5所述的裝置,其特征在于包含使計(jì)算機(jī)在檢測到崩潰時,關(guān)閉視頻堆棧的指令。
9.如權(quán)利要求5所述的裝置,其特征在于包含使計(jì)算機(jī)在檢測到崩潰時,關(guān)閉電視捕捉卡的指令。
10.如權(quán)利要求5所述的裝置,其特征在于包含使計(jì)算機(jī)使用一區(qū)別于應(yīng)用程序的地址空間來操作所述視頻流的指令。
11.如權(quán)利要求5所述的裝置,其特征在于包含使計(jì)算機(jī)在檢測到崩潰時,令電視服務(wù)器釋放視頻堆棧的指令。
12.如權(quán)利要求5所述的裝置,其特征在于包含使計(jì)算機(jī)在應(yīng)用程序中打開一個第一窗口用于接入電視服務(wù)器,和在所述服務(wù)器中打開一個第二窗口用于接入視頻堆棧的指令。
13.一計(jì)算機(jī)系統(tǒng),包含一處理器;一電視調(diào)諧卡,與處理器相連接;一存儲器,與所述的處理器相連接,其中存儲的程序可令計(jì)算機(jī)執(zhí)行將需要視頻服務(wù)的應(yīng)用程序與電視服務(wù)器通過一個窗口相連接,該窗口使用的地址空間區(qū)別于應(yīng)用程序所使用的地址空間;監(jiān)視并判斷在接收視頻流時應(yīng)用程序是否崩潰;和當(dāng)應(yīng)用程序崩潰時,自動關(guān)閉視頻堆棧和視頻捕捉卡。
全文摘要
一應(yīng)用程序在進(jìn)行視頻服務(wù)時可通過一單獨(dú)的服務(wù)器與視頻堆棧相連接,該單獨(dú)的視頻服務(wù)器使用的窗口的地址空間區(qū)別于應(yīng)用程序本身所使用的視頻窗口的地址空間。當(dāng)應(yīng)用程序崩潰時,可以有充足的時間保證電視捕捉卡和視頻堆棧正確的依次被關(guān)閉并能使其被隨后的應(yīng)用程序重新使用而不需要重新啟動計(jì)算機(jī)。
文檔編號G06F17/30GK1317115SQ99810637
公開日2001年10月10日 申請日期1999年8月26日 優(yōu)先權(quán)日1998年9月15日
發(fā)明者詹姆斯·凱特倫諾斯 申請人:英特爾公司