TWI357015B - Method, apparatus, computer-readable media, comput - Google Patents
Method, apparatus, computer-readable media, comput Download PDFInfo
- Publication number
- TWI357015B TWI357015B TW093103834A TW93103834A TWI357015B TW I357015 B TWI357015 B TW I357015B TW 093103834 A TW093103834 A TW 093103834A TW 93103834 A TW93103834 A TW 93103834A TW I357015 B TWI357015 B TW I357015B
- Authority
- TW
- Taiwan
- Prior art keywords
- audio
- global
- engine
- buffer
- processing
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/16—Sound input; Sound output
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1438—Restarting or rejuvenating
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- General Health & Medical Sciences (AREA)
- Human Computer Interaction (AREA)
- Storage Device Security (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
- Examining Or Testing Airtightness (AREA)
- Accessory Devices And Overall Control Thereof (AREA)
- Electric Clocks (AREA)
Description
1357015 _ 96年2僉3日修正替換頁 :V:二' /0' y:K~ :;rvd;r.:v :.:/-5Ά 7,,“ 。 -j: :.' i;;·· 【發明所屬之技術領域】 本發明大體上係有關於串流音訊處理作業,且更特別 是,係有關於串流送出音訊處理作業期間藉由一音訊處理 物件自一存取違規當中恢復。 【先前技術】 愈來愈常以諸如個人電腦(PC)的計算系統來記錄和播 放串流音訊資料。能將個人電腦用作幾個音訊、視頻及多 媒體應用程式同時執行之一種媒體伺服器,每一應用程式都 使用個人電腦的作業系統(0S)。 藉由一 PC的例子作為一 媒體伺服器,考慮以下的同時使用情景。一數位視頻碟係 藉由使用個人電腦上的一 DVD播放機的一第一媒體播放應 用程式(MP)來播放。對各自計算系統的使用者在一封包交 換網路上互相對談的網路電話服務系統,使用一麥克風作為 在一即時通'訊應用程式(RTC)中的一網際網路語音協定,極 如同為一電話使用者在一傳統電路交換網路上與另一電話 使用者談話一樣。在使用者與個人電腦互動的期間,系統 聲音是由0 S產生的。在透過一電纜或衛星電視廣播系統 來接收串流多媒體時,一隨取視訊應用程式(VOD)係藉由個 人電腦來執行。一音樂碟(例如,音樂光碟)係藉著使用個 人電腦的一光碟機之第二媒體播放應用程式的執行來播放 的。另一使用者正在個人電腦上播放一視頻遊戲,在該個人 電腦上一對應的遊戲應用程式正依據遊戲應用程式與使用 5 % 4月2¾修正機頁I第例〇邻外號專利案丨〇0年屮月修正 者的互動而產生一音訊資料流。也能夠在個人電腦上執行 或更多全域音效(GFX)應用程式。GFX的例子包括餘響 效果應用程式、聲音失真效果應用程式,由在一或更多的擴 曰盗所轉換表現(render)之串流音訊資料的數位訊號處理 (DSP)所執行的一擴音器補償應用程式、多頻帶音訊等化器 應用程式正被執行以致於表現與一音訊裝置(例如,音效卡) 作而使知PC使用者能夠自該音訊裝置的各種預設值(例 如,音樂.會大廳、搖滾、古典,等等)來調整音訊輸出之一 使用者界面,並且在一或更多音訊資料流上作數位訊號處理 的其他GFX係被輸出至由一或更多音訊裝置驅動程式所驅 動之一或更多音訊裝置。 上述例子中所列的任何應用程式以及其他音訊視覺應 用程式的撰寫可能相當拙劣,以致於它的執行失敗且導致應 用程式中止。這樣的應用程式的失敗會造成個人電腦〇S的 一嚴重失敗’也稱為一電腦當機(crash),個人電腦本身停止 工作。一電腦當機能指示在撰寫該應用程式之碼中的一很 嚴重的軟體毛病(bug)。在要求0S輸出至一音訊裝置之一音 訊應用程式的例子中,該bug可造成一存取違規。用於0S 的一核心(例如,排程服務)記憶體及用來處理〇S中的音訊 之記憶體完全彼此獨立。當該音訊應用程式執行一不是常 駐記憶體的存取時,一存取違規發生(例如,該記憶體存取 不是合法的或不允許的)〇當一音訊應用程式具有一正在核 心模式中執行之音訊裝置驅動程式時,通常一存取違規發 生。若音訊應用程式對0S核心層或對音訊裝置驅動程式 1357015 〇: - 年月3修正替換頁 層作一存取違規的話,該存取違規會致使一電腦當機。 只要OS的核心保待完整無損’故障(crash)的音訊應用 程式將不造成這個核心的不穩定。寧可僅音訊應用程式停 止工作及必須重新開始》 然而,核心的一存取違規會造成 該核心變得不穩定,以致於沒有恢復可能性的一致命錯誤。 在一微軟視窗作業系統環境中,由在一藍幕上顯示的—診斷 通知一 PC使用者關於一電腦當機。因此,習知使用術語 (BSOD) “致命藍幕”。當使用者得到BSOD時,沒有其他恢 復的辦法’而就是重新開始或使PC重新開機。 當 >軟體 害發生 同層級 用程式 影響所 置之音 的情景 當機, 載入- 幾個執行的音訊和 bug時,一個人電腦使用作為一媒體伺服器的特定系 °軟體bug能致使在個人電腦轉換表現的音訊中习 的破壞。在最小的破壞中,僅影響由置放bug的屬 所產生的音訊資料流。在破壞的一較高的層級中, 有的音訊裝置並且也許停止工作’其為對所有音訊身 訊全域轉換表現(render)的一休止。在一甚至更嚴, 中,在音訊應用程式之一者中的軟體bug造成一電届 因此需要在個人電腦上的所有活動停止直到〇8重| 其會花上幾分鐘的時間。 一…叫W給足的,在此孜势甲再將是—優點為提供一 ::計算系統上正執行之任何種類的音訊應用程式之 請求OS,而獨立該音訊應用程式,因 .此在執行期間該 應用程式的失敗造成既不停止全域音訊 腦當機。 轉換表現也不 7 1357015 %4,#〇3修正替換頁 【發明内容】 在一實作中,一作業系統的一系统音訊服務保存一音訊 應用程式的背景參數(context),其為即使該音訊應用程式的 處理作業失敗的話,可恢復該處理作業。在另一實作中, 一計算系統具有用於執行一音訊應用程式以產生第一音訊 資料流的一處理器。該處理器執行一邏輯上分成用於一核 心的部分和用於一音訊子系統的部分之作業系統。該音訊 子系統被分區成邏輯上分離的子分區(subpartions)。 以音 訊子系統用來處理該第一音訊資料流的一處理作業(例如, 一音訊處理物件),在一第二子分區中執行該處理作業之 前,具有在一第一子分區中保存的一背景參數。當該方法 觸犯一存取違規時,該處理作業係藉由從該第一子分區所保 存的背景參數而恢復。該處理作業所保存的背景參數包括 足以恢復在該音訊子系統中保存的背景參數之復原的位址 和資料結構資訊。當處理器執行一音訊應用程式以產生一 輸出至一第二音訊裝置的第二音訊資料流,該第二音訊裝置 係不同於該第一音訊資料流所輸出於第一音訊裝置。 【實施方式】 多個音訊裝置和用於驅動該音訊裝置之應用驅動程式 可與用作一媒體伺服器的一計算系統通訊。如此,計算系 統能同時將音訊送到一者以上的音訊裝置。計算系統的一 作業系統(0S)都具有一核心和一内建的音訊子系統,該音訊 正替換頁 子系統僅是作業系統的許多子系統之一子系統。一或更多 應用程式對音訊子系統作一要求以執行一音訊處理物件 (APO),該音訊處理物件將具有—全域效果(gfx)在關於該 等音訊裝置之一的整個音訊上。透過例子,GFX音訊處理 物件可是一餘響效果、一失真效果、一擴音器補償效果, 或另一數位訊號處理(DSP)效果。 音訊子系統使0S的核心與音訊裝置驅動程式彼此互相 獨立。當音訊應用程式失敗像是由觸犯一存取違規時,這 為一阻絕(sandboxing)技術的孤立方式斟酌恢復。該孤立 方式確保僅一失敗的應用程式之音訊將會停止,而非正在執 行的所有應用程式之全部音訊將會停止。該孤立方式也確 保該存取違規將不會造成該計算系統當機,其避免一重新開 機(例如,啟動載入程序)的作業。該失敗的應用程式能重 新開始且繼續產生音訊。一使用者僅僅經歷自該應用程式 的失敗之一瞬時音訊的消失》 由該計算系統的使用者感受 的音訊消失係局限於該失敗的應用程式之音訊,並且將關於 失落的聲音週期而感到不同。 在一實作中,兩使用者能將一個人電腦用作一媒體伺服 器,在第一使用者正在該個人電腦的DVD播放機上的一 DVD光碟片播放一影片,而自該影片的聲音係由用於轉換 表現(render)於一第一組擴音器之一第一音效卡來處理。第 二使用者正便用該個人電腦的CD讀取機上的一 CD光碟片 播放一首歌曲。就第二使用者來說,該播放係要被轉換表 現於與該個人電腦的主機板通訊之一第二音效卡通訊的一 1357015 第二組擴音器。該第二音效卡係由一音 机裝置驅動程式來 驅動。該歌曲的播放係由個人電腦上的一拔 式的執行來完成。肖體播放應用程式呼=體播放應用程 立1一 了 1在由歌曲的播放 產生的0訊貢料流上之一 GFX音訊處理物件。Μ . 若GFX 音 訊處理物件具有—致使它在執㈣間失敗的軟胃一像是 由觸犯-存取違規時,在該失敗的一恢復期間 者將經歷聲音的消失例如5秒。在产w作 Λ 一 在这恢復的期間,電腦將 不需要重新開始並且第一使用者在Dv ^ , 次•碟之影片的播放 中將不會經歷任何聲音的消失。重新載入 姓并《立 ^ GFx音訊處理物 ’、. 子系統將音訊帶回到歌曲的播放所停止之處。 重新載入的GFX音訊處理物件繼續執行以用二 來處理一要被轉換表現於第二組擴音器的音:曰# 任何其他音訊裝置正使用該PC來 料/爪。右 訊不會由存取遠蒴、表現曰訊的話,那音 f田存取延規或由恢復而消失。 第1圖顯示一環境甘+ 為-…… 個人電腦124正被使用 々 媒體飼服|§。.在第I阁 在傾聽從- < 更乡擴立 ,的❹個人,每一者正 之 更夕擴音15 106轉換表現的音訊。& 了古只
於正使用個人電腦24為 ° I 124 mm 為㈣飼服器的人們,個人電腦 機和一疋數位影音光碟(DVD)讀取 之機,“v部分122中以播放含音訊 放自在二二::24正執行數個多媒體應用程式以播 携式媒體。音訊資”正\7式㈣讀取機^讀取的可 通訊的輸入部分120作通m °正與一作業系統n4(0/s) 卞通讯。一這樣的多媒體應用程式也 10 修正替換頁 許是由在美國華盛頓州的Redmond郡之微軟公司所提供的 視窗媒體播放軟體(Windows® Media Player) » 個人電腦1 2 4的 104 (1至N)與各種音訊裝置102(1至N)通訊的—輸出部分 112。透過例子,該音訊裝置1〇2可為一個兩聲道音效卡、 一對通用序列匯流排(USB)擴音器 '一網路擴音器(Tcp/ip 傳輸控制通訊協定/網際網路通訊協定擴音器),或可調適一 或更多聲道的聲音輸出等等。例如,一音訊裝置1〇2可為 裝設在個人電腦124的一主機板上之擴充卡的—音效卡,該 主機板藉由轉換數位資料成為類比聲音而使得電腦Η*能 夠轉換表現聲音於擴“1〇6之其中一者。可使用音訊‘ 置1 02來轉換表現(播放)或捕獲(記錄)音訊資料。例如, 此夠用曰訊裝置! 02來記錄從連接至個人電腦1 的一麥克 風l:6(k-l)的聲音輸入,並且可用來操縱在一光碟上儲存 的聲0。當傾聽一或更多擴音器1〇6(k)時,一個人被描繪 為向麥克風(k-i)講話。音訊係透過〇/s ιΐ4的作業轉換表 現和捕獲。在一 g γ 周路電環境中,可搭配擴音器106(k)來 使用麥克風l〇6(k1、,甘士 ,_ [-1)其中一個人對麥克風i〇6(k-l)講話因 而透過—網路盘另―伽ζ泰 ,、另 個人電腦的一使用者談話,是每一個人 電腦正執行一gpBi's^D* P時通訊應用程式(RTC)。 0/S 114包括邏 輯上分隔的合. £其為一音訊子系統丨丨6和一核心Π 8。核 疋對於作業系統11 4的一排程服務^音訊部分11 6 可包括關於第 圖在下面所討論的各種軟體部分。 第2圖中所見第1圖之〇/s 1 1 4的一實作,在一環境 1357015 第 200 轉換 114 系統 子分 220 式中 正在 有在 一其 三子 任一 錯誤 一處 作業 的處 含箭 流的 係一 訊引 程式 274 灌入 1¾專利案年月修二 除為使得由音訊裝置驅動程式214所驅動的一音訊裝置 表現聲音之處。在第2圖中的粗黑線意圖指示〇/s 美有由線220定義的兩(2)邏輯上分離的分區,及音訊子 116具有三條由粗黑線220-224定義之邏輯上分離的 區。O/S 114的兩邏輯分離的分區係核心11 8和由線 分離的音訊子系統11 6。 每一分區都具有在使用者模 自己擁有的位址空間,並且彼此互相完全獨立及獨立於 執行之任何其他應用程式。類似地,每一子分區都具 使用者模式中自己擁有的位址空間,並且完全獨立於每 他分區及獨立於正在執行之任何其他應用程式。所有 分區係坐落於使用者模式中的核心118之上,因此若有 子分區故障時’個人電腦124繼續執行而不會有一致命 。藉由如在此使用之術語‘背景參數,,意圖示義與 理作業相關聯之在一記憶體中的位址空間,及與那處理 相關聯的資料架構,其係由作業系統對要被適當地執行 理作業所需要的。 環*見200具有反映控制該音訊子系統i丨6的指令流程之 頭的實線。㈣境200中含箭頭的虛線指示音訊資料 流程。在音訊子系統116中的三邏輯上分離的子分區 處理背景參數270、一服務背景參數Μ,及一全域音 擎274。可同步全域音訊引擎^ # 274與由音訊裝置驅動 214驅動的音訊裝置硬體。壹内此 备同步時,全域音訊引擎 在適宜的時候將資料灌入一迴技 、路綾衝器212。同步的 使得由音訊裝置驅動程式214所赃* ^ 所驅動的音訊裝置以在 12 1357015 ____ 卜 4.淨 - —---- 適宜的時候讀取出自該迴路緩衝器212的一音訊資料流。 一音訊應用程式202係執行在處理背景參數270中》 處理背景參數270對於正在音訊子系統116中執行的每一音 訊應用程式202具有一分開的位址空間。這樣,每一音訊 應用程式202的執行將不影響另一音訊應用蘀式(未示出 處理背景參數27 0對於該音訊應用程式202執行一音訊資料 流的處理。由於該音訊應用程式202在每一喚醒週期的期 間完成音訊資訊處理的總量、速度,及頻率’在該音訊應用 程式202的軟體中,可能時常出現錯誤。 由線220-222所定義的處理背景參數270係由該服務背 景參數272來服務或管理的。處理背景參數270係代表在 • 一般應用程式處理背景參數中執行的一客戶端(或應用程式) - 空間。音訊應用程式202產生一音訊資料流’其係可在處 理背景參數270中由一區域效果引擎(LFX)處理’然後將其 輸出至一輸入緩衝器208。輸入缓衝器208係在處理背景 參數270和全域音訊引擎274的一界面。或者說,輸入緩 衝器208係儲存自在處理背景參數270中作業的一區域應用 程式的輸出。儘管第2圖對該處理背景參數27〇僅描述一 音訊應用程式2 0 2,思量該音訊子系統11 6對於子系統11 6 的處理背景參數270能支援多個音訊應用程式。 服務背景參數272係由在音訊子系統 Η 6中的線 222-224所定義。當〇/s 114載入―個人電腦124的一重新 啟動開機或當一使用者簽入或簽出時,服務背景參數272 係存在於該音訊子系統Π6的一元件。為了取得存取該音 13 1357015 ⑽·年4.育3修正替換頁 訊子系統116的服務,服務背景參數272含有任何音訊應 用程式要求的應用程式界面(API)。 服務背景參數272係代 表一全域音訊服務空間像是在一系統音訊服務中執行的策 略和系統圖形服務。在由處理背景參數270處理的一故障 之後’服務背景參數272繼續保留。 全域音訊引擎274係由音訊裝置驅動程式214所驅動的 一音訊裝置(未示出-例如,一音效卡)之一代理裝置,全域 音訊引擎274係透過該迴路緩衝器212與該音訊裝置驅動 程式通訊。全域音訊引擎274表示對每一全域音訊引擎處 理空間的一處理作業’而每一全域音訊引擎處理空間係負責 對任一特定音訊裝置來處理所有音訊資料。並且,該音訊 子系統116的全域音訊引擎274能藉由混合多個連接至各自 音訊或多媒體應用程式而虛擬化一單一音訊裝置,每一應用 程式產生一音訊資料流。當這樣虛擬化時,全域音訊引擎 274能呈現該混合的音訊資料流作為該單一音訊裝置的一 音訊資料流》這樣,多個同時執行的應用程式能全部輸出 至大豕分享之相同的音訊裝置。並且,當該個人電腦124 被使用為一媒體伺服器時,全域音訊引擎274能夠使得多 個音訊裝置同時作用。 可使用輸入緩衝器208中的一音訊資料流作為全域音 訊引擎274的輸入。全域音訊引擎274執行一音訊處理物 件(APO)以在一音訊資料流上具有一全域效果(GFx),該音 訊資料流係要被輸出在由音訊裝置驅動程式214驅動的音 訊裝置處。這樣,全域音訊引擎274能混合和/或處理在輪 14 1357015 广年4.1〇日修 入缓衝器208中的音訊資料流,輪入緩衝器208係被用來儲 存自多個音訊應用程式的音訊資料流。混合的結果和/或該 輸入缓衝器208中的音訊資料流之處理作業係為一單—混 合的音訊資枓流的一輸出至該迴路缓衝器212。 介面於該 全域音訊引擎274之該迴路缓衝器212係為該音訊裝置驅動 程式214的输入。這樣,可使用該迴路缓衝器212來儲存 自全域音訊引擎274的輪出,且可使用該迴路緩衝器212 為音訊裝置驅動程式214的輸入。 環境200的音訊子系統116提供為每一全域音訊引擎 274的一方法。每一全域音訊引擎274依次負責對透過一 界面與一對應的音訊裝置驅動程式之一各自音訊裝置之所 有音訊資料流的處理作業。雖然第2圖僅描述一音訊裝置 的一音訊裝置驅動程式214’但是思量音訊子系統116市支 援多個音訊裝置及它們各自的音訊裝置驅動裎式。 關於前述的音訊應用程式202係由全域音訊引擎274 執行的GFX音訊處理物件,並且該音訊裝置驅動程式214 每一者表示能由第三方提供的軟體用在由環境2〇〇的音訊 子系統116以轉換表現一音訊資料流於一音訊裝置處。這 樣, 環境200提供一地方和第三方以革新和提供音訊軟 體給一客戶的市場,該客戶利用個人電腦124而具環境2〇〇 的音訊子系統116駐於其上。 顯示於第2圖的環境200區隔〇/S 114的元件與由錯誤 第二方軟體的執行所造成存取違規的問題》這個孤立否則 稱作阻絕(sandboxing)係由保存該背景參數來達成,在音訊 15 1357015 【Vf 0s修正替換頁 子系統116的子分區27〇和274正處理音訊資料流。在一 實作令,由服務背景參數272僅保存該全域音訊引擎274 的背景參數。若全域音訊引擎274故障像是由於存取違規 發生,該故障將不影響該處理背景參數270或該音訊應用程 式202。若該音訊應用程式202故障,將不影響音訊子系 統116中的任何東西。若服務背景參數272故障,則整個 音訊子系統116將會故障。 全域音訊引鼙的栊俥 备有一失敗像是由一存取違規在全域音訊引擎274的 一 GFX音訊處理物件之該處理作業中時,能夠用在服務背 景參數272中保存的這個處理作業的背景參數來恢復該處 理作業。在恢復之後,如當該處理作業已被保存在服務背 景參數272中,音訊資料流的處理作業能依據該保存之處理 作業的背景參數而重新開始。由音訊子系統116執行之音 訊必要條件的服務係從核心276阻絕。這個阻絕防止整系 統的失敗。確貫故障或失敗的應用程式包含區域和全域的 處理應用程式失敗能被自動地恢復,所以才能恢復該處理作 業。 能夠藉由置放該處理作業的機制於它擁有的一位址空 間’而達到區域和全域處理背景參數的保存。否則,將在 處理背景參數270 _發生之該區域音訊引擎的處理常式之 背景參數,存放於比较該全域音訊引擎274的處理常式之背 景參數所存放的位址之一分離的位址_。 該處理作聿的位 16 1357015 HID. 4. 2F- 年月日修正替換頁 址空間係分離於保存該處理作業的背景參數的一位址。當 將該處理作業的機制放在它自己的位址空間時,該位址空間 係分離於該背景參數機制的位址,當該背景參數的機制保持 完整時,該處理作業的機制會故障。邏輯上分離於音訊子 系統11 6的核心11 8也保持完整。這樣,該故障將僅局限 於一音訊應用程式的區域處理作業之終止或僅對一音辑裝 置的全域處理作業之終止。該故障將不使該個人電腦124 失敗,因而避免為了重回音訊的轉換表現所需要之一系統的 重新開機或一系統的重新啟動程序。在故障之後,為了重 回音訊的轉換表現,然可重新開始處理作業的機制,寧願重 新開始該個人電腦124的〇/s 114。 一些實作思索要保存 該背景參數’所以才可開始回到該失敗的處理作業。 現下透過一媒體播放應用程式正播放音訊資料的實作 例子,指定一音訊資料流的全域音訊處理作業中自失敗恢復 的一範例。該音訊資料係易遭受一全域音訊效果(GFX), 其使用其中具有的一 bug(毛病)之一第三方軟艟音訊處理物 件(APO)。 GFX音訊處理物件軟體是在該全域音訊引擎274 中處理一音訊資料流的一數位訊號處理應用程式。環境 200協調正發生在全域音訊引擎274中的處理背景參數之服 務背景參數272中的這個保存(例如,儲存)^這樣,對在 該全域音訊51擎274中的GFX音訊處理物件之位址空間係 被健存於服務背景參數272。最終,在全域音訊引擎274中 執行的GFX音訊處理物件的毛病實行一存取違規。該依 次的存取違規造成該全域音訊引$ 274巾㈣處理故障。 17 1357015 ΡΓΓΤϋ 年月3修正替_ 故障的結果是透過音訊裝置驅動程式要轉換表現於—立g 裝置上的音訊停止了一段時間。在這段時間的期Μ,s 曰J,%·境 200協調自該故障中恢復。 恢復係由復原在該全域音訊引擎274中的GFX立 19訊處 理物件的處理背景參數而達成。從保存這個昔旦会*^ η豕麥數的服 務背景參數272中恢復該背景參數。於是,恢復保存的背 景參數係為輸入緩衝器208的背景參數、在全域音訊引擎 274中處理之GFX音訊處理物件的背景參數和迴路緩衝器 212的背景參數。一旦從服務背景參數272已有每—背景 參數的一恢復時’在全域音訊引擎274中的GFX音訊處理 物件之處理作業能繼續。在背景參數恢復之後,該音訊能 透過音訊裝置驅動程式214繼續被轉換表現於音訊裝置上。 當GFX音訊處理物件係藉由恢復在全域音訊引擎274中它 保存的背景參數而重新載入,使用該計算系統的一客戶將聽 到音訊的一短暫消失(例如,5秒)。此時該音訊返回且大 約在上次停住之處重新開始。由於每一音訊裝置的音訊在 環境200中與其他音訊裝置的音訊隔離,所以沒有其他音訊 裝置會因GFX音訊處理物件的故障而失去音訊。 在故障恢復的期間,由全域音訊引擎274之音訊資料的 處理將造成由音訊裝置驅動程式214服務之自或至該音訊 裝置者的所有資料流停止。然而,每一音訊應用程式202 將不會察覺已發生故障了。因為負責保持該音訊裝置的音 訊圖形結構之服務背景參數272執行於一分離的服務背景 參數中’由於它預先的保存在故障之後,可使用該服務背景 18 1357015 ^月B壯替換頁 參數272來復原全域音訊引擎274的背景參數。該服務背 景參數272也具有對音訊裝置驅動程式214狀態(即,是否 開始或停止)和這些在確認不同處理背景參數的子分區之間 所使用分享的缓衝器(例如,輸入緩衝器208、迴路緩衝器 212 )的控制^服務背景參數272將再次連接該輸入緩衝器 2〇8、迴路緩衝器212,及在它們各自的子分區中的全域音 訊引擎274。音訊應用程式202將繼續,而對故障之事是 透明無礙的(例如,好像沒發生故障或存取違規)。 在實作中,服務背景參數272可追縱任何第三方GFX音 訊處理物件軟體故障的次數。在次數超過一預定的閾值之 後,對使用者的一診斷或其他的對話可輸出在一使用者界面 (UI)上。也能使GFX音訊處理物件失去作用,或在對使用 者已輸出—警報於使用者界面上之後,可使GFX音訊處理 物二=次作用。可採用對許多存取違規和後續的恢復之其 他夕層式方法,像是一診斷被輸出在⑴上,並且在全 域曰訊引擎274中將不會重新開始第三# GFX音訊處理物 件軟體的執行。在存取違規之後恢復的一多層式方法可有 益於避免帶起和停滯一失誤全域效果元件。 沈曰訊應用程式202而論’由全域音訊引擎274之音訊 資,的處理作業中的—故障對音訊應用程A 202的作業和 執仃疋透明的。寧可’音訊應用程式202將繼續輸入到處 背景參數270㉟ '在處理背景參數270和全域音訊引擎 ,間的”區邊界處,該處理背景參數270係輸出到輸入 緩衝器2〇8。當音訊應用程式2〇2仍未察覺到GFX音訊處 19 1357015 %4.#03修正替換-頁 理物件的故障時,然該服務背景參數272能被用來復原該背 景參數且執行全域音訊引擎274的一自動恢復。 在全域音訊引擎274中的處理故障之後,由於緩衝器 208' 212仍然存在,可恢復音訊裝置驅動程式214的狀態 和迴路缓衝器212。當在該處理故障之後服務背景參數 272於全域音訊引擎274中建立該處理作業時,服務背景參 數272必須知道這些缓衝器208、212的位址,因此新全域 音訊引擎274才能夠連接到這些緩衝器並且繼續從音訊應 用程式202接收音訊資料’否則該音訊應用程式既未察覺 到全域音訊引擎274的故障也未察覺該緩衝器2〇8、212的 位址》寧願,服務背景參數272維護這些緩衝器208、212 為物件’當服務背景參數272恢復該全域音訊引擎274時, 可於全域音訊引擎274中建立這些緩衝器。服務背景參數 272將指令傳給該恢復的全域音訊引擎274,其係指示該緩 衝器208、 212被用為從一特定音訊裝置的音訊應用程式 202的輸入^當全域音訊引擎274故障時,該恢復的全域 音訊引擎274係自服務背景參數272取得該迴路緩衝器212 之位址。在一存取違規之後,該音訊裝置驅動程式214仍 可正在執行’並且該迴路緩衝器212仍可存在。 由於服務背景參數272中保存背景參數,前述在全域音 訊引擎274中提供自一故障的GFX音訊處理物件之自動恢 復的例子。服務背景參數272中之背景參數的保存確保對 於僅一音訊裝置的音訊相較於個人電腦124之重新啟動程 序所需要的時間只是一短暫時間的中斷。軟體開發者可提 20 1357015 %4妒〇日修正替換頁 ~-----1 供GFX音訊處理物件以在此揭露的音訊子系& " 6上執 行,GFX音訊處理物件仍能故障而沒有將所有音訊裝置停 滯或使整個OS 114故障。只要在服務背景參數272中已 保存了這個背景參數,GFX音訊處理物件仍能帶起回來。 音訊子系統116提供與每一音訊裝置(例如’音效卡、USB 擴音器’等等)對應的全域音訊引擎274,所以全域音訊引 擎274能夠在自己的背景參數中執行且被保存在服務背景 參數272令。這樣’音訊子系統116是可容錯、強力對抗 故障(crashes)/掛掉(hangs),並且能夠由全域音訊引擎274 的在GFX音訊處理物件中自音訊資料處理作業的故障恢 復。 依據在環境200中所見的架構,每一音訊跋置都能被分 割成為一分離的處理背景參數。這樣,對於一特定音訊裝 置在全域音訊效果274中處理之正執行為—全域音訊效果 有故障-傾向(crash-prone)的軟體將不影響在另一音訊裝置 的一全域音訊引擎中之音訊資料的處理。此外,當由於被 處理的全域效果程式瑪中的一 bug而使全域音訊引擎274 中的處理故障時,可達到一自動恢復。因為音訊裝置的全 域狀態被保留於服務背景參數272中’恢復是可能的。這 樣,該故障的GFX音訊處理物件可帶回來且重新連接到輸 入緩衝器208。 一般而言,在全域音訊引擎274中自該處理故障的_恢 復將從對那音訊裝置所產生的一音訊資料流之每一應用程 式而使音訊送到一對應的音訊裝置。為了盡可能抗拒故障 21 10^ 4. 2U ——牟月EJ修正替換頁 的情況,對於每一音訊裝置的全域音訊引擎274能在它擁有 的背景參數令執行,該其擁有的背景參數係保存在音訊子系 统1丨6之邏輯上分離的服務背景參數272中。 第3圖係藉由在一全域音訊弓丨擎中執行的一 GFX音訊 處理物件來顯示一用於從一存取違規中恢復的處理作業 3 Q Q 〇 α Β 關於第2-3圖,處理作業3〇〇係開始於服務背景參 數2 72保存對於輸入緩衝器2 08和迴路缓衝器212之該背景 參數(例如’位址和資料結構)的區塊302之處。在區塊 304 ’開始用於產生GFX在一音訊資料流上的音訊處理物 件。—音訊資料流係要由音訊裝置驅動程式214所驅動的 ''音訊裝置轉換表現的。處理作業3 00移至區塊3 06,其 為服務背景參數272保存在全域音訊引擎274中之GFX音 訊處理物件的背景參數。在區塊3〇6之後,處理作業3〇〇 移至開始GFX音訊處理物件的區塊308之處。在全域音訊 5丨擎274中的執行繼續在區塊31〇,其係全域音訊引擎274 執行GFX音訊處理物件以在輪入緩衝器2〇8中的音訊資料 流上執行數位訊號處理。可從其他區域處理包括混合的音 訊資料流之這個處理作業的輸出,被移至迴路緩衝器212。 該迴路緩衝器2丨2中之混合的音訊資料流係根據由全域音 訊引擎274的處理作業而具有一全域效果。 規。 違規 數。 在區塊312,GFX音訊處理物件終止或造成—存取違
在區塊3 14 ’服務背景參數2 7 9伯制·** μ L z /2偵測該終止或存取的 ’並且復原輸入缓衝器208和迪牧铨你您 w路緩衝|§ 212之背景參 在區塊316,作一關於是否已路4 ^ ^ , 22 1357015 100. 4. ~~ 年月0修正替換頁 若無發生一存取違規,則處理作業300移至區塊304。否 則,處理作業300移至使GFX音訊處理物件的一故障計數 遞增的區塊318之處。關於是否故障計數超過一預定的閾 值係在區塊320詢問。若故障計數超過一預定的閾值,則 顯示一診斷322a且處理作業3〇〇移至區塊322b,其為重新 開始在該全域音訊引擎274中沒有故障-傾向的GFX音訊處 理物件之處。若GFX音訊處理物件的故障計數不超過該預 定的閾值,則處理作業300移回至區塊3〇8。 處理背景參數的恢德 可自 料流之區域處理的失敗中作一恢復。例 如’在第2圖中所見作為音訊應用程式2〇2的一媒體播放 應用程式’傳送一音訊資料流用以由一區域效果音訊處理物 件(LFX音訊處理物件)在處理背景參數27〇中處理。LFX 音訊處理物件具有一失誤部分的程式碼,當執行時,產生一 存取違規(例如,在該程式碼中的一 bug) ^在執行處理背 景參數270中的LFX音訊處理物件之前,環境2〇〇的音訊 子系統116協調在處理參數的服務背景參數272中的這個保 存(例如’儲存)’該處理作業係在正發生於處理背景參數270 中。最终,在該LFX音訊處理物件的bug造成軟體執行一 存取違規》該存取違規依次地造成該處理背景參數270中 的處理故障。該故障的結果是要提供給輸入緩衝器208的 音訊停止了一段時間。這樣,在透過音訊裝置驅動程式214 要轉換表現於一音訊裝置的音訊中將有一間隙。在這段時 23 1357015 間的期間,環 .自處理背 係由恢復在處 旦從服務背景 音訊應用程式 LFX音訊處理 區域處理作業 並且聲音可透 置處恢復。ϊ 他音訊應用程 障。 藉由處理 業中之一故障 相關聯。在肩 剩餘的任何音 通知服務背景 背景參數2 7 2 了清除該剩餘 處理背景參數 服務背景參】 (thread),其贷 數270(或對於 若由處理 2 72將停止和 境2〇〇協調自該故障中恢復。 景參數270中LFX音訊處理物件故障的恢復 理背景參數270中之該處理的背景參數。一 參數272中已恢復了該背景參數,可重新開始 202的執行,因此在處理背景參數2 70中的 物件的處理作業才能夠繼續。一旦已繼續該 ’―音訊資料流可被輸出至輸入緩衝器2〇8, 過音訊裝置驅動程式214的作業在該音訊裝 每於音訊應用程式202係由環境200獨立於其 式的音訊’所以沒有其他音訊應用程式將會故 彦景參數270在LFX音訊處理物件的處理作 將使輪入緩衝器208與音訊應用程式202解除 【理背景參數2 70的處理作業中的故障之後所 訊資料流將需要清除。當該故障發生時,可 參數272關於該故障。當這樣通知時,服務 可關閉在故障之後所剩餘的音訊資料流。為 的音訊資料流,服務背景參數2 7 2可維護對由 270之音訊資料處理所產生的一列表。可由 故272來使用這個列表以留下一執行绪 等待具有一剩餘的音訊資料流之處理背景參 任何其他這樣的處理背景參數)的退出。 背景參數270的處理故障,則服務背景參數 關閉所有由處理背景參數270自處理當中已 24 ΪΤΤϋ-- 年月日修正替Μ 經開啟的音却 貢料流。若音訊應用程式202故障,±立邛 裝置驅動程★•如 暉由音訊
式所駆動的音訊裝置既不受影響’該全 擎274也不成旦 ι埤日訊弓I 又影響。寧願,仍能由其他應用程式电法$ψ 音訊資料至占立 、甲桃送出 由均訊裝置驅動程式214驅動的音訊梦番 全域音訊弓丨聲974 ^ 获置或主 羊274。由於處理背景參數270中的故隆,鈇 而,將俊齡λ π 早 …、 這樣,入緩衝器208與音訊應用程式202解除相關聯。 、 不能夠使用輸入緩衝器208中的音訊資斜。當 服務背景參數970站, 數272偵測由處理背景參數272的處理已故障 時,則關閉吱艋昤_ @ & 4解除配置對輸入緩衝器2〇8的每— 一實作中, % 不會自動恢復該音訊應用程式202。资:願, 若想要的話 x 可由一使用者重新開始該音訊應用程式 202 » 第4圖係藉由在-處理背景參數270中執行的一區域效 果()曰訊處理物件來顯示_用於從一存取違規令恢復的 處理作業4〇〇。 關.於$ ? ϊ._ 關於第2和4圖,處理作業400係開始在 用於產生區域效果於一音 s冗貢枓流上之音訊處理物件被起 始的區塊402之處。音訊眘η 讯貢枓流是由音訊裝置驅動程式214 駆動的一音訊裝置要轉換袭 将換录現的。在區塊404,服務背景 參數272保存輸入緩衝器e a 何器208和迴路緩衝器212的背景參 數(例如,位址和資料結構)。少 J 在區塊406,LFX音訊處理 物件係在處理背景參數270中開始執行。纟區塊4〇8,處 理背景參數27G輸出到輪人緩衝器删,並且全域音訊引擎 274係從輸入緩衝器208得到私 ,.θ 忖巧輪入。全域音訊引擎274混 合來自輸入缓衝器208的音鈕咨w t ^ 曰冗資料流,並且輸出一混合的音 25 ^^/015 ^^/01510°年4·#%修正替換買 訊資料流到該迴路缓衝器2 1 2。在區塊4 1 0,LFX音訊處 理物件终止或造成一存取違規。在區塊412,服務背景參 •丨人 72偵測這個终止或存取違規,並且刪除該輸入緩衝器 208。 對於各自計算系統之各種作業系統可得益於這些前述 的實作’特別在作業系統為音訊資料的捕獲和轉換表現之某 種結合提供音訊服務之處,及作業系統係為多執行緒和多工 模式。示範的現代作業系統包括由在美國加州的cupertin0 郡之顏果電腦公司所提供的Mac OS(10及以下版本)、 在美國加州的MOUntain View郡之Be公司所提供的Be〇s、 在美國華盛頓州的Redm〇nd郡之微軟公司所提供的 Windows® 0S ’及這個免費軟體Linux® 0S »此外,這個 專利揭露的益處可由允許不受信任媒體應用程式以執行第 三方程式之任何多執行緒的作業系統體會到,上述第=方程 式可執行存取違規或正確地自作業中停止該作業系統。例 如,在此思索的作業系統係對不受信任第 々脎體應用程式 提供一可擴展的媒體處理系統用於全域背》 。 月京翏數中使用以 改變音訊訊號之音訊處理效果。可執行撰寫品皙 ^ 貝+好或惡 意的程式碼而不會使正在服務一特定音訊裝置的作業系統 之音訊系統的一部分故障。由使用作業系統的保讀换制换 是一處理作業而將音訊子系統分割成為 <科上分離的分區 來遠到故障的避免。該處理作業使得撰寫品 J Π貝不好的寂十 瑪的影響減到最少。作業系統使用與該處理作 " 位址空間和資料結構係以執行該處理作業。一、關聯的 〃 思樣,作業系 26 10 w〇日修正替換頁 統係在獨立的處理背景參數中執行該處理作業為記憶體保 護的一形式,及可表示為一處理作業(或/執行緒)之背景參 數保護的一形式。 乔範_的_^算系統和瑾接 第5圖說明一計算環境500的一例,在這裡描述包栝即 時通訊應用程式(RTC)和媒體播放應用程式(MP)之應用糕 式於該計算環境之内可被完全或部分地實作。示範的計算 環境5 0 0只是一計算系統的一例關於網路架構的運用或功 能性之範圍,並不意圖建議任何局限性。計算環境500也 不應該解譯為具有任何關於在示範的計算環境5〇〇中所説 明任何一或組合元件之從屬關係或必要性。 以許多其他一般用途或特殊用途計算系統環境或組態 可實作該電腦和網路架構。已知可適合使用的計算系統、 環境,及/或組態的例子包括,但不侷限於,個人電腦、伺 服器電腦、精簡型客戶#、複雜型客戶端、掌上型或膝上 型裝置、多處理器系統、以微處理器為基礎之系統、機上 益、可編程的消費性電子、網路電腦迷你電腦、大髮電 腦' 遊戲控制台’包括上述系統或裝置之任何分散式計算 環境等等。 應用程式(包括RTC和可被;$ ,k )j被描述在電腦可執行的指 令像是由一電腦執行的程式槿细 式模組之—般背景參數中。通 常,程式模組包括常式、裎式 程式 '物件 '元件、資料架構, 等,其係執行特定任務或實作特定抽 豕頁枓型態。應用程 27 1357015 Ύ°日修正替換頁 式(包括RTC和ΜΡ)也實踐於分散式計算環境中,其為透過 一通訊網路連結遠端處理裝置來執行任務之處。在一分散 式計算環境中,程式模組可位於本地和遠端兩者包括記憶體 儲存裝置的電腦儲存媒體中》 計算環境500包括以一電腦502形式之一般用途計算系 統。電腦502的元件可包括,但沒局限於,—或更多的處 理器或處理單元504、一系统記憶體5〇6,耦接各種系統元 件包括處理器504到系統記憶體506之一系統匯流排5〇8。 系統匯流排5 0 8表示在數種匯流排架構當中任何一或 夕種匯流排,其包括一 s己憶體匯流排或記憶體控制器、一週 邊匯流排、加速的圖形埠,及使用多種匯流排架構之任何種 的處理器或區域匯流排。透過例子,這樣的架構可包括一 工業標準架構(ISA)匯流排、一微通道架構⑽^八)匯流排、 一延伸工業標準架構(EISA)匯流排、一視訊電子標準協會 (VESA)區域匯流排,及一週邊元件互連(pci)匯流排也稱 作一多層架構(Mezzanine)匯流排。 電腦系統502 —般包括許多電腦可讀取的媒體。這樣 的媒體係可由電腦502存取的任何可用媒體,並且包括揮發 性和非揮發性媒體兩者、可移除和非可移除的媒體。系統 記憶體506包括電腦可讀取的媒體以揮發性記憶體的形式 像是隨機存取記憶體(RAM)51G,和/或非揮發性記憶體像是 唯讀記憶體(R〇M)512。含有基本常式以在電腦之内5〇2協 助於元件之間傳送資訊像是在開機期間之一基本輸入/輸出 系統(BIOS)5 14係儲存在唯讀記憶體512中。RAM 51〇 一 28
般含有可立即存取和/或由處 料和/或程式模組。 70 04不久即將作業的資 電腦502也可包拓甘 揮發性的電腦料媒體㈣/非可移除、揮發㈣ 移除非揮隸的_,帛5圖制自-非可 516,自可移除非揮發性 硬碟機 碟片520(例如“軟碟片,,、嘈 取和寫入的一磁碟機518, 呷片)讀 自可移除非揮發性的光碟524 像是一 CD-ROM(唯讀光碟 ^ 524 '、)DVD-R〇M(DVD唯讀爭立古 碟片)或其他光學媒體讀取 '/曰 取和寫入的一光碟機522。 510、磁碟機518,和光雄 %咮微 和九碟機522每一者都藉由一或更 料媒體界,525而連接至系統匯流排5〇8。或者,硬碟機 5B、磁碟機518,和光碟機⑵能由_ %si界面(未示… 而被連接到系統匯流排5〇8。 碟驅動器和它們相# β„, 匕]相關聯之電腦可讀取的媒體提供電腦 可.賣取的和v、資料結構、程式模組和電腦5。2的其他資 料之非揮發性儲存。雖然該例子說明電腦一硬碟516、一 可移除的磁碟片520’及一可移除的光碟524,須知其他類 型可儲存由一電腦可存取的資料之電腦可讀取媒體例如磁 碟或其他磁儲存裝置、快閃記憶體卡、CD R〇M、數位多用 途影音光碟(DVD)或其他光儲存、隨機存取記憶體(ram)、 唯讀記憶體(ROM)、電子式可抹除可編程唯讀記憶體 (EEPROM)等等,也能用來實作一示範的計算系統及環境。 許多程式模組經由例子包括一作業系統5 2 6、一或更多 的應用程式528、其他程式模組530和程式資料532能儲存 29 1357015 在硬碟516、磁碟片520、光碟524、ROM 512和/或RAM 5 10 上。這樣的作業系統526、一或更多應用程式528、其他 程式模组530,及程式資料532(或其中某種結合)之每一者 都可包括在此揭露RTC和/或MP的一實施例.作業系統 526可包括音訊捕獲和轉換表現服務,因此一媒體應用程式 能得到用於訊號處理之—全域音訊輸出整個系統混合。 電腦系統502可包括被認為通訊媒體之許多電腦可讀 取的媒體》通訊媒體一般實施電腦可讀取的指令' 資料結 構、程式模組,或在一經調變的資料訊號像是一載波或其他 傳輸機制中的其他資料,並且通訊媒體包括任何資訊傳遞媒 體。 此專有名詞“經調變的資料訊號,,意指具有其特徵組 中的或夕個特徵之一訊號,或以在訊號中編碼資訊的方 式而改變的一訊號。經由範例而非限制,通訊媒體包括有 線媒體像是一有線網路或直接連線的連接,及無線媒體像是 聽覺的射頻(RF)、紅外線和其他無線媒體。任何上面的 組合也應該含進電腦可讀取的媒體之範圍内。 使用者可藉由輪入裝置像是一鍵盤534與一指標裝置 536(例如一 “滑鼠”)而輸入命令和資訊到電腦系統502 裡。可使用—麥克風53 5以輸入語彙命令,其係受制於_ 。°曰辨識處理用以傳遞該語彙輸入。其他輸入裝置538(未 示出)可已括搖桿、遊戲控板、衛星碟、序列埠、掃描器 等等或類似裝置。這些輸入裝置與其他輪入裝置係經一轉 接於系統匯流排508的輸入/輸出界面540來連接到處理單 30
1357015 元5 04’不過适些輸入裝置與其他輸入裝置也可藉著其他介 面與匯流排架構像是一平行埠、遊戲埠或一通用序列匯流 排(USB)而連接至處理單元。 一監視器542或其他類型的顯示裝置也經由一介面像 是一視訊配接卡544而連接至系統匯流排5〇8。輸入/輸出 界面540可包括一音效卡、一整合的(例如,在主機板上)音 效卡。一或多個擴音器537可與輪入/輸出界面54〇通訊。 除了監視器542之外,其他週邊輸出裝置可包括元件像是 一印表機546可經由一輸入/輸出界面54〇而被連接到電腦 502 〇 電腦5 02可作業於一連網環境,其係使用邏輯連接至一 或多個遠端電腦像是一遠端計算裝置548。經由範例,遠瑞 計算裝置548可為一個人電腦 '可攜式電腦、一伺服器、〆 路由器、一網路電腦 ' —同級裝置或其他平常網路節點等等β 例示說明該遠端計算裝置Μ8為一可包括在此描述與電腦系 統5 02相關的許多或所有元件及特色之可攜式電腦。 在電腦5 02和遠端電腦5 48之間的邏輯連線被描寫為〆 區域網路(LAN)550和一般廣域網路(WAN) 552 〇如此的速 網環境在辦公室 '整個企業的電腦網路、組織的内網路,和 網際網路是常見的。當在一區域網路的連網環境中實作 時,電腦502係藉由一網路界面或配接卡554連線到—區威 路550。當在一廣域網路的連網環境中實作時’電腦 5 〇 2 般包括一數據機556或用在廣域網路552上建立通訊 其他裝置。對電腦502而言,可為内部或外部的數據機 31 1357015 _ %4_#〇3修正替換頁 556會藉著輸入/輸出界面540或其他適當機制而連線到系 統匯流排508。 須知該說明的網路連線是示範性,並且可 運用其他裝置以在電腦502和548之間建立通信連結。 在一連網的環境中,像是以計算環境5 0 0、描述與電腦 502相關的程式模組,或其中部分所說明可被儲存在一遠程 記憶體裝置中。透過例子,遠程應用程式558駐於遠程電 腦5 4 8的一記憶體裝置上。為了說明之目的,雖然認為這 樣的程式和元件在不同時間駐在電腦系統502 的不同儲存 元件,且由該電腦的資料處理器執行,應用程式和其他可執 行的程式元件像是作業系統在此被說明為分散的區塊。 雖然已經以特定於結構特性和/或方法的步驟之語言來 敘述本發明,但須知在附加的申請專利範圍中定義的本發明 不一定要受限於所描述之特定的特性或步驟。寧可揭露該 特定的特性或步驟為實作該請求的發明之較佳的形式。 【圖式簡單說明】 關於所附圖式其中自始至終使用相同的參考數字以參 考像元件及特性,轉換表現一詳細的說明。系列1 00係參 考源自第1圖的特點,系列200係參考源自第2圖的特點, 及系列300係參考源自第3圖的特點,依此類推。 第1圖係顯示在計算系統被使用為一媒體伺服器以將 音訊服務給多個地點之多個使用者的一環境中之一示範計 异系統。 32 1357015 _ 10Wo日修正替換頁 第2圖係顯示其中一音訊應用程式正執行於一計算系 统中的一實作,該計算系統具有與一音訊裝置的一驅動程 式通訊之一作業系統。 第3圖係顯示說明一處理作業的一流程圖,其中一作 業系統的一音訊子系統服務一請求,其係用以執行一音訊 處理物件(APO)以產生要由一音訊裝置驅動程式所驅動的 一音訊裝置轉換表現之一音訊資料流上的一全域效果 (GFX),該音訊裝置驅動程式係為在由GFX處理物件使用 先前保存之背景參數的一存取違規之後,復原該音訊子系 統的各種背景參數之處。 第4圖顯示說明一處理作業的一流程圖,其中一作業 系統的一音訊子系統服務一請求,其係用以執行一音訊處 理物件(APO)以產生要由一音訊裝置驅動程式所驅動的一 音訊裝置轉換表現之一音訊資料流上的一區域聲音效果 (LFX),該音訊裝置驅動程式係為在由LFX處理物件使用 先前保存之背景參數的一存取違規之後,復原該音訊子系 統的各種背景參數之處。 第5圖係說明一計算環境的一範例,在此描述的計算 系統、軟體應用程式、方法及系統可完全或部分實作在該 計算環境之内。 33 1357015
【元件代表符號簡單說明】 100個人電腦正被使用為— 106(1).·. l〇6(k)、l〇6(k+l) 102(N)音訊裝置 11 2輸出部分 116音訊子系統 120輸入部分 124個人電腦 媒體伺服器之環境 擴音器
104(N)驅動程式 114 0/S 11 8核心 122 A-V部分 274全域音訊引擎 200由音訊裝置驅動程式所驅動的一音訊裝置轉換表現聲 音之環境 208輸入缓衝器 214音訊裝置驅動程式 272服務背景參數 202音訊應用程式 2 1 2迴路緩衝器 270處理背景參數 300藉由在一全域音訊引擎中執行的一 GFX音訊處理物件用於從一 存取違規中恢復的一處理作業 400藉由在一處理背景參數執行的一區域效果(LFX)音訊處理物件來 顯示一用於從一存取違規中恢復的處理作業 502電腦 5 06系統記憶體 510 RAM 514 BIOS 5 1 8磁碟機 500示範的計算環境 504處理單元 5 0 8系統匯流排 512 ROM 516硬碟機 34 1357015 0日修正替換頁 520 磁 碟 片 522 光 碟 機 524 光 碟 526 作 業 系 統 528 應 用 程 式 530 其 他 程 式 模 組 532 程 式 資 料 534 鍵 盤 535 麥 克 風 536 指 標 裝 置 537 擴 音 器 538 其 他 輸 入 裝 置 540 輸 入 /輸出界面 542 監 視 器 544 視 訊 配 接卡 546 印 表 機 548 遠 端 計 算裝置 550 {Ά 域 網 路 552 廣 域 網 路 554 網 路 配 接 卡 556 數 據 機 558 遠 程 應 用 程 式 35
Claims (1)
1357015 月修正 第?3/,號專利案㈣ _ ' ' — · — — r. 一
養:¾¾讀專賴顯麗 訊處理物件所造成的 的方法,其包含以下 1 · 一種在串流音訊處理期間從一音 —存取違規中復原(recovering ) 步驟: 接收-作業系統執行一音訊處理物件(Ap〇)的一請 、:該AP0用於在一音訊資料流上實行—全域音訊效果 (GFX),以由一音訊裝置驅動程式所驅動的一音訊裝置處 輪出,其中該作業系統包括一音訊子系統,該音訊;系統 具有-輸人緩衝器、-迴路緩衝器、及包括—服務位址空間 的邏輯上分離的位址空間,及一全域音訊引擎; 在該服務位址空間中保存用於該輸入緩衝器該全域音 訊引擎、及該迴路緩衝器的服務資料; 操作該全域音訊引擎,以該AP〇對該輪入緩衝器中的 一音訊資料流執行數位訊號處理,以在該迴路緩衝器中形 成一數位訊號處理(DSP)音訊資料流·; 將在該迴路緩衝器中的該DSP音訊資料流輪入至驅動 該音訊裝置的該音訊裝置驅動程式;及 一旦該AP0發生終止或由該apo所造成的一存取違規 時,即. 以分別為各者保存於該服務位址空間中的該服務資 料,復原該輸入緩衝器、該全域音訊引擎、及該迴路缓衝器 之各者,及 選擇性地在該全域音訊引擎中重新執行(resuming)該 AP〇。 36 1357015 2. 如申請專利範圍第1項所述之方法,其中該AP 0發生 終止或由該ΑΡΟ所造成的一存取違規係由該服務位址空間 偵測。 3. 如申請專利範圍第1項所述之方法,其中: 該輸入緩衝器的該服務資料包含與該輸入緩衝器相關 聯的一位址及一資料結構; 該全域音訊引擎的該服務資料包含與該全域音訊引擎 相關聯的一位址及一資料結構;及 該迴路缓衝器的該服務資料包含與該迴路緩衝器相關 聯的一位址及一資料結構。 4. 如申請專利範圍第1項所述之方法,其中在由該ΑΡΟ 所造成的一存取違規時,該方法更包含以下步驟: 遞增一计數器,該計數器係代表由該ΑΡΟ所造成的該 存取違規的一數目;及 當該計數器超過一預定的限制時,輸出一診斷並且禁 止在該全域音訊引擎中重新執行該ΑΡΟ。 5. 如申請專利範圍第1項所述之方法,其中: 該作業系統更包含多個迴路緩衝器,該等多個迴路缓衝 器係對應於多個全域音訊引擎,其中該等多個迴路緩衝器係 透過多個音訊裝置驅動程式連接至多個音訊裝置;及 37 1357015 該等全域音訊引擎之每一者輸出該DSP音訊資料流至 該等迴路緩衝器之對應的一者,以提供輸入至用於驅動該等 音訊裝置之一對應的一者的該等音訊裝置驅動程式之一對 應的一者。 6. 如申請專利範圍第5項所述之方法,其中: 該作業系統更包含多個輸入緩衝器,其中該等輸入缓衝 器之每一者含有要由該等音訊裝置之對應的一者表現 (render)之該音訊資料流;及 該等全域音訊引擎之每一者對應至該等輸入緩衝器之 一者。 7. 如申請專利範圍第6項所述之方法,其中該等輸入緩衝 器之每一者從音訊應用程式之對應的一者接收該音訊資料 流,該等音訊應用程式從該作業系統為該等音訊裝置之至少 一者靖求音訊服務。 8. 如申請專利範圍第1項所述之方法,更包含以下步驟: 以該音訊裝置驅動程式所驅動的該音訊裝置來表現該DSP 音訊資料流。 9. 如申請專利範圍第1項所述之方法,其中該作業系統係 在具有多個分離分區的一記憶體中,該作業系統包括: 一核心的一分區;及 38 1357015 該音訊子系統的一分區,其具有分離的子分區,包含: 該服務位址空間的一子分區;及 該全域音訊引擎的一子分區。 10. 如申請專利範圍第9項所述之方法,其中該音訊子系 統的該分區更包含一處理位址空間的一子分區,該處理位 址空間的該子分區具有用來執行該APO的一區域引擎,以 輸出該音訊資料流至該輸入緩衝器。 11. 如申請專利範圍第10項所述之方法,其中: 在該輸入緩衝器中的該音訊資料流包含來自多個音訊 應用程式的音訊資料,而該等多個音訊應用程式之每一者 要以該音訊裝置來表現;及 該全域音訊引擎混合來自該等多個音訊應用程式的該 音訊資料,以在該迴路緩衝器中形成該DSP音訊資料流。 12. 如申請專利範圍第1項所述之方法,其中該GFX係選 自以下構成之群組:一餘響效果、一音訊失真效果、一擴 音器補償效果、一多頻帶音訊等化器全域。 13. 一種具有電腦可讀取的指令於其上之電腦可讀取的媒 體,當由一計算系統執行時,實作如申請專利範圍第1 項所述之方法。 39 1357015 14. 一種在串流音訊處理期間從一音訊處理物件所造成的 一存取違規中復原(recovering)的方法,其包含以下 步驟: 從一音訊應用程式接收要求一作業系統執行一音訊處 理物件(AP0)的一請求,該AP0用於在一音訊資料流上實 行一全域音訊效果(GFX),以由一音訊裝置驅動程式所驅動 的一音訊裝置處輸出,其中: 該作業系統在一記憶體中具有分離的分區,該等分區 包括: 一核心;及 一音訊子系統,該音訊子系統具有一輸入緩衝器及一 迴路緩衝器; 在該記憶體中的該音訊子系統的該分區具有分離的子 分區,該等子分/區包含: 一服務位址空間;及 一全域音訊引擎,其用於執行該AP0; 保存與該輸入緩衝器、該迴路緩衝器、及該全域音訊引 擎相關聯的位址及資料結構於該服務位址空間中; 操作該全域音訊引擎以執行以下步驟: 以該AP0對該輸入緩衝器中的該音訊資料流上執 行數位訊號處理,以形成一數位訊號處理(DSP)音訊資 料流;及 將該DSP音訊資料流輸出至該迴路缓衝器; 將在該迴路缓衝器中的該DSP音訊資料流輸入至 40 1357015 該音訊裝置驅動程式,來驅動該音訊裝置而用於表現 該DSP音訊資料流; 一旦該APO發生终止或由該APO所造成的一存取違規 時,即: 以該等為該輸入緩衝器所保存於該服務位址空間中的 位址及資料結構,恢復(restoring )該輸入缓衝器; 以該等為該全域音訊引擎所保存於該服務位址空間 中的位址及資料結構,恢復該全域音訊引擎; 以該等為該迴路緩衝器所保存於該服務位址空間中 的位址及資料結構,恢復該迴路緩衝器;及 選擇性地在該全域音訊引擎中重新執行(resuming )該 AP0。 15.如申請專利範圍第14項所述之方法,其中該AP0發 生終止或由該AP0所造成的一存取違規係由該服務位址空 間偵測。 1 6.如申請專利範圍第1 4項所述之方法,其中在該記憶體 中的該音訊子系統的該分區更包含一處理位址空間之一分 離的子分區,其係具有用來執行該AP0的一區域引擎,以 輸出該音訊資料流到該輸入緩衝器。 17.如申請專利範圍第16項所述之方法,其中: 在該輸入緩衝器中的該音訊資料流包含來自多個音訊 41 1357015 應用程式的音訊資料,而該等音訊應用裎 該音訊裝置來表現;及 該全域音訊弓丨擎混合來自該多個音訊 訊資料,以在該迴路緩衝器中形成該Dsp 18. 如申請專利範圍第16項所述之方法 該輪入緩衝器係邏輯上位於該記憶體 的該分區中,共享於該處理位址空間的該子 訊引擎的該子分區之間;及 該迴路緩衝器係邏輯上位於該記憶體 的該分區中,共享於該全域音訊引擎的該子 該分區之間。 19. 如申請專利範圍第14項所述之方法, 所造成的一存取違規時,該方法更包含以_ 遞增一計數器,該計數器係代表由該 存取違規的一數目;及 當該計數器超過一預定的限制時,輸 止在該全域音訊引擎中重新執行該Apo。 2〇·如申請專利範圍第14項所述之方法, 該作業系統更包含多個迴路緩衝器,該 器係對應多個全域音訊引擎,其中該等多個 過多個音訊裝置驅動程式連接至多個音訊身 式之每一者要以 應用程式的該音 音訊資料流。 '其t : 之該音訊子系統 分區及該全域音 之該音訊子系統 分區及該核心的 其中在由該APO F步驟: AP〇所造成的該 & 一診斷並且禁 其中: 等多個迴路緩衝 #路緩衝器係透 I置;及 42 1357015 該等全域音訊引擎之每一者輸出該DSP音訊資料流至 該等迴路緩衝器之對應的一者,以提供輸入至用於驅動該等 音訊裝置之一對應的一者的該等音訊裝置驅動程式之一對 應的一者。 21. 如申請專利範圍第20項所述之方法,其中: 該作業系統更包含多個輸入缓衝器,其中該等輸入緩衝 器之每一者含有要由該等音訊裝置之對應的一者表現 (render)之該音訊資料流;及 該等全域音訊引擎之每一者對應至該等輸入缓衝器之 一者。 22. 如申請專利範圍第21項所述之方法,其中該等輸入緩 衝器之每一者從音訊應用程式中之對應的一者接收該音訊 資料流,該等音訊應用程式從該作業系統對該等音訊裝置 之至少一者請求音訊服務。 23. —種具有電腦可讀取的指令於其上之電腦可讀取的媒 體,當由一計算系統執行時,實作如申請專利範圍第1 4 項所述之方法。 24. —種用於在串流音訊處理期間從一音訊處理物件所造 成的一存取違規中復原(restoring )的電腦可執行作業系 統,其包含一核心及邏輯上分離的一音訊子系統,其中該 43 1357015 音訊子系統具有一輸入缓衝器及與用來驅動一音訊裝置的 一音訊裝置驅動程式通訊之一迴路緩衝器,該音訊子系统 亦具有多個邏輯上分離的子分區,該等多個邏輯上分離的 子分區包括: 一全域音訊引擎,其執行一音訊處理物件(APO),用於 在該輸入缓衝器中的一音訊資料流上實行一全域音訊效果 (GFX),以在該迴路緩衝器中形成一數位訊號處理(DSP)音 訊資料流,而由該音訊裝置驅動程式所驅動的該音訊裝置 表現;及 一服務位址空間,其係用於保存該輸入缓衝器、該全 域音訊引擎,及該迴路緩衝器的服務資料,其中一旦執行於 該全域音訊引擎的該APO發生終止或由該APO所造成的一 存取違規時,即: 使用在該服務位址空間中對每一者所各自保存的該服 務資料,來恢復(restore )該輸入緩衝器、該全域音訊引 擎,及該迴路緩衝器的每一者;及 選擇性地在該全域音訊引擎中重新執行(resume )該 AP0。 25.如申請專利範圍第24項所述之電腦可執行的作業系 統,其中: 該輸入緩衝器的該服務資料包含與該輸入緩衝器相關 聯的一位址及一資料結構; 該全域音訊引擎的該服務資料包含與該全域音訊引擎 44 1357015 相關聯的—位址 該迴路緩衝 聯的一位址及一 26.如申請專利 統,其中在由該 遞增一計數 存取違規的一數 當該計數器 止在該全域音訊 2 7.如申請專利 統,其t : 該作業系統 器係對應多個全 過多個音訊裝置 該等全域音 該等迴路緩衝器 音訊裝置之一對 應的一者。 2 8 .如申請專利 統,其中: 該作業系統. 及一資料結構;及 器的該服務資料包含與該迴路緩衝 資料結構。 的作業系 造成的該 範圍第 器相關 範圍第24項所述之電腦可執行 APO造成一存取違規時: 器,該計數器係代表由該APO所 目;及 超過一預定的限制時, 引擎中執行該APO。 24項所述之電腦可執行的作業系 更包含多個迴路緩衝器,該等多個迴 吩緩衝 域音訊引擎,其中該等多個迴路緩衝器係 驅動程式連接至多個音訊裝置;及 訊引擎之每一者輸出該DSP音訊資料济 之對應的一者,以提供輸入至用於驅動該等 應的一者的該等音訊裝置驅動程式 低八之一斟 範圍第27項所述之電腦可執行的作業系 I包含多個輪入緩衝器,其中該等輪入緩衝 45 1357015 器之每一者含有要由該等音訊裝置之對應的一者表現 (render)之該音訊資料流;及 該等全域音訊引擎之每一者對應至該等輸入緩衝器之 一者。 29.如申請專利範圍第28項所述之電腦可執行的作業系 統,其中該等輸入緩衝器之每一者從音訊應用程式之對應的 一者接收該音訊資料流,該等音訊應用程式從該作業系統 對該等音訊裝置之至少一者請求音訊服務。 3 〇.如申請專利範圍第24項所述之電腦可執行的作業系 統,其中該等多個邏輯上分離的子分區更包含一處理位址 空間的一分區,其係具有用來執行該APO的一區域引擎, 以輸出該音訊資料流到該輸入緩衝器。 3 1.如申請專利範圍第2 4項所述之電腦可執行的作業系 統,其中: 該輸入緩衝器儲存來自多個音訊應用程式的音訊資 料,而該等多個訊應用程式之每一者要以該音訊裝置來表 現;及 該全域音訊引擎混合來自該多個音訊應用程式的該音 訊資料,以在迴路緩衝器中形成該D S P音訊資料流。 3 2. —種在串流音訊處理期間從一音訊處理物件所造成的 46 1357015 一存取違規中復原(restoring)的設備,其包含: 健存構件,用於儲存多個邏輯上分離的分區,該多個 邏輯上分離的分區包括: 一作業系統的一核心;及 該作業系統的一音訊子系統,該音訊子系統包括: —輸入缓衝器及一迴路緩衝器,該迴路缓衝器係 與一驅動構件通訊,該驅動構件係用於驅動表現音訊之 一表現構件;及 多個邏輯上务離的子分區,其包含: 一服務位址空間;及 一全域音訊引擎; 當執行該音訊子系統時,實行如下之構件: 保存構件’其係保存該輪入緩衝器、該全域音訊引 擎,及該迴路緩衝器的服務資料在該服務位址空間中; 執行構件,其係執行一音訊處理物件(Ap〇),以在 該輸入緩衝器中的一音訊資料流上產生一全域音訊效 果(GFX) ’而在該迴路缓衝器中形成一數位訊號處理 (DSP)音訊資料流,該Dsp音訊資料流係由用於表現音 訊的該表現構件所表現,該表現構件係由用於驅動該表 現構件的該驅動構件所驅動; 一旦在該全域音訊引擎中執行的該Apo所造成的 一存取違規時,即實行如下之構件: 恢復構件(restoring means ),其係使用針對該輪 入緩衝器、該全域音訊引擎,及該迴路緩衝器的每一者 47 1357015 所各自保存於該服務位址空間中的該服務資料,來恢 復該輸入缓衝器、該全域音訊引擎,及該迴路缓衝器的 每一者;及 重新執行構件(restoring means ),其係在該全域 音訊引擎中重新執行該AP0。 33. 如申請專利範圍第32項所述之設備,其中: 該輸入缓衝器的該服務資料包含與該輸入缓衝器相關 聯的一位址及一資料結構; 該全域音訊引擎的該服務資料包含與該全域音訊引擎 相關聯的一位址及一資料結構;及 該迴路缓衝器的該服務資料包含與該迴路緩衝器相關 聯的一位址及一資料結構。 34. 如申請專利範圍第32項所述之設備,其中在由該AP0 所造成的一存取違規時,該重新執行構件運作如下: 遞增一計數器,該計數器係代表由該AP0所造成的該 存取違規的一數目;及 當該計數器超過一預定的限制時,輸出一診斷且在該 全域音訊引擎中禁止重新執行該ΑΡ0» 3 5.如申請專利範圍第3 2項所述之設備,其中: 該音訊子系統更包含多個迴路緩衝器,其係對應多個全 域音訊引擎,其中該等多個迴路缓衝器係透過用於驅動的多 48 1357015 個驅動程式構件連接至用於表現音訊的多個表現構件;及 該等全域音訊引擎之每一者輸出該音訊資料流至該等 迴路緩衝器之對應的一者,以提供輸入至該等驅動構件之對 應的一者,該等驅動構件係驅動用於表現音訊之該等表現構 件之對應的一者。 36. 如申請專利範圍第35項所述之設備,其中: 該音訊子系統更包含多個輸入緩衝器,其中該等輸入缓 衝器之每一者含有要由用於表現音訊的對應的表現構件所 表現之該音訊資料流;及 該等全域音訊引擎之每一者對應至該等輸入缓衝器之 每一者。 37. 如申請專利範圍第36項所述之設備,其中該等輸入緩 衝器之每一者從音訊應用程式之對應的一者接收該音訊資 料流,該等音訊應用程式從該作業系統對用於表現音訊的 該等表現構件之至少一者請求音訊服務。 38. 如申請專利範圍第32項所述之設備,其中該音訊子系 統之該多個邏輯上分離的子分區更包含一處理位址空間的 一子分區,其係具有用來執行該APO的一區域引擎,以輸 出該音訊資料流到該輪入緩衝器。 39. 如申請專利範圍第38項所述之設備,其中: 49 1357015 在該輸入缓衝器中的該音訊資料流包含來自多個音訊 應用程式的音訊資料,而該等音訊應用程式之每一者要以 用於表現音訊的該表現構件來表現;及 該全域音訊引擎混合來自該多個音訊應用程式的該音 訊資料,以在該迴路緩衝器中形成該DSP音訊資料流。 40. —種在串流音訊處理期間從一音訊處理物件所造成的 一存取違規中復原(r e c 〇 v e r i n g )的計算系統,該計算系統 包含一處裡器,該處理器用於執行一第一音訊應用程式以 產生一第一音訊資料流及用於執行一作業系統,該作業系 統係邏輯上分成一核心的一分區和具有邏輯上分離的子分 區之一音訊子系統的一分區,其中以該音訊子系統來處理 該第一音訊資料流的一處理作業具有一服務資料,該服務 資料係在執行該等邏輯上分離的子分區的一第二子分區中 的該處理作業之前,先被保存於該等邏輯上分離的子分區 的一第一子分區中,使得當該處理作業觸犯一存取違規 時,藉由從該等邏輯上分離的子分區的該第一子分區中恢 復(restoring)該服務資料來復原(recover)該處理作業。 4 1 ·如申請專利範圍第4 0項所述之計算系統,其中對於該 處理作業所保存的該服務資料包含足夠的位址和資料結構 資訊,其係足以在該音訊子系統中藉著恢復(restoration ) 該保存的服務資料而復原(recover)該處理作業。 50 1357015 42. 如申請專利範圍第40項所述之計算系統,其中: 該處理器執行一第二音訊應用程式以產生一第二音訊 資料流,其係要被輸出至與該第一音訊資料流所被輸出的 一第一音訊裝置不同之一第二音訊裝置;及 該存取遠規與該處理作業的復原對以下並無影響: 該第二音訊應用程式的執行;及 將該第二音訊資料流輸出至該第二音訊裝置。 43. —種在串流音訊處理期間從一音訊處理物件所造成的 一存取違規中復原(recovering)的計算系統,其包含: 一處理器,其係用於執行一作業系統與多個音訊應用 程式; 多個多媒體讀取裝置,其係用於與該多個音訊應用程 式互相作業,以各自產生用來對該作業系統通訊的音訊資 料; 多個音訊裝置,其係由各自的音訊裝置驅動程式所驅 動,用以表現與該作業系統通訊的該音訊資料; 用於該多個音訊應用程式與該作業系統的儲存器,其 中該作業系統具有多個邏輯上分離的分區,該等分區包括 一核心及一音訊子系統,其中該音訊子系統具有: 多個邏輯上分離的子分區,其包含: 一處理位址空間; 一服務位址空間;及 一全域音訊引擎; 51 1357015 一輸入缓衝器,其係與該處理位址空間和該全域音訊引 擎通訊;及 一迴路缓衝器’其係與用來驅動該等音訊裝置之其中— 者的該等音訊裝置驅動程式之其中一者通訊; 其中該處理器執行該作業系統和該等音訊應用程式之 其中一者’以便運行如下: 保存該輸入緩衝器、該全域音訊引擎,及該迴路緩 衝器的服務資料在該服務位址空間中; 從該等音訊應用程式之一者產生音訊資料,而用 以輸入到該處理位址空間且用以輸出作為該輸入緩衝 器中的一音訊資料流; 執行一音訊處理物件(APO),以在該輪入緩衝器 中的該音訊資料流上產生一全域音訊效果(GFX),而在 該迴路缓衝器中形成一數位訊號處理(DSP)音訊資料 流,該DSP音訊資料流係由該等音訊裝置驅動程式之 其中一者所驅動的該等音訊裝置之其中—者來表現; 一旦在該全域音訊引擎中執行的該APO所造成的 一存取違規時,即: 使用針對該輸入緩衝器、該全域音訊引擎,及該 迴路缓衝器的每一者所各自保存於該服務位址空間中 的該服務資料’來恢復(rest〇re)該輪入緩衝器、該 全域音訊引擎’及該迴路緩衝器的每一者;及 在該全域音訊引擎中重新執行(resume)該Ap〇。 52 丄:WU15 4 4.-—種在 φ ά τ ^音訊處理期間從一音訊處理物件 存取違規中指 \ ΑΑ «Ρ> OiU τ设原(recovering)的電腦可讀 ά] I 該電腦之一處理器可執行之程式 電腦可執行> A 现订払令,其包含: 第程式碼區段’其係用於處理來自一第—, 程式的請求,以藉由執行-作業系統來產生-第一 料流’該作業系統係邏輯上分成一核心的一分區和 輯上分離的子分區之—音訊子系統的一分區; 第一程式瑪區段,其係用於在該等邏輯上分_ 品 '第子刀區中保存用於處理該第一音訊資料 處理作業的服務資料;及 第二程式碼區段,其係用於在該等邏輯上分離 =的一第二子分區中,以該處理作業來處理該第一音 :其中當該處理作業觸犯一存取違規時,藉由從 輯上分離的子分區的該第_子分區恢復() 的服務資料,而在該音料K中復原(Μ。·) 作業。 45. 如申請專利範圍第44項所述之電腦可讀取儲存 其中對於該處理作業所保存的該服務資料包含足夠 和資料結構資訊,其係足以在該音訊子系統中藉著恢 存的服務資料而復原該處理作業。 46. 如申请專利範圍第44項所述之電腦可讀取儲存 •造成的 儲存媒 i區段的 訊應用 音訊資 具有邏 的子分 流之一 的子分 訊資料 該等邏 該保存 該處理 媒體, 的位址 復該保 媒體, 53 1357015 更包含一 程式的一 流,其中 所被輸出 該存取違 響: 藉由 流;及 輸出 第四程式碼區段,其係用於處理來自第二音 請求,以藉由執行該作業系統產生一第二音 該第二音訊資料流被輸出至與該第一音訊 的一第一音訊裝置不同的一第二音訊裝置 規與該處理作業的復原(recover )對以下 執行該第二音訊應用程式而產生該第二音 至該第二音訊裝置的該第二音訊資料流。 訊應用 訊資料 資料流 ,其中 並無影 訊資料 54 1357015 __ 、vw替換頁 .....;-r-r 1—r.rr.^-^rrr^r·^·.‘遽:^'纏 77:J] —:T:Jt m • ·.; (一) 、本案指定代表圖為:第i圖。 (二) 、本代表圖之元件代表符號簡單說明: 100 個人電腦正被使用為一媒 102(N)音訊裝置 體伺服器之環境 106(l)...106(k)、106(k+l)擴音器 104(N)驅動程式 112 輸出部分 114 O/S 116 音訊子系統 118 核心 120 輸入部分 122 A-V部分 124 個人電腦 捌、本寒若有化學式時,靖揭示最能顯示發明 —? * kf, · --- ^ ^ , : -
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US10/393,661 US7231269B2 (en) | 2003-03-20 | 2003-03-20 | Recovery upon access violation by audio processing object |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW200506714A TW200506714A (en) | 2005-02-16 |
| TWI357015B true TWI357015B (en) | 2012-01-21 |
Family
ID=32850521
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW093103834A TWI357015B (en) | 2003-03-20 | 2004-02-17 | Method, apparatus, computer-readable media, comput |
Country Status (8)
| Country | Link |
|---|---|
| US (1) | US7231269B2 (zh) |
| EP (1) | EP1465070B1 (zh) |
| JP (1) | JP4589645B2 (zh) |
| KR (1) | KR101067397B1 (zh) |
| CN (1) | CN1532696B (zh) |
| AT (1) | ATE428976T1 (zh) |
| DE (1) | DE602004020537D1 (zh) |
| TW (1) | TWI357015B (zh) |
Families Citing this family (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7565395B2 (en) * | 2005-02-01 | 2009-07-21 | Microsoft Corporation | Mechanism for preserving session state when using an access-limited buffer |
| US8166194B2 (en) * | 2006-12-13 | 2012-04-24 | Microsoft Corporation | Lock-free shared audio buffer |
| US7669082B2 (en) * | 2007-04-11 | 2010-02-23 | Microsoft Corporation | Fault tolerant and hang resistant media processing applications |
| CN101262662B (zh) * | 2007-06-29 | 2011-02-09 | 浙江华立通信集团有限公司 | 用于3g和4g终端的音调生成方法及装置 |
| RU2628925C1 (ru) * | 2016-04-25 | 2017-08-22 | Акционерное общество "Лаборатория Касперского" | Система и способ защищенной передачи аудиоданных от микрофона к процессам |
| CN106095558B (zh) * | 2016-06-16 | 2019-05-10 | Oppo广东移动通信有限公司 | 一种音效处理的方法及终端 |
| CN106126171B (zh) * | 2016-06-16 | 2018-07-06 | 广东欧珀移动通信有限公司 | 一种音效处理方法及移动终端 |
| CN113170014B (zh) * | 2018-12-03 | 2022-07-26 | 深圳市欢太科技有限公司 | 一种闹钟播放的方法、装置及电子设备 |
| CN115223578B (zh) * | 2022-09-21 | 2023-07-14 | 浙江地芯引力科技有限公司 | 一种音频信号同步方法、装置、设备及存储介质 |
Family Cites Families (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CA2152329C (en) | 1994-09-08 | 1999-02-09 | N Dudley Fulton Iii | Apparatus and methods for software rejuvenation |
| US5768126A (en) * | 1995-05-19 | 1998-06-16 | Xerox Corporation | Kernel-based digital audio mixer |
| US6832380B1 (en) * | 1996-06-28 | 2004-12-14 | Tarantella, Inc. | Client-server application partitioning with metering technique for distributed computing |
| US5971851A (en) * | 1996-12-27 | 1999-10-26 | Silicon Gaming, Inc. | Method and apparatus for managing faults and exceptions |
| US6175916B1 (en) * | 1997-05-06 | 2001-01-16 | Microsoft Corporation | Common-thread inter-process function calls invoked by jumps to invalid addresses |
| US6216173B1 (en) * | 1998-02-03 | 2001-04-10 | Redbox Technologies Limited | Method and apparatus for content processing and routing |
| US6243753B1 (en) * | 1998-06-12 | 2001-06-05 | Microsoft Corporation | Method, system, and computer program product for creating a raw data channel form an integrating component to a series of kernel mode filters |
| EP0965923A3 (en) | 1998-06-19 | 2001-04-04 | Intellution Inc. | System and method for secure software component containment |
| US6490722B1 (en) | 1999-03-30 | 2002-12-03 | Tivo Inc. | Software installation and recovery system |
| US7174194B2 (en) * | 2000-10-24 | 2007-02-06 | Texas Instruments Incorporated | Temperature field controlled scheduling for processing systems |
-
2003
- 2003-03-20 US US10/393,661 patent/US7231269B2/en not_active Expired - Lifetime
-
2004
- 2004-02-11 AT AT04003026T patent/ATE428976T1/de not_active IP Right Cessation
- 2004-02-11 EP EP04003026A patent/EP1465070B1/en not_active Expired - Lifetime
- 2004-02-11 DE DE602004020537T patent/DE602004020537D1/de not_active Expired - Lifetime
- 2004-02-17 TW TW093103834A patent/TWI357015B/zh not_active IP Right Cessation
- 2004-03-19 KR KR1020040018840A patent/KR101067397B1/ko not_active Expired - Fee Related
- 2004-03-22 JP JP2004083613A patent/JP4589645B2/ja not_active Expired - Fee Related
- 2004-03-22 CN CN2004100317696A patent/CN1532696B/zh not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| US20040186601A1 (en) | 2004-09-23 |
| ATE428976T1 (de) | 2009-05-15 |
| DE602004020537D1 (de) | 2009-05-28 |
| US7231269B2 (en) | 2007-06-12 |
| CN1532696A (zh) | 2004-09-29 |
| JP4589645B2 (ja) | 2010-12-01 |
| KR20040082993A (ko) | 2004-09-30 |
| EP1465070B1 (en) | 2009-04-15 |
| EP1465070A1 (en) | 2004-10-06 |
| JP2004288196A (ja) | 2004-10-14 |
| CN1532696B (zh) | 2011-04-20 |
| TW200506714A (en) | 2005-02-16 |
| KR101067397B1 (ko) | 2011-09-27 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US10122779B2 (en) | Switching media streams in a client system based on environmental changes | |
| US20120209413A1 (en) | Background Audio on Mobile Devices | |
| US20140115587A1 (en) | Exception handling method, apparatus, and client | |
| TWI357015B (en) | Method, apparatus, computer-readable media, comput | |
| US7779140B2 (en) | Method and system for switching media streams in a client system as directed by a control system | |
| US9591046B1 (en) | Efficiently providing multimedia services | |
| US20080154461A1 (en) | Apparatus, system and method for allowing prescribed components in the system to be started with minimal delay | |
| US7669082B2 (en) | Fault tolerant and hang resistant media processing applications | |
| CN111182334B (zh) | 数据处理方法、服务器、终端以及存储介质 | |
| CN108024125A (zh) | 一种音视频数据播放方法以及服务器和客户端 | |
| US10237594B2 (en) | Device control in backup media-broadcast system | |
| TW201929551A (zh) | 具有備援機制的串流系統及其備援方法 | |
| US10237596B2 (en) | Device control in backup media-broadcast system | |
| JP2010109755A (ja) | 情報処理装置、エフェクトプログラムおよびコンテンツ補正処理方法 | |
| CN115767159B (zh) | 投屏方法、装置、电子设备及存储介质 | |
| JP6903419B2 (ja) | 表示システム、放送システム、および放送番組表示システム | |
| WO2026006933A1 (zh) | 语音交互的方法、装置、设备和存储介质 | |
| CN114416017A (zh) | 一种基于Android的音频焦点实现方法 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| MM4A | Annulment or lapse of patent due to non-payment of fees |