JP2004288196A - オーディオ処理オブジェクトによるアクセス違反時の障害回復 - Google Patents
オーディオ処理オブジェクトによるアクセス違反時の障害回復 Download PDFInfo
- Publication number
- JP2004288196A JP2004288196A JP2004083613A JP2004083613A JP2004288196A JP 2004288196 A JP2004288196 A JP 2004288196A JP 2004083613 A JP2004083613 A JP 2004083613A JP 2004083613 A JP2004083613 A JP 2004083613A JP 2004288196 A JP2004288196 A JP 2004288196A
- Authority
- JP
- Japan
- Prior art keywords
- audio
- global
- context
- engine
- data stream
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
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)
- Accessory Devices And Overall Control Thereof (AREA)
- Electric Clocks (AREA)
- Examining Or Testing Airtightness (AREA)
Abstract
【解決手段】 オペレーティングシステムを、カーネルのパーティションと、論理的に独立した下位パーティションを有するオーディオサブシステムのパーティションとに論理的に分離する。オーディオアプリケーションが、オーディオサブシステムを実行することにより第1のオーディオデータストリームを生成する。第1のオーディオデータストリームを処理するプロセスのコンテクストを第1の下位パーティションに保存する。そのプロセスによる第1のオーディオデータストリームの処理は、第2の下位パーティションで行われる。プロセスがアクセス違反を犯すと、第1の下位パーティションからその保存されたコンテクストをオーディオサブシステムで復元することによってそのプロセスを回復する。
【選択図】 図1
Description
グローバルオーディオエンジン274でGFX APOの処理中にアクセス違反などにより障害が発生した場合は、サービスコンテクスト272に保存されていたその処理のコンテクストを使用して処理を回復することができる。回復の後、サービスコンテクスト272に保存されているそのプロセスの保存されたコンテクストに従ってオーディオデータストリームの処理を再開することができる。オーディオサブシステム116によって行われるこのオーディオ要求へのサービスは、カーネル276からサンドボックスされている。このサンドボックスにより、システム全体にわたる障害が防止される。ローカルおよびグローバルの処理アプリケーションの障害などが原因でクラッシュあるいは障害が発生するアプリケーションは、自動的に回復して処理を再開することができる。
オーディオデータストリームのローカル(局所)の処理中に発生した障害からは回復を行うことができる。例えば、図2にオーディオアプリケーション202として示したメディアプレーヤアプリケーションは、プロセスコンテクスト270中の局所効果オーディオ処理オブジェクト(LFX APO)による処理のためにオーディオデータストリームを渡す。LFX APOには、実行されるとアクセス違反を起こす(例えば、コード中にバグのある)欠陥のあるプログラミングコードセグメントがあるとする。プロセスコンテクスト270でLFX APOを実行する前に、環境200のオーディオサブシステム116は、プロセスコンテクスト270で行われている処理のコンテクストのサービスコンテクスト272への保存(例えば記憶)を調整する。最終的に、LFX APO内のバグによりソフトウェアがアクセス違反を引き起こされる。そのアクセス違反により、次にプロセスコンテクスト270における処理がクラッシュを引き起こされる。このクラッシュの結果、入力バッファ208に再生されていたオーディオがある時間にわたって停止する。そのため、オーディオデバイスドライバ214を介してオーディオデバイスで再生されるオーディオに断絶が生じる。その時間中、環境200はクラッシュからの回復を調整する。
図5に、ここに開示するリアルタイム通信アプリケーション(RTC)およびメディアプレーヤアプリケーション(MP)を含むアプリケーションを完全または部分的に実装することが可能なコンピューティング環境500の一例を示す。例示的コンピューティング環境500は、コンピューティングシステムの一例に過ぎず、このネットワークアーキテクチャの使用または機能性の範囲について何らの制限を示唆することを意図するものではない。また、コンピューティング環境500は、例示的コンピューティング環境500に図示する構成要素の1つまたは組み合わせに関連する依存性または必要性を有するものとも解釈すべきでない。
102 オーディオデバイス
104 ドライバ
106 スピーカ(マイクロフォン)
112 出力部
114、526 オペレーティングシステム
116 オーディオサブシステム
118、276 カーネル
120 入力部
122 A−V部
124 PC
202 オーディオアプリケーション
208 入力バッファ
212 ループバッファ
214 デバイスドライバ
270 プロセスコンテクスト
272 サービスコンテクスト
274 オーディオエンジン
500 コンピューティング環境
502 コンピュータ
504 処理装置
506 システムメモリ
508 システムバス
510 RAM
512 ROM
514 BIOS
516 ハードディスクドライブ
518 磁気ディスクドライブ
520 磁気ディスク
522 光ディスクドライブ
524 光ディスク
525 データメディアインタフェース
528、558 アプリケーションプログラム
530 プログラムモジュール
532 プログラムデータ
534 キーボード
535 マイクロフォン(音声I/O)
536 ポインティングデバイス(マウス)
538 入力装置(他のデバイス)
540 入出力インタフェース
542 モニタ
544 ビデオインタフェース
546 プリンタ
548 リモートコンピューティングデバイス
550 LAN
552 WAN
554 ネットワークアダプタ
556 モデム
558 リモートアプリケーションプログラム
Claims (46)
- オーディオデバイスドライバによって駆動されるオーディオデバイスで出力されるオーディオデータストリームに対して行われるグローバルオーディオ効果(GFX)のためのオーディオ処理オブジェクト(APO)をオペレーティングシステムが実行することを求める要求を受け取るステップであって、
前記オペレーティングシステムは、入力バッファと、ループバッファと、サービスコンテクストおよびグローバルオーディオエンジンを含む論理的に独立したコンテクストとを有するオーディオサブシステムを含むステップと、
前記サービスコンテクストに、前記入力バッファ、前記グローバルオーディオエンジン、および前記ループバッファのコンテクストを保存するステップと、
前記グローバルオーディオエンジンを作動させて前記入力バッファ中のオーディオデータストリームに前記APOを用いてデジタル信号処理を行い、前記ループバッファ中にデジタル信号処理(DSP)オーディオデータストリームを形成するステップと、
前記ループバッファ内の前記DSPオーディオデータストリームを、前記オーディオデバイスを駆動する前記オーディオデバイスドライバに入力するステップと、
前記APOが終了するか、または前記APOによるアクセス違反が生じると、前記サービスコンテクストにそれぞれのために保存されている前記コンテクストを用いて、前記入力バッファ、前記グローバルオーディオエンジン、および前記ループバッファそれぞれを復元するステップと、
前記グローバルオーディオエンジンで前記APOの実行を随意的に再開するステップと
を含むことを特徴とする方法。 - 前記APOの終了または前記APOによるアクセス違反は前記サービスコンテクストによって検出されることを特徴とする請求項1に記載の方法。
- 前記入力バッファのコンテクストは、前記入力バッファに結びついたアドレスおよびデータ構造を含み、
前記グローバルオーディオエンジンのコンテクストは、前記グローバルオーディオエンジンに結びついたアドレスおよびデータ構造を含み、
前記ループバッファのコンテクストは、前記ループバッファに結びついたアドレスおよびデータ構造を含むことを特徴とする請求項1に記載の方法。 - 前記APOによりアクセス違反が行なわれると、前記方法はさらに、
前記APOによるアクセス違反の回数を表すカウンタを増分するステップと、
前記カウンタが所定の上限を超えると、診断を出力し、前記グローバルオーディオエンジンにおける前記APOの実行の再開を禁止するステップと
を含むことを特徴とする請求項1に記載の方法。 - 前記オペレーティングシステムはさらに、複数の前記グローバルオーディオエンジンに対応するための複数の前記ループバッファを含み、
各前記グローバルオーディオエンジンは、対応する前記ループバッファに1つの前記DSPオーディオデータストリームを出力して、対応する前記オーディオデバイスを駆動する対応する前記オーディオデバイスドライバに入力を送ることを特徴とする請求項1に記載の方法。 - 前記オペレーティングシステムはさらに、対応する前記オーディオデバイスで再生(レンダー)されるオーディオデータストリームをそれぞれが含む複数の前記入力バッファを備え、
各前記グローバルオーディオエンジンは1つの前記入力バッファに対応することを特徴とする請求項5に記載の方法。 - 各前記入力バッファは、少なくとも1つの前記オーディオデバイスについてのオーディオサービスを前記オペレーティングシステムに要求するオーディオアプリケーションから対応する前記オーディオデータストリームを受け取ることを特徴とする請求項6に記載の方法。
- 前記オーディオデバイスドライバによって駆動される前記オーディオデバイスで前記DSPオーディオデータストリームを再生(レンダー)するステップをさらに含むことを特徴とする請求項1に記載の方法。
- 前記オペレーティングシステムは、
カーネルのパーティションと、
前記サービスコンテクストの下位パーティション、および
前記グローバルオーディオエンジンの下位パーティション
を含む分離された複数の下位パーティションを有する前記オーディオサブシステムのパーティションと
を含む複数の独立したパーティションを有するメモリ内にあることを特徴とする請求項1に記載の方法。 - 前記複数の独立したパーティションはさらに、APOを実行して前記オーディオデータストリームを前記入力バッファに出力するローカルエンジンを有する処理コンテクストのパーティションを含むことを特徴とする請求項9に記載の方法。
- 前記入力バッファの前記オーディオデータストリームは、前記オーディオデバイスでそれぞれが再生される複数のオーディオアプリケーションからのオーディオデータを含み、
前記グローバルオーディオエンジンは、前記複数のオーディオアプリケーションからのオーディオデータをミキシングして、前記ループバッファ中に前記DSPオーディオデータストリームを形成することを特徴とする請求項10に記載の方法。 - 前記GFXは、残響・反響効果、オーディオ歪み効果、スピーカ補償効果、マルチバンドオーディオイコライザ効果からなるグループから選択されることを特徴とする請求項1に記載の方法。
- 前記コンピューティングシステムによって実行されるときに請求項1に記載の方法を実施するコンピュータ可読命令を有することを特徴とする1つまたは複数のコンピュータ可読媒体。
- オーディオデバイスドライバによって駆動されるオーディオデバイスで出力されるオーディオデータストリームに対して行われるグローバルオーディオ効果(GFX)のためのオーディオ処理オブジェクト(APO)をオペレーティングシステムが実行することを求める要求をオーディオアプリケーションから受け取るステップであって、前記オペレーティングシステムは、
カーネルと、
入力バッファおよびループバッファを有するオーディオサブシステムと
を含むメモリ中に個別のパーティションを有し、
前記メモリ中の前記オーディオサブシステムのパーティションは、
サービスコンテクストと、
前記APOを実行するグローバルオーディオエンジンと
を含む個々別々の下位パーティションを有するステップと、
前記入力バッファ、前記ループバッファ、および前記グローバルオーディオエンジンに結びついたアドレスおよびデータ構造を前記サービスコンテクストに保存するステップと、
前記グローバルオーディオエンジンを作動させて
前記入力バッファ中のオーディオデータストリームに前記APOでデジタル信号処理を行って、デジタル信号処理(DSP)オーディオデータストリームを形成し、
前記DSPオーディオデータストリームを前記ループバッファに出力するステップと、
前記DSPオーディオデータストリームを再生する前記オーディオデバイスを駆動する前記オーディオデバイスドライバに前記ループバッファ中の前記DSPオーディオデータストリームを入力するステップと、
前記APOが終了するかまたは前記APOによりアクセス違反が行われると、
前記サービスコンテクストに保存されている前記入力バッファのアドレスおよびデータ構造を用いて前記入力バッファを復元するステップと、
前記サービスコンテクストに保存されている前記グローバルオーディオエンジンのアドレスおよびデータ構造を用いて前記グローバルオーディオエンジンを復元するステップと、
前記サービスコンテクストに保存されている前記ループバッファのアドレスおよびデータ構造を用いて前記ループバッファを復元するステップと、
前記グローバルオーディオエンジンで前記APOの実行を随意的に再開するステップと
を含むことを特徴とする方法。 - 前記APOの終了または前記APOによるアクセス違反は前記サービスコンテクストによって検出されることを特徴とする請求項14に記載の方法。
- 前記メモリ中の前記オーディオサブシステムのパーティションはさらに、APOを実行して前記オーディオデータストリームを前記入力バッファに出力するローカルエンジンを有する処理コンテクストのための独立した下位パーティションを含むことを特徴とする請求項14に記載の方法。
- 前記入力バッファ内の前記オーディオデータストリームは、前記オーディオデバイスでそのそれぞれが再生される複数のオーディオアプリケーションからのオーディオデータを含み、
前記グローバルオーディオエンジンは、前記複数のオーディオアプリケーションからの前記オーディオデータをミキシングして、前記ループバッファ中に前記DSPオーディオデータストリームを形成することを特徴とする請求項16に記載の方法。 - 前記入力バッファは、前記プロセスコンテクストのパーティションと前記グローバルオーディオエンジンのパーティションとで共有される前記メモリ中の前記オーディオサブシステムのパーティション内に論理的に位置し、
前記ループバッファは、前記グローバルオーディオエンジンのパーティションと前記カーネルのパーティションとで共有される前記メモリ中の前記オーディオサブシステムのパーティションの内に論理的に位置していることを特徴とする請求項14に記載の方法。 - 前記APOによりアクセス違反が行なわれると、前記方法はさらに、
前記APOによるアクセス違反の回数を表すカウンタを増分するステップと、
前記カウンタが所定の上限を超えると、診断を出力し、前記グローバルオーディオエンジンにおける前記APOの実行の再開を禁止するステップと
を含むことを特徴とする請求項14に記載の方法。 - 前記オペレーティングシステムはさらに、対応する複数の前記グローバルオーディオエンジンのための複数の前記ループバッファを含み、
各前記グローバルオーディオエンジンは、対応する前記ループバッファに1つの前記DSPオーディオデータストリームを出力して、対応する前記オーディオデバイスを駆動する対応する前記オーディオデバイスドライバに入力を送ることを特徴とする請求項14に記載の方法。 - 前記オペレーティングシステムはさらに、対応する前記オーディオデバイスにより再生されるオーディオデータストリームをそれぞれが含む複数の前記入力バッファを備え、
各前記グローバルオーディオエンジンは、1つの前記入力バッファに対応することを特徴とする請求項20に記載の方法。 - 各前記入力バッファは、少なくとも1つの前記オーディオデバイスについてのオーディオサービスを前記オペレーティングシステムに要求する対応する前記オーディオアプリケーションから対応する前記オーディオデータストリームを受け取ることを特徴とする請求項21に記載の方法。
- コンピューティングシステムによって実行されるときに請求項14に記載の方法を実施するコンピュータ可読命令を有することを特徴とする1つまたは複数のコンピュータ可読媒体。
- 論理的に独立したパーティションにあるカーネルとオーディオサブシステムとを含むコンピュータ実行可能オペレーティングシステムであって、前記オーディオサブシステムは、入力バッファと、オーディオデバイスを駆動するデバイスドライバと通信するループバッファとを有し、かつ前記オーディオサブシステムは、
前記入力バッファ中のオーディオデータストリームに行われるグローバルオーディオ効果(GFX)のためのオーディオ処理オブジェクト(APO)を実行して、前記デバイスドライバによって駆動される前記オーディオデバイスで再生される前記ループバッファ中のオーディオデータストリームを形成するグローバルオーディオエンジンと、
前記入力バッファ、前記グローバルオーディオエンジン、および前記ループバッファのコンテクストを保存するサービスコンテクストと、
を含む論理的に独立した複数の下位パーティションをも含み、
前記グローバルオーディオエンジンで実行中の前記APOが終了するか、または前記APOによりアクセス違反が行われると、
前記サービスコンテクストにそれぞれのために保存されている前記コンテクストを用いて、前記入力バッファ、前記グローバルオーディオエンジン、および前記ループバッファのそれぞれを復元し、
前記グローバルオーディオエンジンにおける前記APOの実行が随意的に再開することを特徴とするコンピュータ実行可能オペレーティングシステム。 - 前記入力バッファのコンテクストは、前記入力バッファに結びついたアドレスおよびデータ構造を含み、
前記グローバルオーディオエンジンのコンテクストは、前記グローバルオーディオエンジンに結びついたアドレスおよびデータ構造を含み、
前記ループバッファのコンテクストは、前記ループバッファに結びついたアドレスおよびデータ構造を含むことを特徴とする請求項24に記載のコンピュータ実行可能オペレーティングシステム。 - 前記APOによりアクセス違反が行なわれると、
前記APOによるアクセス違反の回数を表すカウンタが増分され、
前記カウンタが所定の上限を超えると、診断が出力され、前記グローバルオーディオエンジンにおいて前記APOの実行が禁止されることを特徴とする請求項24に記載のコンピュータ実行可能オペレーティングシステム。 - 前記オペレーティングシステムはさらに、対応する複数の前記グローバルオーディオエンジンのための複数の前記ループバッファを含み、
各前記グローバルオーディオエンジンは、対応する前記ループバッファに1つの前記DSPオーディオデータストリームを出力して、対応する前記オーディオデバイスを駆動する対応する前記オーディオデバイスドライバに入力を送ることを特徴とする請求項24に記載のコンピュータ実行可能オペレーティングシステム。 - 前記オペレーティングシステムはさらに、対応する前記オーディオデバイスで再生されるオーディオデータストリームをそれぞれが含む複数の前記入力バッファを備え、
各前記グローバルオーディオエンジンは1つの前記入力バッファに対応することを特徴とする請求項27に記載のコンピュータ実行可能オペレーティングシステム。 - 各前記入力バッファは、少なくとも1つの前記オーディオデバイスについてのオーディオサービスを前記オペレーティングシステムに要求するオーディオアプリケーションから対応する前記オーディオデータストリームを受け取ることを特徴とする請求項28に記載のコンピュータ実行可能オペレーティングシステム。
- 前記複数の論理的に独立したパーティションはさらに、APOを実行して前記入力バッファにオーディオデータストリームを出力するローカルエンジンを有する処理コンテクストのためのパーティションを含むことを特徴とする請求項24に記載のコンピュータ実行可能オペレーティングシステム。
- 前記入力バッファは、前記オーディオデバイスでそのそれぞれが再生される複数のオーディオアプリケーションからのオーディオデータを格納し、
前記グローバルオーディオエンジンは、前記複数のオーディオアプリケーションからのオーディオデータをミキシングして、前記ループバッファ内にオーディオデータを形成することを特徴とする請求項24に記載のコンピュータ実行可能オペレーティングシステム。 - オペレーティングシステムのカーネルと、
前記オペレーティングシステムのオーディオサブシステムと
を含む論理的に独立した複数のパーティションを格納する手段であって、前記オーディオサブシステムは、
入力バッファ、およびオーディオを再生する手段を駆動する手段と通信するループバッファと
サービスコンテクストおよびグローバルオーディオエンジンを含む論理的に独立した複数の下位パーティションと
を含む手段と;
前記オーディオサブシステムを実行させて、
前記入力バッファ、前記グローバルオーディオエンジン、および前記ループバッファのコンテクストを前記サービスコンテクストに保存し、
前記入力バッファ内のオーディオデータストリームにグローバルオーディオ効果(GFX)を生成するオーディオ処理オブジェクト(APO)を実行して、前記オーディオデバイスを駆動する手段によって駆動されるオーディオを再生する手段で再生される前記ループバッファ中のオーディオデータストリームを形成する手段と;
前記グローバルオーディオエンジンで実行中の前記APOによりアクセス違反が行なわれると、
前記サービスコンテクストにそれぞれのために個別に保存されている前記コンテクストを使用して前記入力バッファ、前記グローバルオーディオエンジン、および前記ループバッファのそれぞれを復元し、
前記グローバルオーディオエンジンにおいて前記APOの実行を再開する手段と
を含むことを特徴とする装置。 - 前記入力バッファのコンテクストは、前記入力バッファに結びついたアドレスおよびデータ構造を含み、
前記グローバルオーディオエンジンのコンテクストは、前記グローバルオーディオエンジンに結びついたアドレスおよびデータ構造を含み、
前記ループバッファのコンテクストは、前記ループバッファに結びついたアドレスおよびデータ構造を含むことを特徴とする請求項32に記載の装置。 - 前記APOによりアクセス違反が行なわれると、前記再開する手段は、
前記APOによるアクセス違反の回数を表すカウンタを増分し、
前記カウンタが所定の上限を超えると、診断を出力し、前記グローバルオーディオエンジンにおける前記APOの実行の再開を禁止する
ことを特徴とする請求項32に記載の装置。 - 前記オーディオサブシステムはさらに、対応する複数の前記グローバルオーディオエンジンのための複数の前記ループバッファを含み、
各前記グローバルオーディオエンジンは、対応する前記ループバッファに1つの前記オーディオデータストリームを出力して、対応する前記オーディオを再生する手段を駆動する対応する前記手段に入力を送ることを特徴とする請求項32に記載の装置。 - 前記オーディオサブシステムはさらに、対応する前記オーディオを再生する手段で再生されるオーディオデータストリームをそのそれぞれが含む複数の前記入力バッファを備え、
各前記グローバルオーディオエンジンは1つの前記入力バッファに対応することを特徴とする請求項35に記載の装置。 - 各前記入力バッファは、少なくとも1つの前記オーディオを再生する手段についてのオーディオサービスを前記オペレーティングシステムに要求するオーディオアプリケーションから対応する前記オーディオデータストリームを受け取ることを特徴とする請求項36に記載の装置。
- 前駆オーディオサブシステムの前記複数の論理的に独立した下位パーティションはさらに、APOを実行して前記オーディオデータストリームを前記入力バッファに出力するローカルエンジンを有する処理コンテクストのための下位パーティションを含むことを特徴とする請求項32に記載の装置。
- 前記入力バッファ内の前記オーディオデータストリームは、前記オーディオを再生する手段でそのそれぞれが再生される複数のオーディオアプリケーションからのオーディオデータを含み、
前記グローバルオーディオエンジンは、前記複数のオーディオアプリケーションからのオーディオデータをミキシングして、前記ループバッファ中に前記オーディオデータストリームを形成することを特徴とする請求項38に記載の装置。 - 第1のオーディオデータストリームを生成するオーディオアプリケーションを実行し、かつカーネルのためのパーティションと、論理的に独立した下位パーティションを有するオーディオサブシステムのためのパーティションとに論理的に分離されたオペレーティングシステムを実行するプロセッサを含み、
前記オーディオサブシステムを用いて前記第1のオーディオデータストリームを処理するプロセスが、前記プロセスを第2の前記下位パーティションで実行する前に第1の前記下位パーティションに保存されたコンテクストを有し、
それにより前記プロセスがアクセス違反を犯すと、前記第1の下位パーティションから前記プロセスのコンテクストを復元することにより前記プロセスを回復することを特徴とするコンピューティングシステム。 - 前記プロセスの前記保存されたコンテクストは、前記オーディオサブシステム内で前記保存されたコンテクストを復元することにより前記プロセスを回復するのに十分なアドレスおよびデータ構造の情報を含むことを特徴とする請求項40に記載のコンピューティングシステム。
- 前記プロセッサは、前記第1のオーディオデータストリームが出力されるところの第1のオーディオデバイスとは異なる第2のオーディオデバイスに出力される第2のオーディオデータストリームを生成する第2のオーディオアプリケーションを実行し、
前記プロセスの前記アクセス違反および回復は、
前記第2のオーディオアプリケーションの実行にも、
前記第2のオーディオデバイスに出力される前記第2のオーディオデータストリームにも
影響しないことを特徴とする請求項40に記載のコンピューティングシステム。 - オペレーティングシステムおよび複数のオーディオアプリケーションを実行するプロセッサと、
前記複数のオーディオアプリケーションと同時に使用して、前記オペレーティングシステムへ伝達するオーディオデータを個別に生成する複数のマルチメディア読み取りデバイスと、
個々のオーディオデバイスドライバによって駆動され、前記オペレーティングシステムへ伝達された前記オーディオデータを再生する複数のオーディオデバイスと、
前記複数のオーディオアプリケーションおよび前記オペレーティングシステムのための記憶機構とを備え、
前記オペレーティングシステムが、カーネルとオーディオサブシステムとを含む複数の論理的に独立したパーティションを有し、前記オーディオサブシステムが、
プロセスコンテクストと、
サービスコンテクストと、
グローバルオーディオエンジンと
を含む複数の論理的に独立した下位パーティションと、
前記プロセスコンテクストおよび前記グローバルオーディオエンジンと通信する入力バッファと、
前記オーディオデバイスの1つを駆動する前記オーディオデバイスドライバの1つと通信するループバッファと
を含み、
前記プロセッサが、前記オペレーティングシステムと前記オーディオアプリケーションの1つとを実行して、
前記入力バッファ、前記グローバルオーディオエンジン、および前記ループバッファのコンテクストを前記サービスコンテクストに保存し、
オーディオデータストリームとして前記入力バッファに出力するために前記プロセスコンテクストに入力するオーディオデータを1つの前記オーディオアプリケーションから生成し、
前記入力バッファ内の前記オーディオデータストリームにグローバルオーディオ効果(GFX)を生成するオーディオ処理オブジェクト(APO)を実行して、前記オーディオデバイスドライバの1つによって駆動されるオーディオデバイスの1つで再生されるオーディオデータストリームを前記ループバッファ内に形成し、
前記グローバルオーディオエンジンで実行中の前記APOによりアクセス違反が行なわれると、
前記サービスコンテクストにそのそれぞれのために個別に保存されているコンテクストを用いて、前記入力バッファ、前記グローバルオーディオエンジン、および前記ループバッファそれぞれを復元し、
前記グローバルオーディオエンジンにおいて前記APOの実行を再開することを特徴とするコンピューティングシステム。 - カーネルのパーティションと、論理的に独立した下位パーティションを有するオーディオサブシステムのパーティションとに論理的に分離されたオペレーティングシステムを実行することにより、第1のオーディオデータストリーミングを生成することをオーディオアプリケーションに求める処理をする第1のコードセグメントと、
第1の前記下位パーティションに、前記第1のオーディオデータストリームを処理するプロセスのためのコンテクストを保存する第2のコードセグメントと、
第2の前記下位パーティションで前記プロセスを用いて前記第1のオーディオデータストリームを処理する第3のコードセグメントと
を含み、
前記プロセスがアクセス違反を犯すと、前記オーディオサブシステム内に前記第1の下位パーティションから前記保存されたコンテクストを復元することにより、前記プロセスを回復することを特徴とするコンピュータ可読媒体。 - 前記プロセスのための前記保存されたコンテクストは、前記オーディオサブシステム内に前記保存されたコンテクストを復元することにより前記プロセスを回復するのに十分なアドレスおよびデータ構造の情報を含むことを特徴とする請求項44に記載のコンピュータ可読媒体。
- 前記オペレーティングシステムを実行することにより第2のオーディオデータストリームを生成することを求めるオーディオアプリケーションに要求することを処理する第4のコードセグメントをさらに含み、前記第2のオーディオデータストリームは、第1のオーディオデータストリームが出力される第1のオーディオデバイスとは異なる第2のオーディオデバイスに出力されるように命令され、前記プロセスの前記アクセス違反および回復は、
前記第2のオーディオアプリケーションの実行による前記第2のオーディオデータストリームの生成にも
前記第2のオーディオデバイスに出力される前記第2のオーディオデータストリームにも
影響しないことを特徴とする請求項44に記載のコンピュータ可読媒体。
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 (3)
| Publication Number | Publication Date |
|---|---|
| JP2004288196A true JP2004288196A (ja) | 2004-10-14 |
| JP2004288196A5 JP2004288196A5 (ja) | 2007-04-19 |
| JP4589645B2 JP4589645B2 (ja) | 2010-12-01 |
Family
ID=32850521
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2004083613A Expired - Fee Related JP4589645B2 (ja) | 2003-03-20 | 2004-03-22 | オーディオ処理オブジェクトによるアクセス違反時の障害回復 |
Country Status (8)
| Country | Link |
|---|---|
| US (1) | US7231269B2 (ja) |
| EP (1) | EP1465070B1 (ja) |
| JP (1) | JP4589645B2 (ja) |
| KR (1) | KR101067397B1 (ja) |
| CN (1) | CN1532696B (ja) |
| AT (1) | ATE428976T1 (ja) |
| DE (1) | DE602004020537D1 (ja) |
| TW (1) | TWI357015B (ja) |
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 | Акционерное общество "Лаборатория Касперского" | Система и способ защищенной передачи аудиоданных от микрофона к процессам |
| CN106126171B (zh) * | 2016-06-16 | 2018-07-06 | 广东欧珀移动通信有限公司 | 一种音效处理方法及移动终端 |
| CN106095558B (zh) * | 2016-06-16 | 2019-05-10 | Oppo广东移动通信有限公司 | 一种音效处理的方法及终端 |
| EP3886414A4 (en) * | 2018-12-03 | 2021-12-15 | Shenzhen Heytap Technology Corp., Ltd. | CLOCK READING PROCESS AND APPARATUS AND ELECTRONIC DEVICE |
| CN115223578B (zh) * | 2022-09-21 | 2023-07-14 | 浙江地芯引力科技有限公司 | 一种音频信号同步方法、装置、设备及存储介质 |
Citations (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH0895814A (ja) * | 1994-09-08 | 1996-04-12 | At & T Corp | ソフトウエアの更新のための装置及び方法 |
| WO1998000780A1 (en) * | 1996-06-28 | 1998-01-08 | New Moon Software, Inc. | Client-server technique for distributed computing |
| US5971851A (en) * | 1996-12-27 | 1999-10-26 | Silicon Gaming, Inc. | Method and apparatus for managing faults and exceptions |
| EP0965923A2 (en) * | 1998-06-19 | 1999-12-22 | Intellution Inc. | System and method for secure software component containment |
| 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 |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5768126A (en) * | 1995-05-19 | 1998-06-16 | Xerox Corporation | Kernel-based digital audio mixer |
| 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 DE DE602004020537T patent/DE602004020537D1/de not_active Expired - Lifetime
- 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-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
Patent Citations (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH0895814A (ja) * | 1994-09-08 | 1996-04-12 | At & T Corp | ソフトウエアの更新のための装置及び方法 |
| WO1998000780A1 (en) * | 1996-06-28 | 1998-01-08 | New Moon Software, Inc. | Client-server 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 |
| EP0965923A2 (en) * | 1998-06-19 | 1999-12-22 | Intellution Inc. | System and method for secure software component containment |
Also Published As
| Publication number | Publication date |
|---|---|
| EP1465070B1 (en) | 2009-04-15 |
| TWI357015B (en) | 2012-01-21 |
| KR101067397B1 (ko) | 2011-09-27 |
| CN1532696B (zh) | 2011-04-20 |
| KR20040082993A (ko) | 2004-09-30 |
| CN1532696A (zh) | 2004-09-29 |
| JP4589645B2 (ja) | 2010-12-01 |
| DE602004020537D1 (de) | 2009-05-28 |
| ATE428976T1 (de) | 2009-05-15 |
| TW200506714A (en) | 2005-02-16 |
| EP1465070A1 (en) | 2004-10-06 |
| US7231269B2 (en) | 2007-06-12 |
| US20040186601A1 (en) | 2004-09-23 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US8606950B2 (en) | System and method for transparently processing multimedia data | |
| US9146760B2 (en) | Fast booting a computing device to a specialized experience | |
| US8302089B2 (en) | Rebootless display driver upgrades | |
| KR20110007114A (ko) | 원격 세션에서의 멀티미디어 동작을 관리하는 시스템 및 방법 | |
| WO2020221190A1 (zh) | 小程序状态同步方法、设备和计算机存储介质 | |
| WO2019127114A1 (zh) | 一种虚拟机的音频播放方法及其装置、移动终端 | |
| JP4589645B2 (ja) | オーディオ処理オブジェクトによるアクセス違反時の障害回復 | |
| US11157233B1 (en) | Application subset selective audio capture | |
| WO2019071678A1 (zh) | 一种直播的方法和装置 | |
| US7228526B2 (en) | Application imaging infrastructure | |
| US8010965B2 (en) | Automatic task performance as scheduled using embedded secondary processor | |
| US7783987B2 (en) | User experience enforcement | |
| US7571016B2 (en) | Crossfade of media playback between different media processes | |
| CN120011106A (zh) | 中间件通信方法、装置、设备及存储介质 | |
| CN118101629B (zh) | 一种音频直播及音频处理方法、装置及存储介质 | |
| US20080124041A1 (en) | Adding video effects for video enabled applications | |
| JP2006164266A (ja) | オペレーティングシステムのパフォーマンスの改善 | |
| CN117472321A (zh) | 音频处理方法、装置、存储介质及电子设备 | |
| CN112015443A (zh) | 电子设备的升级方法、装置、电子设备和存储介质 | |
| CN1317115A (zh) | 应用程序崩溃后向视频堆栈的接入保持 | |
| US20250251900A1 (en) | Offloading a cpu-based audio pump and processing to an audio co-processor | |
| TW202414207A (zh) | 控制系統及控制方法 | |
| Saint-Hilaire | Extreme Programming with Intel vPro Technology: Pushing the Limits with Innovative Software. | |
| KR20110006979A (ko) | 터미널 서비스의 가속화를 위한 멀티미디어 재생 분산처리 시스템 및 그 방법 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070306 |
|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070306 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100330 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100528 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20100903 |
|
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100910 |
|
| R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130917 Year of fee payment: 3 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
| R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| LAPS | Cancellation because of no payment of annual fees |