JP2008065736A - データ処理装置、データ処理方法、プログラムおよび記録媒体 - Google Patents
データ処理装置、データ処理方法、プログラムおよび記録媒体 Download PDFInfo
- Publication number
- JP2008065736A JP2008065736A JP2006245204A JP2006245204A JP2008065736A JP 2008065736 A JP2008065736 A JP 2008065736A JP 2006245204 A JP2006245204 A JP 2006245204A JP 2006245204 A JP2006245204 A JP 2006245204A JP 2008065736 A JP2008065736 A JP 2008065736A
- Authority
- JP
- Japan
- Prior art keywords
- filter
- data processing
- processing apparatus
- interface
- dll
- 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.)
- Pending
Links
Images
Abstract
【課題】DirectShowフィルタの開発容易性と利便性を確保しつつ、他のアプリケーションから利用できないDirectShowフィルタの実現。
【解決手段】外部インターフェイスとしてDllGetObjectClassのみを有し、レジストリ登録機能を有しないことを最大の特徴とする第一のデータ処理装置と、COMサーバーを使用せずにDLLが持つDllGetObjectClassを直接コールすることによりDLLが有するIBaseFilterを取得してDirectShowフィルタとしてロードすることを最大の特徴とする第二のデータ処理装置を組み合わせて使用することでDirectShowのロードに必要な識別GUIDを隠蔽することを最大の特徴とするデータ処理システム、プログラムおよび記録媒体。
【選択図】図1
【解決手段】外部インターフェイスとしてDllGetObjectClassのみを有し、レジストリ登録機能を有しないことを最大の特徴とする第一のデータ処理装置と、COMサーバーを使用せずにDLLが持つDllGetObjectClassを直接コールすることによりDLLが有するIBaseFilterを取得してDirectShowフィルタとしてロードすることを最大の特徴とする第二のデータ処理装置を組み合わせて使用することでDirectShowのロードに必要な識別GUIDを隠蔽することを最大の特徴とするデータ処理システム、プログラムおよび記録媒体。
【選択図】図1
Description
本発明は、PC上で動作するソフトウェアに関するものである。
近年、動画、音声に関する技術が進歩し、様々なコーデックが新たに開発されている。同時にPC上での動画、音声の再生も盛んに行われており、PC向けの動画、音声の再生環境の開発が期待されている。Windows(登録商標) PC上で動画や音声を再生するための開発ツールとして、DirectShowという開発ツールがMicrosoftから提供されており、MPEGのような圧縮された動画をデコードし、再生するためのツールとして一般的に利用されている。
DirectShowが一般的に利用される主な理由として、以下のことが挙げられる。
−再生時の時間管理が標準で提供されているため開発が容易。
−最終の非圧縮Video/Audio出力デバイスとの結合が標準で提供されている。
−定められた規約で開発することにより、容易に再生環境を構築できる。
即ち、開発者はDirectShowFilterを開発することで、容易に動画や音声を再生する環境をWindows(登録商標) PC上に構築することができる。
即ち、開発者はDirectShowFilterを開発することで、容易に動画や音声を再生する環境をWindows(登録商標) PC上に構築することができる。
上記の他にDirectShowFilterの特徴として、以下のことが挙げられる。
−COM(Component Object Model)形式でのインプリメント。
−レジストリ登録が必要。
−全てのアプリケーションから利用が可能。
DirectShowFilterは、128bitのCLSID(クラスID)をレジストリに登録する。アプリケーションから特定のDirectShowFilterを使用する際にはこのCLSIDを用いてCOMサーバーに問い合わせ、COMサーバーがレジストリに登録されているCLSIDを基にDLLのパス名を特定し、実際のDLLをロード、インターフェイスを取得する。アプリケーションは取得したインターフェイスを用いて、グラフを構築し、再生環境を構築する。
DirectShowFilterは、128bitのCLSID(クラスID)をレジストリに登録する。アプリケーションから特定のDirectShowFilterを使用する際にはこのCLSIDを用いてCOMサーバーに問い合わせ、COMサーバーがレジストリに登録されているCLSIDを基にDLLのパス名を特定し、実際のDLLをロード、インターフェイスを取得する。アプリケーションは取得したインターフェイスを用いて、グラフを構築し、再生環境を構築する。
以上のように、DirectShowFilterが動画や音声の再生環境構築の開発を行う上で、便利な機能が提供されている一方で、ライセンス契約上の制約を遵守する開発や新技術の開発を行う上での問題点も含んでいる。
ライセンス契約上の制約の例を挙げると、「他のアプリケーションから容易に使用できないようにすること」などがこれに相当する。先に述べたように、DirectShowFilterは全てのアプリケーションから利用できることが特徴の一つであり、他のアプリケーションから使用できなくするには、別途実装時の工夫が必要になる。
また、新技術の開発に関しては、新技術を盛り込んだDirectShowフィルタに容易にアクセスされると、他社などに容易に新技術の評価をされてしまう。
他のアプリケーションから利用できなくする技術に関しては、特許文献1に示す、プログラムの暗号化を用いた手法などがあるが、暗号化したプログラムを動作させるためには、
暗号化されていないプログラムを動作させるのと比較して、膨大な処理能力が必要とされる。また、暗号化導入に伴う開発ステップの増大と、検証項目が増加し、開発期間が増大する。
特開2004−54798号公報
暗号化されていないプログラムを動作させるのと比較して、膨大な処理能力が必要とされる。また、暗号化導入に伴う開発ステップの増大と、検証項目が増加し、開発期間が増大する。
発明が解決しようとする課題は、以下の2点を同時に実現することである。
・DirectShowの開発容易性と利便性を確保。
・他のアプリケーションから利用できないようにする。
DirectShowの開発容易性と利便性を確保することで、従来の開発手法を踏襲しつつ、再生環境を容易に構築する。また、他のアプリケーションから利用できないようにすることで、新技術の隠蔽や、ライセンス契約上の「他のアプリケーションから使用できないようにすること」などの制約事項を満足させることを実現する。
DirectShowの開発容易性と利便性を確保することで、従来の開発手法を踏襲しつつ、再生環境を容易に構築する。また、他のアプリケーションから利用できないようにすることで、新技術の隠蔽や、ライセンス契約上の「他のアプリケーションから使用できないようにすること」などの制約事項を満足させることを実現する。
レジストリ登録機能を有しないことを最大の特徴とする第一のデータ処理装置とCOMサーバーを使用せずにDirectShowフィルタのロードすることを最大の特徴とする第二のデータ処理装置を組み合わせて使用することを最大の特徴とする。
暗号化を用いずに、容易な開発プロセスにより、他のアプリケーションから利用できないDirectShowフィルタを実現することができる。
(実施の形態1)
DirectShowフィルタを用いたMPEG等の圧縮動画の再生を例に挙げ、DirectShowフィルタについての説明をする。DirectShowはDirectXコンポーネント内のモジュール群であり、動画の再生に必要なフレームワークが定義されている。動画再生時に必要な構成要素としては、グラフとフィルタがある。
DirectShowフィルタを用いたMPEG等の圧縮動画の再生を例に挙げ、DirectShowフィルタについての説明をする。DirectShowはDirectXコンポーネント内のモジュール群であり、動画の再生に必要なフレームワークが定義されている。動画再生時に必要な構成要素としては、グラフとフィルタがある。
グラフはフィルタを操作するためのフレームワークであり、以下の機能を有している。
・フィルタをグラフに追加
・フィルタ同士のピンの接続
・ フィルタへの再生/一時停止/停止/再生位置移動の命令発行
フィルタはフィルタ同士を接続するピンと動画ストリームを処理するための処理部とグラフからの操作を行うためのフレームワークを有している。図1に示すようにフィルタはピンの構成から大きく3種類に大別することができる。
・フィルタ同士のピンの接続
・ フィルタへの再生/一時停止/停止/再生位置移動の命令発行
フィルタはフィルタ同士を接続するピンと動画ストリームを処理するための処理部とグラフからの操作を行うためのフレームワークを有している。図1に示すようにフィルタはピンの構成から大きく3種類に大別することができる。
・出力ピンのみを持つフィルタ(フィルタ101)
・入力ピンと出力ピンを持つフィルタ(フィルタ201)
・入力ピンのみを持つフィルタ(フィルタ301)
ピン102、ピン202、ピン203、ピン302はフィルタ間のデータの受け渡しを行うインターフェイスであり、定められたフレームワークに基づいて実装されており、様々なフィルタ間でのデータの送信が可能となる。
・入力ピンと出力ピンを持つフィルタ(フィルタ201)
・入力ピンのみを持つフィルタ(フィルタ301)
ピン102、ピン202、ピン203、ピン302はフィルタ間のデータの受け渡しを行うインターフェイスであり、定められたフレームワークに基づいて実装されており、様々なフィルタ間でのデータの送信が可能となる。
フィルタは、定められたフレームワークに基づき実装されており、グラフはその定められたフレームワークを使用することで、様々なフィルタ間でデータの流れをコントロールすることができる。
アプリケーションは、グラフを作成し、グラフ内にフィルタを配置し、グラフを用いてフィルタ同士を接続し、グラフを用いて動画データを流すことで目的のデータ変換を行ない、動画として出力することができる。
また、ビデオデバイスを介して映像を画面上に描画するために必要な処理を含んだフィルタや、サウンドデバイスを介して音声をスピーカー等から出力するために必要な処理を含んだフィルタがDirectXコンポーネントに標準で提供されており、アプリケーションはこれらのフィルタを使用することで、容易に動画の再生を実現することができる。
図2は、圧縮された動画を再生する際のグラフとフィルタの構成の1例である。グラフ100に、フィルタ111、フィルタ211、フィルタ221、フィルタ231、フィルタ311、フィルタ321を追加する。フィルタ111は圧縮データをファイルから読みみ込みピン112を介して、フィルタ211に渡すためのフィルタである。フィルタ211は、ピン212から入力されたデータを圧縮されたビデオデータと、オーディオデータに分離し、ピン213を介して、ビデオデータをフィルタ221に渡し、ピン214を介して、オーディオデータをフィルタ231に渡すためのフィルタである。フィルタ221はピン222から入力された圧縮ビデオデータをデコードし、非圧縮ビデオデータに変換してピン223を介して、フィルタ311に渡すためのフィルタである。フィルタ231はピン232から入力された圧縮オーディオデータをデコードし、非圧縮オーディオデータに変換してピン233を介して、フィルタ321に渡すためのフィルタである。フィルタ311はピン312から入力された非圧縮ビデオデータを画面上に描画するためのフィルタである。フィルタ321はピン322から入力された非圧縮オーディオデータをサウンドデバイスから出力するためのフィルタである。
例えば、既存の転送システムを用いて、かつビデオ圧縮方式のみ既存と異なる圧縮データを再生する場合には、これらのフィルタの内、フィルタ101、フィルタ211、フィルタ231、フィルタ311、フィルタ321はDirectShowで標準に提供されるフィルタを使用することが可能であり、フィルタ221のみを新規に開発するだけで、再生環境を構築することが可能となる。
グラフおよびフィルタは128bitのクラスIDおよびインターフェイスIDで管理されており、アプリケーションはフィルタが持つクラスID、および標準で規定されているインターフェイスIDのみを知ることで、アプリケーションからDirectShowフィルタを容易にグラフに追加することができる。そのため、アプリケーションは実際に実行されるフィルタがどのDLLに存在するかを知る必要がない。フィルタがどのDLL内に存在するかは、DirectXコンポーネントが持つCOM(Component Object Model)サーバーで管理されている。アプリケーションがグラフやフィルタを使用する際には、このCOMサーバーに対して、クラスIDやインターフェイスIDを指定し、目的のインターフェイスを取得する。
COMサーバーで
・フィルタの実行DLL特定
・アプリケーションで指定されたインターフェイスをDLLから取得
を実現するために、通常のDirectShowフィルタを含むDLLを作成する場合は、DLLのモジュール定義ファイルに
・GetObjectClass
・DllRegisterServer
・DllUnregisterServer
を記述し、DLLにインプリメントしなければならない。
COMサーバーで
・フィルタの実行DLL特定
・アプリケーションで指定されたインターフェイスをDLLから取得
を実現するために、通常のDirectShowフィルタを含むDLLを作成する場合は、DLLのモジュール定義ファイルに
・GetObjectClass
・DllRegisterServer
・DllUnregisterServer
を記述し、DLLにインプリメントしなければならない。
GetObjectClassは、COMサーバーからDLLに対してIClassFactoryインターフェイスを取得するためのモジュールである。DllRegisterServerは、DLLのフルパスをレジストリに登録するためのモジュールである。DllUnregisterServerは、レジストリからフィルタの情報を抹消するためのモジュールである。アプリケーションからフィルタをロードする場合、アプリケーションからCOMサーバーに対しCoCreateInstanceメソッドをコールする。
具体的に、Visual C++ では、以下のように実装することでDirectShowフィルタを
アプリケーション上にロードすることができる。
アプリケーション上にロードすることができる。
IBaseFilter* pFilter = NULL;
::CoCreateInstance( フィルタのクラスID,
NULL,
CLSTX_INPROC_SERVER,
IID_IBaseFilter,
&pFilter );
図3に示すように、アプリケーション13から上記のCoCreateInstanceがコールされるとCOMサーバー14は、レジストリ15に登録されているクラスIDの中から指定されたフィルタ101のクラスIDのレジストリキーを検索する。クラスIDが検索された場合は、レジストリ15に登録されている内容からフィルタ17が含まれているDLLのパスを取得し、DLLに対してGetObjectClassを実行することでIClassFactoryインターフェイスを取得する。COMサーバーは取得したIClassFactoryインターフェイスを用いてIClassFactory::CreateInstanceメソッドをコールし、DLLからIBaseFilterインターフェイスを取得する。取得したIBaseFilterインターフェイスをアプリケーション13に返すことで、アプリケーション13は目的のフィルタ17のIBaseFilterインターフェイスを取得することができる。
::CoCreateInstance( フィルタのクラスID,
NULL,
CLSTX_INPROC_SERVER,
IID_IBaseFilter,
&pFilter );
図3に示すように、アプリケーション13から上記のCoCreateInstanceがコールされるとCOMサーバー14は、レジストリ15に登録されているクラスIDの中から指定されたフィルタ101のクラスIDのレジストリキーを検索する。クラスIDが検索された場合は、レジストリ15に登録されている内容からフィルタ17が含まれているDLLのパスを取得し、DLLに対してGetObjectClassを実行することでIClassFactoryインターフェイスを取得する。COMサーバーは取得したIClassFactoryインターフェイスを用いてIClassFactory::CreateInstanceメソッドをコールし、DLLからIBaseFilterインターフェイスを取得する。取得したIBaseFilterインターフェイスをアプリケーション13に返すことで、アプリケーション13は目的のフィルタ17のIBaseFilterインターフェイスを取得することができる。
このとき、フィルタ17の情報がレジストリ15に登録されている必要がある。フィルタ17のレジストリへの登録は、アプリケーションのインストーラ11などで行う。インストーラ11は、DirectShowフィルタ17をインストールする際に、DirectShowフィルタ17が有するDllRegisterServerをコールし、DirectShowフィルタ17がクラスIDなどの情報を定められたレジストリ15に登録する。また、アプリケーションとともにインストールしたDirectShowフィルタ17をアンインストールする場合には、アンインストーラ12は、DirectShowフィルタ17が有するDllUnregisterServerをコールすることで、DirectShowフィルタ17がレジストリ15からDirectShowフィルタ17が書き込んだ内容を消去する。
以上のようにDirectShowフィルタはCOMサーバーを介して、アプリケーションにロードされる。COMサーバーを介することで、アプリケーションは、クラスIDを知るだけで目的のDirectShowフィルタをロードすることができる。また、レジストリの登録を閲覧することで、容易に目的のDirectShowフィルタのクラスIDを知ることができる。
本発明の特徴は、
(1)本発明のアプリケーション上においては、本発明のフィルタと標準で提供されるフィルタおよび既存のフィルタとの間には通常のDirectShowフィルタと同等の互換性がある。
(1)本発明のアプリケーション上においては、本発明のフィルタと標準で提供されるフィルタおよび既存のフィルタとの間には通常のDirectShowフィルタと同等の互換性がある。
(2)本発明のアプリケーション以外のアプリケーション上では、容易に本発明のフィルタを利用することができない。
である。
である。
本発明のフィルタを含むDLLは、レジストリ登録に必要な
・DllRegisterServer
・DllUnregisterServer
の2つのAPIを外部に公開せず、DLLはレジストリ登録機能を有さない。レジストリ登録以外の点においては、通常のフィルタと同等のインターフェイスを有する。レジストリ登録機能がないためフィルタのクラスIDをレジストリに書くことがなく、COMサーバーからフィルタにアクセスすることができない。COMサーバーからアクセスできないフィルタは他のアプリケーションからCoCreateInstance関数でロードすることはできなくなる。
・DllRegisterServer
・DllUnregisterServer
の2つのAPIを外部に公開せず、DLLはレジストリ登録機能を有さない。レジストリ登録以外の点においては、通常のフィルタと同等のインターフェイスを有する。レジストリ登録機能がないためフィルタのクラスIDをレジストリに書くことがなく、COMサーバーからフィルタにアクセスすることができない。COMサーバーからアクセスできないフィルタは他のアプリケーションからCoCreateInstance関数でロードすることはできなくなる。
本発明のアプリケーションは、
・本発明のフィルタのクラスIDを事前に保有
・本発明のフィルタのDLLパス名を事前に保有
しており、COMサーバーではなく、本発明のDLLに対し、直接インターフェイスを取得することで、グラフに追加するために必要なIBaseFilterインターフェイスを取得する。
・本発明のフィルタのクラスIDを事前に保有
・本発明のフィルタのDLLパス名を事前に保有
しており、COMサーバーではなく、本発明のDLLに対し、直接インターフェイスを取得することで、グラフに追加するために必要なIBaseFilterインターフェイスを取得する。
図4に示すように、本発明のフィルタ19をインストールする際に、本発明のアプリケーション18と本発明のフィルタ19とのフォルダ位置関係が本発明のアプリケーションと本発明のフィルタ間で定めた位置関係(例えば同一フォルダ)となるようにインストーラ17でインストールする。この時、通常のフィルタに対してはレジストリ登録が行われるが、本発明のフィルタに対しては一切のレジストリ登録は行わない。
次に、本発明のアプリケーション18がグラフを作成し、図5示すように、
(1)本発明のフィルタ19が格納されているDLLをロードする
(2)DllGetObjectClassをコールし、IClassFactroyインターフェイスを取得する
(3)IClassFactroy::CreateInstanceをコールし、IBaseFilterインターフェイスを取得する
(4)取得したIBaseFilterをもって、グラフに追加する
とすることで、本発明のフィルタ19をグラフに追加する。具体的に、Visual C++ では、以下のように実装することで本発明のフィルタをグラフに追加することができる。
(1)本発明のフィルタ19が格納されているDLLをロードする
(2)DllGetObjectClassをコールし、IClassFactroyインターフェイスを取得する
(3)IClassFactroy::CreateInstanceをコールし、IBaseFilterインターフェイスを取得する
(4)取得したIBaseFilterをもって、グラフに追加する
とすることで、本発明のフィルタ19をグラフに追加する。具体的に、Visual C++ では、以下のように実装することで本発明のフィルタをグラフに追加することができる。
typedef HRESULT (WINAPI* PFUNC_GETCLASSOBJECT)(REFCLSID, REFIID, LPVOID* );
GETCLASSOBJECT pFunc = NULL;
HMODULE hModule = NULL;
IClassFactory* pIClsFac = NULL;
IBaseFilter* pFilter = NULL;
hModule = ::LoadLibrary( [フィルタのDLL名] );
pFunc = (PFUNC_GETCLASSOBJECT)::GetProcAddress( hModule, “DllGetClassObject” );
pFunc( フィルタのクラスID, IID_IClassFactory, (LPVOID*)&pIClsFac );
pIClsFac−>CreateInstance( NULL, IID_IBaseFilter, (LPVOID*)&pFilter );
pIClsFac−>Release();
また、標準で提供されるフィルタや既存のフィルタを本発明のアプリケーションが作成したグラフに追加する場合は、公開されているフィルタのクラスIDを用いてCoCreateInstanceをコールすることで、IBaseFilterを取得し、グラフに追加する。
GETCLASSOBJECT pFunc = NULL;
HMODULE hModule = NULL;
IClassFactory* pIClsFac = NULL;
IBaseFilter* pFilter = NULL;
hModule = ::LoadLibrary( [フィルタのDLL名] );
pFunc = (PFUNC_GETCLASSOBJECT)::GetProcAddress( hModule, “DllGetClassObject” );
pFunc( フィルタのクラスID, IID_IClassFactory, (LPVOID*)&pIClsFac );
pIClsFac−>CreateInstance( NULL, IID_IBaseFilter, (LPVOID*)&pFilter );
pIClsFac−>Release();
また、標準で提供されるフィルタや既存のフィルタを本発明のアプリケーションが作成したグラフに追加する場合は、公開されているフィルタのクラスIDを用いてCoCreateInstanceをコールすることで、IBaseFilterを取得し、グラフに追加する。
IBaseFilter* pFilter = NULL;
::CoCreateInstance( フィルタのクラスID,
NULL,
CLSTX_INPROC_SERVER,
IID_IBaseFilter,
&pFilter );
以上のように、
(1)レジストリ登録機能がないDirectShowフィルタ
(2)レジストリ登録機能がないDirectShowフィルタをロードするアプリケーションを用いることで、他のアプリケーションから容易に使用できないDirectShowフィルタであると同時に通常のDirectShowと同等のデータ処理機能を持つフィルタを実現することができる。
::CoCreateInstance( フィルタのクラスID,
NULL,
CLSTX_INPROC_SERVER,
IID_IBaseFilter,
&pFilter );
以上のように、
(1)レジストリ登録機能がないDirectShowフィルタ
(2)レジストリ登録機能がないDirectShowフィルタをロードするアプリケーションを用いることで、他のアプリケーションから容易に使用できないDirectShowフィルタであると同時に通常のDirectShowと同等のデータ処理機能を持つフィルタを実現することができる。
PC上で動作するデータ処理装置として使用することが出来る。
11 インストーラ
12 アンインストーラ
13 アプリケーション
14 COMサーバー
15 レジストリ
16 通常のDirectShowフィルタ
17 本発明のインストーラ
18 本発明のアプリケーション
19 本発明のフィルタ
100 グラフ
101 出力ピンのみを持つDirectShowフィルタ
102 フィルタ101の出力ピン
111 ファイルからデータを読み出すフィルタ
112 フィルタ111の出力ピン
201 入力ピンと出力ピンを持つDirectShowフィルタ
202 フィルタ201の入力ピン
203 フィルタ201の出力ピン
211 データを分離するフィルタ
212 フィルタ211の入力ピン
213 フィルタ211の出力ピン
214 フィルタ211の出力ピン
221 圧縮ビデオデータをデコードするフィルタ
222 フィルタ221の入力ピン
223 フィルタ221の出力ピン
231 圧縮オーディオデータをデコードするフィルタ
232 フィルタ231の入力ピン
233 フィルタ231の出力ピン
301 入力ピンのみを持つDirectShowフィルタ
302 フィルタ301の入力ピン
311 非圧縮ビデオデータを画面上に描画するフィルタ
312 フィルタ311の入力ピン
321 非圧縮オーディオデータをサウンドデバイスに出力するフィルタ
322 フィルタ321の入力ピン
12 アンインストーラ
13 アプリケーション
14 COMサーバー
15 レジストリ
16 通常のDirectShowフィルタ
17 本発明のインストーラ
18 本発明のアプリケーション
19 本発明のフィルタ
100 グラフ
101 出力ピンのみを持つDirectShowフィルタ
102 フィルタ101の出力ピン
111 ファイルからデータを読み出すフィルタ
112 フィルタ111の出力ピン
201 入力ピンと出力ピンを持つDirectShowフィルタ
202 フィルタ201の入力ピン
203 フィルタ201の出力ピン
211 データを分離するフィルタ
212 フィルタ211の入力ピン
213 フィルタ211の出力ピン
214 フィルタ211の出力ピン
221 圧縮ビデオデータをデコードするフィルタ
222 フィルタ221の入力ピン
223 フィルタ221の出力ピン
231 圧縮オーディオデータをデコードするフィルタ
232 フィルタ231の入力ピン
233 フィルタ231の出力ピン
301 入力ピンのみを持つDirectShowフィルタ
302 フィルタ301の入力ピン
311 非圧縮ビデオデータを画面上に描画するフィルタ
312 フィルタ311の入力ピン
321 非圧縮オーディオデータをサウンドデバイスに出力するフィルタ
322 フィルタ321の入力ピン
Claims (8)
- PC上で動作するデータ処理装置であって、外部インターフェイスとしてDllGetObjectClassのみを有することを特徴とするデータ処理装置。
- DirectShowフィルタで規定されるIClassFactoryインターフェイス、IBaseFilterインターフェイスおよび識別IDを有することを特徴とする、請求項1に記載のデータ処理装置。
- PC上で動作するデータ処理装置であって、DllGetObjectClassを介してデータ処理装置が有するIClassFactoryインターフェイスを取得し、識別IDと同一の識別IDをもってデータ処理装置のIBaseFilterインターフェイスを取得し、DirectShowフィルタとして使用することを特徴とするデータ処理装置。
- 請求項2に記載の第1のデータ処理装置と、請求項3に記載の第2のデータ処理装置を有し、前記第2のデータ処理装置によって、前記第1のデータ処理装置をDirectShowフィルタとして使用することを特徴とするデータ処理装置。
- 使用する識別IDを外部に公開しないことを特徴とする、請求項4に記載のデータ処理装置。
- PC上で動作するデータ処理方法であって、DLLをロードしてDllGetObjectClassの関数アドレスを取得する関数取得ステップと、DllGetObjectClassを呼び出してIClassFactoryインターフェイスを取得するインターフェイス取得ステップと、IClassFactoryから識別GUIDを用いてIBaseFilterインターフェイスを取得するフィルタ取得ステップとを有することを特徴とするデータ処理方法。
- 請求項6に記載のデータ処理方法を含むプログラム。
- 請求項7に記載のプログラムを記録した媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006245204A JP2008065736A (ja) | 2006-09-11 | 2006-09-11 | データ処理装置、データ処理方法、プログラムおよび記録媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006245204A JP2008065736A (ja) | 2006-09-11 | 2006-09-11 | データ処理装置、データ処理方法、プログラムおよび記録媒体 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008065736A true JP2008065736A (ja) | 2008-03-21 |
Family
ID=39288382
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006245204A Pending JP2008065736A (ja) | 2006-09-11 | 2006-09-11 | データ処理装置、データ処理方法、プログラムおよび記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2008065736A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014531079A (ja) * | 2011-10-11 | 2014-11-20 | クアルコム,インコーポレイテッド | モバイルデバイスのための動的コンテンツインストーラ |
CN111131785A (zh) * | 2019-12-30 | 2020-05-08 | 元力(天津)科技有限公司 | 基于DirectShow的MPEG-4视频传输系统 |
-
2006
- 2006-09-11 JP JP2006245204A patent/JP2008065736A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014531079A (ja) * | 2011-10-11 | 2014-11-20 | クアルコム,インコーポレイテッド | モバイルデバイスのための動的コンテンツインストーラ |
US10154300B2 (en) | 2011-10-11 | 2018-12-11 | Qualcomm Incorporated | Dynamic content installer for mobile devices |
CN111131785A (zh) * | 2019-12-30 | 2020-05-08 | 元力(天津)科技有限公司 | 基于DirectShow的MPEG-4视频传输系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7904580B2 (en) | Digital media player exposing operational state data | |
WO2018099277A1 (zh) | 视频直播方法及直播装置、存储介质 | |
US8601470B2 (en) | Symbiotic smart peripherals | |
JP5781497B2 (ja) | 拡張可能なメディア形式を持つホスト型アプリケーションプラットフォーム | |
US8965890B2 (en) | Context sensitive media and information | |
US20140053001A1 (en) | Security central processing unit management of a transcoder pipeline | |
CN101627364A (zh) | 用于标识随遵循设备分发的硬件和软件许可证的数据结构 | |
KR20080032100A (ko) | 통합 저장 보안 모델 | |
KR20080021072A (ko) | 디바이스에 저장된 컨텐트의 재생을 원격으로 제어하는시스템, 방법 및 컴퓨터 판독가능 매체 | |
US7669082B2 (en) | Fault tolerant and hang resistant media processing applications | |
KR101201188B1 (ko) | 이미지를 위한 확장 가능한 코덱 아키텍처의 제공 | |
JP2008065736A (ja) | データ処理装置、データ処理方法、プログラムおよび記録媒体 | |
US7725920B2 (en) | Media foundation media sink | |
US12072850B2 (en) | Virtual file system for dynamically providing media content | |
US20120054719A1 (en) | Apparatus, method and program | |
JP5149795B2 (ja) | ファイルフォーマット変換 | |
US20060271650A1 (en) | Framework for establishing application system | |
AU2003236379A1 (en) | Demultiplexer application programming interface | |
KR20050094729A (ko) | 콘텐츠 데이터 처리 장치 및 방법 | |
JP2007179260A (ja) | 資産管理装置及び資産管理方法 | |
Rome et al. | Multimedia on symbian OS: Inside the convergence device | |
US11003743B2 (en) | Active content playback apparatus and active content creation apparatus | |
Pawate | Developing embedded software using DaVinci & OMAP technology | |
JP2016075978A (ja) | データ記録装置、撮像装置、セキュリティリスク軽減方法、コンピュータプログラム | |
Newmarch et al. | Jack |