(57)【特許請求の範囲】
【請求項１】
主コンテンツ処理を行う主コンテンツ処理部と、
従コンテンツ処理を行う従コンテンツ処理部と、
前記主コンテンツ処理部および前記従コンテンツ処理部によって排他的に使用され、設定内容に基づいて、前記主コンテンツ処理および前記従コンテンツ処理のうち選択された処理に適合した処理を行う共用処理部と、
前記従コンテンツ処理部の前記従コンテンツ処理を開始させるとともに、開始させた前記従コンテンツ処理の動作状態を監視する監視部と、
を有し、
前記主コンテンツ処理部は、前記主コンテンツ処理部自身および前記監視部からの要求に応じて、前記共用処理部を用いた前記主コンテンツ処理と前記共用処理部を用いた前記従コンテンツ処理との排他制御に用いられる情報であるロックが解放されていることを条件に要求元にロックを取得させる管理を行うロック管理部を内部に備え、前記ロック管理部からロックを取得するとともに前記監視部を起動し、当該起動後に、外部から前記従コンテンツ処理の開始を指示されると前記ロックを解放し、
前記監視部は、前記主コンテンツ処理部によって起動された後、最初に、前記主コンテンツ処理部内部の前記ロック管理部にロック取得要求を出し、当該ロックを取得すると前記従コンテンツ処理部の前記従コンテンツ処理を開始させ、開始された前記従コンテンツ処理の動作状態の監視を開始し、
前記従コンテンツ処理部は、前記監視部によって前記従コンテンツ処理が開始されたら、前記従コンテンツ処理に適合するように前記共用処理部の前記設定内容を変更後、前記共用処理部を用いた所定の処理を実行し、
前記主コンテンツ処理部は、外部から前記従コンテンツ処理の終了を指示されると前記従コンテンツ処理部の前記従コンテンツ処理を終了させ、
前記監視部は、前記従コンテンツ処理の終了を検出すると前記ロックを解放して前記従コンテンツ処理の動作状態の監視を停止するとともに前記主コンテンツ処理部に前記従コンテンツ処理の終了を示す終了メッセージを送信し、
前記主コンテンツ処理部は、前記監視部から前記終了メッセージを受信したら、前記主コンテンツ処理に適合するように前記共用処理部の前記設定内容を変更する設定変更処理を実行するとともに前記主コンテンツ処理部内部の前記ロック管理部に対して前記ロックの取得を要求し、前記ロックを取得した後に、前記共用処理部を用いた所定の処理を実行する
コンテンツ処理装置。
【請求項２】
主コンテンツ処理を行う主コンテンツ処理部と、
従コンテンツ処理を行う従コンテンツ処理部と、
前記従コンテンツ処理部の前記従コンテンツ処理を開始させるとともに、開始させた前記従コンテンツ処理の動作状態を監視する監視部と、
を機能として備え、
前記主コンテンツ処理部および前記従コンテンツ処理部によって排他的に使用され、設定内容に基づいて、前記主コンテンツ処理および前記従コンテンツ処理のうち選択された処理に適合した処理を行う共用処理部を制御する
処理回路が行うコンテンツ処理方法であって、
前記主コンテンツ処理部が、前記主コンテンツ処理部自身および前記監視部からの要求に応じて、前記共用処理部を用いた前記主コンテンツ処理と前記共用処理部を用いた前記従コンテンツ処理との排他制御に用いられる情報であるロックが解放されていることを条件に要求元にロックを取得させる管理を行うロック管理部を内部に備え、前記ロック管理部からロックを取得するとともに前記監視部を起動し、当該起動後に、外部から前記従コンテンツ処理の開始を指示されると前記ロックを解放する第１の工程と、
前記監視部が、前記主コンテンツ処理部によって起動された後、最初に、前記主コンテンツ処理部内部の前記ロック管理部にロック取得要求を出し、当該ロックを取得すると前記従コンテンツ処理部の前記従コンテンツ処理を開始させ、開始された前記従コンテンツ処理の動作状態の監視を開始する第２の工程と、
前記従コンテンツ処理部が、前記監視部によって前記従コンテンツ処理が開始されたら、前記従コンテンツ処理に適合するように前記共用処理部の前記設定内容を変更後、前記共用処理部を用いた所定の処理を実行する第３の工程と、
前記主コンテンツ処理部が、外部から前記従コンテンツ処理の終了を指示されると前記従コンテンツ処理部の前記従コンテンツ処理を終了させる第４の工程と、
前記監視部が、前記従コンテンツ処理の終了を検出すると前記ロックを解放して前記従コンテンツ処理の動作状態の監視を停止するとともに前記主コンテンツ処理部に前記従コンテンツ処理の終了を示す終了メッセージを送信する第５の工程と、
前記主コンテンツ処理部が、前記監視部から前記終了メッセージを受信したら、前記主コンテンツ処理に適合するように前記共用処理部の前記設定内容を変更する設定変更処理を実行するとともに前記主コンテンツ処理部内部の前記ロック管理部に対して前記ロックの取得を要求し、前記ロックを取得した後に、前記共用処理部を用いた所定の処理を実行する第６の工程と
を有するコンテンツ処理方法。
【請求項３】
主コンテンツ処理を行う主コンテンツ処理部と、
従コンテンツ処理を行う従コンテンツ処理部と、
前記従コンテンツ処理部の前記従コンテンツ処理を開始させるとともに、開始させた前記従コンテンツ処理の動作状態を監視する監視部と
の機能と、
前記主コンテンツ処理部および前記従コンテンツ処理部によって排他的に使用され、設定内容に基づいて、前記主コンテンツ処理および前記従コンテンツ処理のうち選択された処理に適合した処理を行う共用処理部を制御する
機能とを、
処理回路に実現させるためのプログラムであって、
前記主コンテンツ処理部が、前記主コンテンツ処理部自身および前記監視部からの要求に応じて、前記共用処理部を用いた前記主コンテンツ処理と前記共用処理部を用いた前記従コンテンツ処理との排他制御に用いられる情報であるロックが解放されていることを条件に要求元にロックを取得させる管理を行うロック管理部を内部に備え、前記ロック管理部からロックを取得するとともに前記監視部を起動し、当該起動後に、外部から前記従コンテンツ処理の開始を指示されると前記ロックを解放する第１の手順と、
前記監視部が、前記主コンテンツ処理部によって起動された後、最初に、前記主コンテンツ処理部内部の前記ロック管理部にロック取得要求を出し、当該ロックを取得すると前記従コンテンツ処理部の前記従コンテンツ処理を開始させ、開始された前記従コンテンツ処理の動作状態の監視を開始する第２の手順と、
前記従コンテンツ処理部が、前記監視部によって前記従コンテンツ処理が開始されたら、前記従コンテンツ処理に適合するように前記共用処理部の前記設定内容を変更後、前記共用処理部を用いた所定の処理を実行する第３の手順と、
前記主コンテンツ処理部が、外部から前記従コンテンツ処理の終了を指示されると前記従コンテンツ処理部の前記従コンテンツ処理を終了させる第４の手順と、
前記監視部が、前記従コンテンツ処理の終了を検出すると前記ロックを解放して前記従コンテンツ処理の動作状態の監視を停止するとともに前記主コンテンツ処理部に前記従コンテンツ処理の終了を示す終了メッセージを送信する第５の手順と、
前記主コンテンツ処理部が、前記監視部から前記終了メッセージを受信したら、前記主コンテンツ処理に適合するように前記共用処理部の前記設定内容を変更する設定変更処理を実行するとともに前記主コンテンツ処理部内部の前記ロック管理部に対して前記ロックの取得を要求し、前記ロックを取得した後に、前記共用処理部を用いた所定の処理を実行する第６の手順と
を前記処理回路に実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、主コンテンツ処理と従コンテンツ処理とを起動して実行するコンテンツ処理装置、その方法およびそのプログラムに関する。
【背景技術】
【０００２】
近年、一般家庭内にて、テレビやＶＴＲ(Video Tape Recorder)、ＨＤＤ(Hard
Disk Drive)、ＤＶＲ(Digital Video Recorder)といった画像録画装置を複数保有し、各々を有線ないし無線ＬＡＮ（ローカルエリアネットワーク）インターフェースやＩＥＥＥ１３９４規格のシリアルインターフェースにより接続し、接続された装置同士の操作を連動させるシステムがある。このようなシステムでは、相互接続された装置間の限定された機能の制御情報交換が可能である。加えて、ＤＬＮＡ（Digital  Living  Network  Alliance）等の仕様に基づいてネットワーク上でコンテンツ共有できる機器もあり、サーバ装置内のコンテンツをネットワークで接続された再生装置で視聴するといった楽しみ方をするユーザも増えてきている。
【０００３】
テレビに代表されるＡＶクライアント装置が、ネットワークＨＤＤやＨＤＤレコーダといったＡＶサーバ装置とネットワークによって接続される環境において、上記ＡＶサーバ装置に格納してあるコンテンツをＡＶクライアント装置で視聴するケースが増えている。
これらの機能のうち根幹機能である動画デコーダおよび音声デコーダは、ハードウェアを搭載して実現し、その制御をソフトウェアにて実現している。
ここで、テレビ放送再生とネットワークからのストリーミング再生とは、必要とされるハードウェア機能の基本的な部分は同じであるが、その制御方法が異なる。この場合に、複数のハードウェア機能を個別に搭載すれば、その機能実現が容易であるが、商品コストの上昇に繋がる。
【０００４】
そこで、上述したテレビ放送再生用ハードウェアとストリーミング再生用ハードウェアとを共用化し、その制御方法をソフトウェアだけで実現しようという動きも出てきている。
しかし、ハードウェア機能の共用化にあたり、その機能実現のためのアプリケーション機能の管理、制御において、副機能であるストリーミング再生機能の起動、正常終了、異常終了の状態監視、並びに異常終了によるアプリケーションのデッドロック検出と復帰処理を行う必要がある。
この解決方法として、特開２００５−７８１２２号に開示された「ロック状態検出装置およびロック状態検出方法ならびにそのプログラム」においては、既に起動した監視対象のアプリケーションプロセスに対して、一定周期毎に通信を行いその応答内容、応答の有無により、プロセスの異常検出、並びにロック状態の判定を行い、該異常検出時には、強制終了を行う方法、装置が提案されている。
【０００５】
また、特開２００２−３４２０９５号に開示された「アプリケーションの異常終了検出・復帰方法」においては、システム稼動状態監視部により、起動されたアプリケーションの状態を、前記起動されたアプリケーションから所定時間毎に受信して、起動状態記録を行う。また、前記システム稼動状態監視部は、稼動アプリケーションの異常を検出すると、直ちに、該起動されたアプリケーションを強制終了させ、該当するアプリケーションに前記記録状態を基に、再起動したアプリケーションの状態設定を戻す。
【０００６】
【特許文献１】特開２００２−３４２０９５号公報
【特許文献２】特開２００５−０７８１２２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ところで、上述した先行技術は、監視するアプリケーション（監視プロセス）は、システム起動時に予め起動されており、その運用状態を監視を行うものであるが、監視するアプリケーションがない場合でも、停止することなく、常に一定周期での監視動作を行っている。そんため、監視プロセスによりハードウェアリソースが常に使用されおり、ハードウェア負荷が大きいという問題がある。
【０００８】
また、上述した特開２００２−３４２０９５号および特開２００５−０７８１２２号においては、起動する副アプリケーションは、それぞれが単独で動作可能な上、システムにおける共有リソースのデッドロックは、異常状態を引き起こした前記副アプリケーションを終了させることで、主アプリケーションの機能復帰が可能であるシステムに関するものである。例えば、ネットワークのメールサーバやバッチ処理を行うサーバ装置である。
ところが、本方法では、例えば、共有リソースを副アプリケーションが使用するにあたり、その設定変更を行う場合に異常が検出され、副アプリケーションの起動ができない場合がある。また、副アプリケーションでの異常状態での終了によっては、正常終了時の場合と共通リソースの再設定方法が異なり、それぞれに対応したプログラムモジュールを構築する必要がある。そのため、プログラムコード数が多くなり、開発負担が大きいという問題があった。
【０００９】
また、上述した従来のシステムでは、主アプリケーションと副アプリケーション、あるいは監視プロセスと副アプリケーションの間でアプリケーションレベルでのメッセージ通信を行い、異常検出を行っている。そのため、通常、副アプリケーションにおいて異常がある場合には、該通信ができないケースもある。このような場合に、タイマを用いた応答時間制限により復帰をさせてことも考えられる。しかしながら、タイマ制御の処理では、応答時間制限値の設定がアプリケーションにより異なり、応答時間が最長のアプリケーションに合わせる必要があり、応答時間が長期化してしまうという問題がある。また、タイマー制御処理によるタイムアウト検出は、ハードウェアリースの負担が大きい。
【００１０】
本発明はかかる事情に鑑みてなされたものであり、主コンテンツ処理と従コンテンツ処理とがある場合に、従コンテンツ処理を監視する監視処理による処理負荷を軽減できるコンテンツ処理装置、その方法およびそのプログラムを提供することを目的とする。
また、本発明は、従コンテンツ処理が正常終了および異常終了した場合に、主コンテンツ処理および従コンテンツ処理で共用される処理手段の設定を変更するための処理量を小さくできるコンテンツ処理装置を提供することを目的とする。
また、本発明は、従コンテンツ処理の終了を早いタイミングで特定して処理時間を短縮できるコンテンツ処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１１】
第１の観点の発明のコンテンツ処理装置は、主コンテンツ処理を行う主コンテンツ処理部と、従コンテンツ処理を行う従コンテンツ処理部と、前記主コンテンツ処理部および前記従コンテンツ処理部によって排他的に使用され、設定内容に基づいて、前記主コンテンツ処理および前記従コンテンツ処理のうち選択された処理に適合した処理を行う共用処理部と、前記従コンテンツ処理部の前記従コンテンツ処理を開始させるとともに、開始させた前記従コンテンツ処理の動作状態を監視する監視部と、を有し、前記主コンテンツ処理部は、前記主コンテンツ処理部自身および前記監視部からの要求に応じて、前記共用処理部を用いた前記主コンテンツ処理と前記共用処理部を用いた前記従コンテンツ処理との排他制御に用いられる情報であるロックが解放されていることを条件に要求元にロックを取得させる管理を行うロック管理部を内部に備え、前記ロック管理部からロックを取得するとともに前記監視部を起動し、当該起動後に、外部から前記従コンテンツ処理の開始を指示されると前記ロックを解放し、前記監視部は、前記主コンテンツ処理部によって起動された後、最初に、前記主コンテンツ処理部内部の前記ロック管理部にロック取得要求を出し、当該ロックを取得すると前記従コンテンツ処理部の前記従コンテンツ処理を開始させ、開始された前記従コンテンツ処理の動作状態の監視を開始し、前記従コンテンツ処理部は、前記監視部によって前記従コンテンツ処理が開始されたら、前記従コンテンツ処理に適合するように前記共用処理部の前記設定内容を変更後、前記共用処理部を用いた所定の処理を実行し、前記主コンテンツ処理部は、外部から前記従コンテンツ処理の終了を指示されると前記従コンテンツ処理部の前記従コンテンツ処理を終了させ、前記監視部は、前記従コンテンツ処理の終了を検出すると前記ロックを解放して前記従コンテンツ処理の動作状態の監視を停止するとともに前記主コンテンツ処理部に前記従コンテンツ処理の終了を示す終了メッセージを送信し、前記主コンテンツ処理部は、前記監視部から前記終了メッセージを受信したら、前記主コンテンツ処理に適合するように前記共用処理部の前記設定内容を変更する設定変更処理を実行するとともに前記主コンテンツ処理部内部の前記ロック管理部に対して前記ロックの取得を要求し、前記ロックを取得した後に、前記共用処理部を用いた所定の処理を実行する。
【００１２】
本発明の第２の観点の発明のコンテンツ処理方法は、主コンテンツ処理を行う主コンテンツ処理部と、従コンテンツ処理を行う従コンテンツ処理部と、前記従コンテンツ処理部の前記従コンテンツ処理を開始させるとともに、開始させた前記従コンテンツ処理の動作状態を監視する監視部と、を機能として備え、前記主コンテンツ処理部および前記従コンテンツ処理部によって排他的に使用され、設定内容に基づいて、前記主コンテンツ処理および前記従コンテンツ処理のうち選択された処理に適合した処理を行う共用処理部を制御する処理回路が行うコンテンツ処理方法であって、前記主コンテンツ処理部が、前記主コンテンツ処理部自身および前記監視部からの要求に応じて、前記共用処理部を用いた前記主コンテンツ処理と前記共用処理部を用いた前記従コンテンツ処理との排他制御に用いられる情報であるロックが解放されていることを条件に要求元にロックを取得させる管理を行うロック管理部を内部に備え、前記ロック管理部からロックを取得するとともに前記監視部を起動し、当該起動後に、外部から前記従コンテンツ処理の開始を指示されると前記ロックを解放する第１の工程と、前記監視部が、前記主コンテンツ処理部によって起動された後、最初に、前記主コンテンツ処理部内部の前記ロック管理部にロック取得要求を出し、当該ロックを取得すると前記従コンテンツ処理部の前記従コンテンツ処理を開始させ、開始された前記従コンテンツ処理の動作状態の監視を開始する第２の工程と、前記従コンテンツ処理部が、前記監視部によって前記従コンテンツ処理が開始されたら、前記従コンテンツ処理に適合するように前記共用処理部の前記設定内容を変更後、前記共用処理部を用いた所定の処理を実行する第３の工程と、前記主コンテンツ処理部が、外部から前記従コンテンツ処理の終了を指示されると前記従コンテンツ処理部の前記従コンテンツ処理を終了させる第４の工程と、前記監視部が、前記従コンテンツ処理の終了を検出すると前記ロックを解放して前記従コンテンツ処理の動作状態の監視を停止するとともに前記主コンテンツ処理部に前記従コンテンツ処理の終了を示す終了メッセージを送信する第５の工程と、前記主コンテンツ処理部が、前記監視部から前記終了メッセージを受信したら、前記主コンテンツ処理に適合するように前記共用処理部の前記設定内容を変更する設定変更処理を実行するとともに前記主コンテンツ処理部内部の前記ロック管理部に対して前記ロックの取得を要求し、前記ロックを取得した後に、前記共用処理部を用いた所定の処理を実行する第６の工程とを有する。
【００１３】
第３の観点の発明のプログラムは、主コンテンツ処理を行う主コンテンツ処理部と、従コンテンツ処理を行う従コンテンツ処理部と、前記従コンテンツ処理部の前記従コンテンツ処理を開始させるとともに、開始させた前記従コンテンツ処理の動作状態を監視する監視部との機能と、前記主コンテンツ処理部および前記従コンテンツ処理部によって排他的に使用され、設定内容に基づいて、前記主コンテンツ処理および前記従コンテンツ処理のうち選択された処理に適合した処理を行う共用処理部を制御する機能とを、処理回路に実行させるためのプログラムであって、前記主コンテンツ処理部が、前記主コンテンツ処理部自身および前記監視部からの要求に応じて、前記共用処理部を用いた前記主コンテンツ処理と前記共用処理部を用いた前記従コンテンツ処理部との排他制御に用いられる情報であるロックが解放されていることを条件に要求元にロックを取得させる管理を行うロック管理部を内部に備え、前記ロック管理部からロックを取得するとともに前記監視部を起動し、当該起動後に、外部から前記従コンテンツ処理の開始を指示されると前記ロックを解放する第１の手順と、前記監視部が、前記主コンテンツ処理部によって起動された後、最初に、前記主コンテンツ処理部内部の前記ロック管理部にロック取得要求を出し、当該ロックを取得すると前記従コンテンツ処理部の前記従コンテンツ処理を開始させ、開始された前記従コンテンツ処理の動作状態の監視を開始する第２の手順と、前記従コンテンツ処理部が、前記監視部によって前記従コンテンツ処理が開始されたら、前記従コンテンツ処理に適合するように前記共用処理部の前記設定内容を変更後、前記共用処理部を用いた所定の処理を実行する第３の手順と、前記主コンテンツ処理部が、外部から前記従コンテンツ処理の終了を指示されると前記従コンテンツ処理部の前記従コンテンツ処理を終了させる第４の手順と、前記監視部が、前記従コンテンツ処理の終了を検出すると前記ロックを解放して前記従コンテンツ処理の動作状態の監視を停止するとともに前記主コンテンツ処理部に前記従コンテンツ処理の終了を示す終了メッセージを送信する第５の手順と、前記主コンテンツ処理部が、前記監視部から前記終了メッセージを受信したら、前記主コンテンツ処理に適合するように前記共用処理部の前記設定内容を変更する設定変更処理を実行するとともに前記主コンテンツ処理部内部の前記ロック管理部に対して前記ロックの取得を要求し、前記ロックを取得した後に、前記共用処理部を用いた所定の処理を実行する第６の手順とを前記処理回路に実行させる。
【発明の効果】
【００１７】
本発明によれば、主コンテンツ処理と従コンテンツ処理とがある場合に、従コンテンツ処理を監視する監視処理による処理負荷を軽減できるコンテンツ処理装置、その方法およびそのプログラムを提供することができる。
また、本発明によれば、従コンテンツ処理が正常終了および異常終了した場合に、主コンテンツ処理および従コンテンツ処理で共用される処理手段の設定を変更するための処理量を少なくできるコンテンツ処理装置を提供することができる。
また、本発明によれば、従コンテンツ処理の終了を早いタイミングで特定して処理時間を短縮できるコンテンツ処理装置を提供することができる。
【発明を実施するための最良の形態】
【００１８】
以下、本発明の実施形態に係るテレビ受像機１について説明する。
図１は、本発明の実施形態に係るテレビ受像機１の構成を説明するための図である。
図１に示すように、テレビ受像機１は、例えば、ハードウェアとして、フロントエンド回路３０、メイン処理回路３２および共通リソース部３４を有する。
なお、図１には、テレビ受像機１が備えるハードウェアおよび機能のうち、本発明の関連性が高いもののみを示している。
【００１９】
本実施形態の構成要素と、本発明の構成用との対応関係の一例は以下のようになる。
ＤＢＳアプリケーションプロセス５２が本発明の主コンテンツ処理手段の一例であり、ＤＬＮＡプロセス５６が本発明の従コンテンツ処理手段の一例であり、監視プロセス５４が本発明の監視手段の一例である。
また、共通リソース部３４が本発明の処理手段の一例であり、起動ロック部６７が本発明のロック管理手段の一例である。
また、状態保存部６８が保持する状態遷移データが、本発明の動作状態データの一例である。
【００２０】
先ず、テレビ受像機１の概要を説明する。
テレビ受像機１では、ＩＦアプリケーション部６６は、起動ロック部６７から起動ロックを取得した後に、監視プロセス５４を起動し、ＤＬＮＡプロセス５６の開始が可能な状態になると上記起動ロックを解放する。
その後、監視プロセス５４は、起動ロック部６７に起動ロック取得要求を出し、起動ロックが解放されると、当該起動ロックを取得した後に、ＤＬＮＡプロセス５６を起動する。そして、監視プロセス５４は、ＤＬＮＡプロセス５６の動作を監視する。
次に、ＤＬＮＡプロセス５６の動作が終了すると、監視プロセス５４は、終了メッセージをＩＦアプリケーション部６６に出力して、起動ロックを解放する。
【００２１】
ＩＦアプリケーション部６６は、上記終了メッセージを受けると、共通リソース部３４の設定内容を、ＤＢＳ(Digital Broadcast Satellite)アプリケーションプロセス５２の処理に適合するように変更し、テレビアプリケーション処理部６２によるテレビアプリケーション処理を開始する。
また、ＩＦアプリケーション部６６は、起動ロック部６７から起動ロックを取得する。
監視プロセス５４は、起動ロック取得待ち状態になり、監視処理を停止する。
テレビ受像機１では、起動ロック部６７の起動ロックの取得および解放により、ＤＬＮＡプロセス５６の動作中にのみ、監視プロセス５４による監視動作を実行させ、それ以外は停止させる。これにより、監視プロセス５４によるメイン処理回路３２の使用時間を削減で、省電力化を図れる。
【００２２】
また、監視プロセス５４は、ＤＬＮＡプロセス５６の動作を監視して、状態保存部６８に記憶されたＤＬＮＡプロセス５６等の動作状態を示す状態遷移データを更新する。ＤＢＳアプリケーションプロセス５２のＩＦアプリケーション部６６は、上記状態遷移データに基づいて、ＤＬＮＡプロセス５６が正常終了した場合と異常終了した場合とで同じシーケンスで共通リソース部３４の設定内容を更新する。当該更新により、共通リソース部３４の設定内容がテレビアプリケーション処理部６２の処理に適合した内容に更新される。
【００２３】
また、テレビ受像機１では、システム機能によるassert処理をＤＬＮＡプロセス５６に行わせることで、共通リソース部３４にデットロック等が生じた場合にプロセスを自動終了させてプロセス終了通知を監視プロセス５４に出力する。また、ＩＦアプリケーション部６６が、正常時においてもＤＬＮＡプロセス５６をシステムコールにより強制終了する。そのため、従来のようにＤＬＮＡプロセスの応答時間の相違による処理時間の長期化を回避できる。
【００２４】
以下、テレビ受像機１の構成要素について詳細に説明する。
［フロントエンド回路３０］
フロントエンド回路３０は、アンテナ１０で受信したデジタル放送信号にフロントエンド処理を施す。
当該デジタル放送信号は、映像データ、音声データに加えて、番組情報等の付加データを多重化した信号であり、例えば、地上デジタルテレビ放送に利用されるＭＰＥＧ２のＴＳ（Transport Stream）により実現される信号である。
フロントエンド回路３０は、受信した放送波に復調等の処理を行ないＴＳを生成する。
そして、フロントエンド回路３０は、当該ＴＳを、オーディオストリーム（ＡＳ）、ビデオストリーム（ＶＳ）、番組情報等を含むセクションデータ（Ｓ）に分離してメイン処理回路３２に出力する。
【００２５】
［メイン処理回路３２］
図１に示すように、メイン処理回路３２は、例えば、ＤＢＳアプリケーションプロセス５２、監視プロセス５４、ＤＬＮＡプロセス５６、コマンドＡ通信部７０、コマンドＢ通信部７２、システム通信部７４をプロセスとして適宜起動する。
メイン処理回路３２の上記プロセスは、例えば、メイン処理回路３２がプログラムを実行することで実現される。
図１に示す各プロセスは、ＬＩＮＵＸ等のオペレーティング・システム上で動作する。
図１において、コマンドＢ通信部７２およびシステム通信部７４の各々は、オペレーティング・システム依存のシステムコールによる通信を行う。
また、相互実行通信部６４およびコマンドＡ通信部７０の各々は、通信先を呼び出し、相手側からの発信を求めるｃａｌｌ  ｂａｃｋ方式の通信を行う。
【００２６】
ＤＢＳアプリケーションプロセス５２は、テレビ放送用受信ビットストリームの再生機能を有するプロセスである。
ＤＢＳアプリケーションプロセス５２は、テレビアプリケーション処理部６２、相互実行通信部６４、ＩＦアプリケーション部６６および状態保存部６８を有する。
テレビアプリケーション処理部６２は、例えば、フロントエンド回路３０から入力したストリームを共通リソース部３４に出力してデコードさせてディスプレイ等に出力する機能を有する。
【００２７】
相互実行通信部６４は、テレビアプリケーション処理部６２とＩＦアプリケーション部６６との間で関数呼び出しを行う機能を有する。
ＩＦアプリケーション部６６は、テレビアプリケーション処理部６２からの要求に応じてシステム通信部７４を介してＤＬＮＡプロセス５６を起動／終了する。
また、ＩＦアプリケーション部６６は、状態保存部６８が記憶された状態遷移データを更新する。
また、ＩＦアプリケーション部６６は、テレビアプリケーション処理部６２からの停止要求に応じて、システムコールにより、ＤＬＮＡプロセス５６を強制終了する。
また、ＩＦアプリケーション部６６は、ＤＬＮＡプロセス５６からテレビアプリケーション処理部６２にプロセスを変更する際に、共通リソース部３４の設定内容をＤＢＳアプリケーションプロセス５２に適合するように変更する。
ＩＦアプリケーション部６６の動作例については後に詳細に説明する。
【００２８】
起動ロック部６７は、ＩＦアプリケーション部６６および監視プロセス５４から起動ロック取得要求を受けると、起動ロックが解放されている場合に要求元に起動ロックを取得させる。
一方、起動ロック部６７は、起動ロック取得要求を受けたときに、起動ロックが解放されていない場合には、当該要求元を、システムコールの応答待ち状態にする。その後、起動ロック部６７は、起動ロックが解放されると、応答待ちの要求元に起動ロックを取得させる。
【００２９】
状態保存部６８は、状態遷移データを記憶し、ＩＦアプリケーション部６６および監視プロセス５４から上記状態遷移データが更新（設定）および参照される。
状態遷移データは、現在の設定状態に応じて次の状態遷移が決定されるステートマシン情報である。
なお、状態保存部６８の記憶機能自体は、例えば、メイン処理回路３２内のメモリで実現される。
また、状態保存部６８への参照および更新のアクセス処理は、複数のプロセス、スレッド間における排他アクセスを行うような制御機能を有しており、本実施形態では、Ｍｕｔｅｘ(Mutal Exclusion:相互排他ロック)取得によるアクセス方法を使用しているが、排他的なアクセスを実現できる方法ならば特に限定されない。
【００３０】
図２は、状態保存部６８が記憶する状態遷移データが示す状態を説明するための図である。
状態遷移データは、後述するように、監視プロセス５４およびＩＦアプリケーション部６６によって、それまでの状態およびＤＬＮＡプロセス５６等からの通知に基づいて構成される。
【００３１】
図２に示すように、状態遷移が示す状態には、例えば、「ＣＴＣ＿ＤＬＮＡ＿ＩＮＩＴ」，「ＣＴＣ＿ＣＴＣ＿ＳＴＡＲＴ」，「ＣＴＣ＿ＤＬＮＡ＿ＳＴＡＲＴ」，「ＣＴＣ＿ＣＴＣ＿ＳＴＯＰ」，「ＣＴＣ＿ＤＬＮＡ＿ＳＴＯＰ」，「ＣＴＣ＿ＤＬＮＡ＿ＥＲＲＯＲ」の６つがある。
【００３２】
状態「ＣＴＣ＿ＤＬＮＡ＿ＩＮＩＴ」は、初期状態を示している。ＩＦアプリケーション部６６が、テレビアプリケーション処理部６２からＤＬＮＡプロセス５６の起動開始要求を受け付ける前および直後は、状態「ＣＴＣ＿ＤＬＮＡ＿ＩＮＩＴ」になっている。
また、状態「ＣＴＣ＿ＤＬＮＡ＿ＳＴＯＰ」において、テレビアプリケーション処理部６２のテレビ機能への復帰のために共通リソース部３４のＨＷ（ハードウェア）設定が終了した場合に状態「ＣＴＣ＿ＤＬＮＡ＿ＩＮＩＴ」に切り換えられる。
【００３３】
状態「ＣＴＣ＿ＣＴＣ＿ＳＴＡＲＴ」は、状態「ＣＴＣ＿ＤＬＮＡ＿ＩＮＩＴ」において、ＤＬＮＡプロセス５６の起動開始要求をＩＦアプリケーション部６６が受け付けて、テレビアプリケーション処理部６２の処理の終了等の一連の処理を経た後の状態を示す。状態「ＣＴＣ＿ＣＴＣ＿ＳＴＡＲＴ」は、ＤＬＮＡプロセス５６の起動受付完了を示す。
【００３４】
状態「ＣＴＣ＿ＤＬＮＡ＿ＳＴＡＲＴ」は、状態「ＣＴＣ＿ＣＴＣ＿ＳＴＡＲＴ」において、監視プロセス５４がＤＬＮＡプロセス５６を起動した後に切り換えられる状態である。
状態「ＣＴＣ＿ＣＴＣ＿ＳＴＯＰ」は、状態「ＣＴＣ＿ＤＬＮＡ＿ＳＴＡＲＴ」においてＩＦアプリケーション部６６がＤＬＮＡプロセス５６の停止要求を受けた場合に切り換えられる状態である。
【００３５】
状態「ＣＴＣ＿ＤＬＮＡ＿ＳＴＯＰ」は、状態「ＣＴＣ＿ＣＴＣ＿ＳＴＯＰ」において監視プロセス５４がＤＬＮＡプロセス５６からプロセス終了通知を受けた場合に切り換えられる状態である。
状態「ＣＴＣ＿ＤＬＮＡ＿ＥＲＲＯＲ」は、状態「ＣＴＣ＿ＣＴＣ＿ＳＴＡＲＴ」においてＤＬＮＡプロセス５６の起動に失敗した場合、状態「ＣＴＣ＿ＤＬＮＡ＿ＳＴＡＲＴ」においてＤＬＮＡプロセス５６が終了した場合、状態「ＣＴＣ＿ＣＴＣ＿ＳＴＯＰ」においてＤＬＮＡプロセス５６の終了以外の状態になった場合等に切り換えられる状態である。
【００３６】
監視プロセス５４は、例えば、テレビアプリケーション処理部６２の起動と同時に起動されてもよいし、テレビアプリケーション処理部６２の起動後にテレビアプリケーション処理部６２によって起動されてもよい。
監視プロセス５４は、テレビアプリケーション処理部６２からの開始要求に応じてＤＬＮＡプロセス５６を起動する。
監視プロセス５４は、ＤＬＮＡプロセス５６の動作を監視して、状態保存部６８に記憶されたＤＬＮＡプロセス５６等の動作状態を示す状態遷移データを更新する。
監視プロセス５４は、ＤＬＮＡプロセス５６からのプロセス終了通知と、状態遷移データが示す状態とに基づいて、ＤＬＮＡプロセス５６が正常終了および異常終了のいずれで終了したかを判断し、それに基づいて状態遷移データを更新する。
監視プロセス５４の動作例については後に詳細に説明する。
【００３７】
ＤＬＮＡプロセス５６は、ネットワークからのストリーミングビットデータの再生機能を有するストリーミング再生アプリケーションプロセスである。
コマンドＡ通信部７０は、ＩＦアプリケーション部６６と監視プロセス５４との間のコマンド通信を行う。
コマンドＢ通信部７２は、監視プロセス５４とＤＬＮＡプロセス５６との間のコマンド通信を行う。
システム通信部７４は、ＩＦアプリケーション部６６からＤＬＮＡプロセス５６への通信で、ＬＩＮＵＸ上のシステム関数呼び出しを行う。
【００３８】
ＤＬＮＡプロセス５６は、例えば、監視プロセス５４によって起動され、テレビ受像機１に対してホームネットワーク等を介して接続されているサーバ４０から受信したコンテンツを、共通リソース部３４の機能を用いてデコードしてストリーム再生等するプロセスである。
ＤＬＮＡプロセス５６は、システム機能によるassert処理を行い、デットロック等が生じた場合にプロセスを自動終了させてプロセス終了通知を監視プロセス５４に出力する。
サーバ４０は、デジタル・コンテンツの保存や配信といった機能を備えたＤＭＳ(Digital  Media  Server)であり、テレビ受像機１が当該コンテンツの再生を行うＤＭＰ(Digital  Media  Player）となる。
ホームネットワークは、有線ＬＡＮや無線ＬＡＮ、ＩＰｖ４、ＵＰｎＰ（universal
plug and play）などのネットワークである。
サーバ４０としては、パーソナルコンピュータやセットトップ・ボックス、デジタル・カメラやビデオ・カメラ、多機能な携帯電話機などがある。
【００３９】
［共通リソース部３４］
共通リソース部３４は、フロントエンド回路３０から入力したテレビ放送用受信ビットストリームのデコード処理を行うデコーダ機能及び、画像表示処理を行う表示部のハードウェア機能を有する。デコーダ機能の設定としては、例えば、ＭＰＥＧ-２  ＡＡＣ（Advanced Audio Coding）等の処理の設定がある。ＭＰＥＧ−４，Ｈ２６４．ＡＶＣ等の処理の設定がある。
共通リソース部３４は、ＤＢＳアプリケーションプロセス５２およびＤＬＮＡプロセス５６から、排他的に使用される。
共通リソース部３４は、テレビ放送用受信ビットストリーム再生時と、ネットワークからのストリーミングビットデータ再生時とで異なる設定がなされる。
共通リソース部３４自身は、内部エラーが発生した場合のセルフリセット機能は備えていない。
【００４０】
テレビ受像機１では、共通リソース部３４が、ＤＬＮＡプロセス５６の終了状態によっては、更なる設定が必要であり、その判定も必要となる。
そこで、テレビ受像機１は、ＤＬＮＡプロセス５６の起動に至る経過状態を示す状態遷移データを状態保存部６８に記憶（設定）する。
テレビ受像機１では、ＤＬＮＡプロセス５６が終了した際に、状態保存部６８に記憶された状態遷移データを基に状態判定を行い、テレビ機能へ復帰する再設定方法を分岐処理させている。
【００４１】
本実施形態では、ＤＬＮＡプロセス５６の起動時においては、ストリーミングビットデータ再生用のハードウェア設定を行い、その際に発生した異常終了検出を行い、ＤＬＮＡプロセス５６の未起動時の終了処理を行う。
また、本実施形態では、ストリーミング再生アプリケーションの終了を行う際には、正常終了と異常終了検出のどちらの場合でも、前記テレビ放送用受信ビットストリーム再生設定を、全く同じシーケンスで行い、テレビアプリケーション処理部６２によるテレビ機能プロセスへの復帰に対して影響しない。
【００４２】
以下、図１に示すＩＦアプリケーション部６６の動作例を説明する。
図４は、図１に示すＩＦアプリケーション部６６の動作例を説明するためのフローチャートである。
ＩＦアプリケーション部６６は、メイン処理回路３２のＵＩ(User
Interface)入力と、ＤＬＮＡプロセス５６の終了メッセージ入力との双方に共通に規定したテレビアプリケーション機能要求の受付処理を行う（ステップＳＴ１１）。ここで、ＵＩ入力は、例えば、図示しない操作部のユーザによる操作入力である。
次に、ＩＦアプリケーション部６６は、ＵＩ入力受付であると判断するとステップＳＴ１３に進み、そうでない場合にはステップＳＴ２３に進む。
【００４３】
ＩＦアプリケーション部６６は、ＵＩ入力受付待ちを行い（ステップＳＴ１３）、ＵＩ入力を受けるとステップＳＴ１４に進む。
ＩＦアプリケーション部６６は、受付したＵＩ入力の種別を判定し（ステップＳＴ１４）、ＤＬＮＡプロセス５６の開始要求であれば、開始受付を行う（ステップＳＴ１５）。
ＩＦアプリケーション部６６は、開始受付可能であると判断すると（ステップＳＴ１６）、状態保存部６８に記憶する状態遷移データを状態「ＣＴＣ＿ＣＴＣ＿ＳＴＡＲＴ」に更新（設定）する（ステップＳＴ１７）。
そして、ＩＦアプリケーション部６６は、起動ロック部６７から起動ロックを取得する（ステップＳＴ１８）。
【００４４】
ＩＦアプリケーション部６６は、受付したＵＩ入力の種別を判定し（ステップＳＴ１４）、ＤＬＮＡプロセス５６の終了要求であれば、終了受付を行う（ステップＳＴ１９）。
ＩＦアプリケーション部６６は、終了受付可能であると判断すると（ステップＳＴ２０）、状態保存部６８に記憶する状態遷移データを状態「ＣＴＣ＿ＣＴＣ＿ＳＴＯＰ」に更新する（ステップＳＴ２１）。
ＩＦアプリケーション部６６は、プロセス停止コマンド（システムコールｋｉｌｌ）でＤＬＮＡプロセス５６のプロセスを終了させる（ステップＳＴ２２）。
【００４５】
ＩＦアプリケーション部６６は、メッセージ受付であると判断すると（ステップＳＴ２３）、終了メッセージ待ち状態になる（ステップＳＴ２４）。
ＩＦアプリケーション部６６は、受け付けたメッセージの種別を判断し（ステップＳＴ２５）、異常を示す場合に、エラー表示処理を行う（ステップＳＴ２６）。
一方、ＩＦアプリケーション部６６は、メッセージが正常を示す場合に、共通リソース部３４のＨＷ設定を、テレビアプリケーション処理部６２に適合した設定に切り換える（ステップＳＴ２７）。
【００４６】
次に、ＩＦアプリケーション部６６は、状態保存部６８に記憶する状態遷移データを状態「ＣＴＣ＿ＤＬＮＡ＿ＩＮＩＴ」に更新する（ステップＳＴ２８）。
ＩＦアプリケーション部６６は、起動ロック部６７から起動ロックを取得する（ステップＳＴ２９）。
そして、ＩＦアプリケーション部６６は、共通リソース部３４を利用したテレビ機能にテレビアプリケーション処理部６２を復帰させる（ステップＳＴ３０）。
【００４７】
以下、図１に示す監視プロセス５４の動作例を説明する。
図５は、図１に示す監視プロセス５４の動作例を説明するためのフローチャートである。
監視プロセス５４は、起動ロック部６７から起動ロックを取得する（ステップＳＴ４０）。
監視プロセス５４は、例えば、テレビアプリケーション処理部６２からＤＬＮＡプロセス５６の起動要求を受けて、ＤＬＮＡプロセス５６を起動可能な状態になったか否かを判断する（ステップＳＴ４１）。
監視プロセス５４は、起動可能な状態であると判断すると、ＤＬＮＡプロセス５６を起動する（ステップＳＴ４２）。当該起動は、例えば、ＩＦアプリケーション部６６が、状態保存部６８の状態遷移データを状態「ＣＴＣ＿ＣＴＣ＿ＳＴＡＲＴ」に更新し、それを監視プロセス５４が検出して実行される。
【００４８】
監視プロセス５４は、ＤＬＮＡプロセス５６の終了待ち状態となる（ステップＳＴ４３）。監視プロセス５４は、ＤＬＮＡプロセス５６からのシステムコールによる終了通知を基に、ＤＬＮＡプロセス５６のプロセス終了を検出する。
監視プロセス５４は、ＤＬＮＡプロセス５６が正常終了したと判断すると（ステップＳＴ４４）、正常終了処理を行う（ステップＳＴ４５）。監視プロセス５４は、正常終了処理において、状態遷移データを状態「ＣＴＣ＿ＤＬＮＡ＿ＳＴＯＰ」に更新する。
監視プロセス５４は、ＤＬＮＡプロセス５６が異常終了したと判断すると（ステップＳＴ４６）、正常終了処理を行う（ステップＳＴ４７）。監視プロセス５４は、異常終了処理において、状態遷移データを状態「ＣＴＣ＿ＤＬＮＡ＿ＥＲＲＯＲ」に更新する。
その後、監視プロセス５４は、起動ロックを解放する（ステップＳＴ４８）。
【００４９】
以下、図１に示すテレビ受像機１の全体動作例を説明する。
[ＤＬＮＡプロセス５６の起動および終了が正常な場合]
図６は、図１に示すＤＬＮＡプロセス５６の起動および終了が正常な場合の動作例を説明するためのフロー図である。
図６において、図４および図５に対応するステップＳＴ（）について、ステップＳＴ（）´と示している。
図１に示すＤＢＳアプリケーションプロセス５２が起動されると、ＩＦアプリケーション部６６は、起動ロック部６７から起動ロックを取得する（ステップＳＴ２９´）。
これ以降、ＩＦアプリケーション部６６が起動ロックを解放するまで、いかなる処理も起動ロック部６７に起動ロック取得要求を出すと、オペレーティンス・システムからのシステム関数の応答待ち状態になる。
【００５０】
次に、ＩＦアプリケーション部６６は、監視プロセス５４をスレッドとして起動する（ステップＳＴ１０１）。
但し、この起動形態は、スレッドに限定されるものではなく、プロセス方式などのＤＢＳアプリケーションプロセス５２と非同期で動作できるものであればよい。
そして、ＤＢＳアプリケーションプロセス５２のすべての機能が起動し、デジタルテレビ放送視聴と他機能アプリの起動が可能な状態になる。
【００５１】
監視プロセス５４は、上述したようにスレッド起動のシステムコールからスレッドとして実行され、最初に、起動ロック部６７の起動ロックの取得を試みる（ステップＳＴ４０´）。
この場合に、上記起動ロックは解放されていないため、監視プロセス５４は、システムコールの応答待ち状態になる。
【００５２】
一方、ＩＦアプリケーション部６６は、監視プロセス５４の起動（ステップＳＴ１０１）に続いて、ＵＩ入力待ちになる（ステップＳＴ１３´）。本例では、ＩＦアプリケーション部６６は、相互実行通信部６４を介してテレビアプリケーション処理部６２からＤＬＮＡプロセス５６の開始要求を受ける（ステップＳＴ１４´）。そして、ＩＦアプリケーション部６６は、開始受付可能状態であると判断すると（ステップＳＴ１６´）、状態保存部６８に記憶する状態遷移データを状態「ＣＴＣ＿ＣＴＣ＿ＳＴＡＲＴ」に設定する（ステップＳＴ１７´）。
そして、ＩＦアプリケーション部６６は、起動ロック部６７の起動ロックを解放する（ステップＳＴ１８´）。
【００５３】
これにより、監視プロセス５４は、上記ステップＳＴ４０´における監視プロセス５４の待ち状態を解除して、状態保存部６８に記憶された状態遷移データが状態「ＣＴＣ＿ＣＴＣ＿ＳＴＡＲＴ」を示しているか否かを判断する（ステップＳＴ４１´）。ここで、状態「ＣＴＣ＿ＣＴＣ＿ＳＴＡＲＴ」は、テレビアプリケーション処理部６２がＤＬＮＡプロセス５６の起動受付完了をした状態である。
監視プロセス５４は、状態遷移データが状態「ＣＴＣ＿ＣＴＣ＿ＳＴＡＲＴ」を示していないと判断すると（ステップＳＴ４１´）、起動ロック部６７の起動ロックを解放し（ステップＳＴ４８´）、続いて、前述した起動ロック取得を再び試みる（ステップＳＴ４０´）。すなわち、監視プロセス５４は、テレビアプリケーション処理部６２がＤＬＮＡプロセス５６の起動受付完了状態になるまで、起動ロックの解放動作（ステップＳＴ４８´）と、起動ロックの取得動作（ステップＳＴ４０´）とを繰り返す。
【００５４】
監視プロセス５４は、状態遷移データが状態「ＣＴＣ＿ＣＴＣ＿ＳＴＡＲＴ」を示していないと判断すると（ステップＳＴ４１´）、コマンドＢ通信部７２を用いてシステムコールの「ｆｏｒｋ（）」により、子プロセスとしてＤＬＮＡプロセス５６を起動する（ステップＳＴ４２´）。そして、ＤＬＮＡプロセス５６は、共通リソース部３４の設定内容をＤＬＮＡプロセス５６の処理に適合するように変更する。その後、ＤＬＮＡプロセス５６は、例えば、サーバ４０から入力したコンテンツデータを共通リソース部３４でデコードしながら再生処理する（ステップＳＴ１３０）。ＤＬＮＡプロセス５６は、後述するようにＩＦアプリケーション部６６によって停止されるまで、再生処理を継続する。
【００５５】
そして、監視プロセス５４は、状態遷移データを、ＤＬＮＡプロセス５６の起動を示す状態「ＣＴＣ＿ＤＬＮＡ＿ＳＴＡＲＴ」に更新する（ステップＳＴ１１０）。
その後、監視プロセス５４は、システム関数waitpidを用いてＤＬＮＡプロセス５６の終了の待ち状態になる（ステップＳＴ４３´）。
【００５６】
一方、ＩＦアプリケーション部６６は、テレビアプリケーション処理部６２からＤＬＮＡプロセス５６の停止要求を受けると（ステップＳＴ１４´）、停止受付可能状態であるか、すなわち状態保存部６８に記憶された状態遷移データが状態「ＣＴＣ＿ＤＮＬＡ＿ＳＴＡＲＴ」であるか否かを判断する（ステップＳＴ１９´）。
そして、ＩＦアプリケーション部６６は、状態「ＣＴＣ＿ＤＮＬＡ＿ＳＴＡＲＴ」であると判断すると、状態保存部６８に記憶する状態遷移データを状態「ＣＴＣ＿ＣＴＣ＿ＳＴＯＰ」に設定する（ステップＳＴ２１´）。ここで、状態「ＣＴＣ＿ＣＴＣ＿ＳＴＯＰ」は、ＤＬＮＡプロセス５６の停止要求を受けたことを示す状態である。
【００５７】
そして、ＩＦアプリケーション部６６は、オペレーティング・システムのシステムコール「ｋｉｌｌ」により、ＤＬＮＡプロセス５６を停止する（ステップＳＴ２２´）。
システム関数のプロセス終了コマンドによるＤＬＮＡプロセス５６の強制終了を行うと、ＤＬＮＡプロセス５６によりシステム関数waitpidへ終了通知が返される（ステップＳＴ１２０）。
【００５８】
これにより、監視プロセス５４は、上記ステップＳＴ４３´の待ち状態を終了して、状態遷移データを、ＤＬＮＡプロセス５６の停止要求を受けたことを示す状態「ＣＴＣ＿ＣＴＣ＿ＳＴＯＰ」から、プロセス終了を示す状態「ＣＴＣ＿ＤＬＮＡ＿ＳＴＯＰ」に遷移させる（ステップＳＴ４５´）。
また、監視プロセス５４は、コマンドＡ通信部７０を用いて、終了メッセージをＩＦアプリケーション部６６に出力する（ステップＳＴ４５´）
その後、監視プロセス５４は、起動ロック部６７の起動ロックを解放する（ステップＳＴ４８´）
【００５９】
ＩＦアプリケーション部６６は、終了メッセージ待ち状態（ステップＳＴ２３´，ＳＴ２４´）で、終了メッセージを監視プロセス５４から入力した後に、状態遷移データがプロセス終了を示す状態「ＣＴＣ＿ＤＬＮＡ＿ＳＴＯＰ」である（すなわち、正常終了である）という正常終了条件が満たされたか否かを判断する（ステップＳＴ２５´）。そして、ＩＦアプリケーション部６６は、正常終了条件が満たされたと判断すると、テレビ機能への復帰のため、共用リソース部３４の再設定処理（ＨＷ再生設定処理）を行う（ステップＳＴ２７´）。
【００６０】
ここで、ＩＦアプリケーション部６６において、図４に示すように、ＵＩ入力受付待ち（ステップＳＴ１２）と終了メッセージ待ち（ステップＳＴ２３）が、同じ処理フローにて処理される理由は、統一されたインタフェースである図４に示すテレビアプリ機能要求受付（ステップＳＴ１１）を経由して、ＩＦアプリケーション部６６に通知される構造となっているためである。
【００６１】
次に、ＩＦアプリケーション部６６は、状態遷移データを初期状態を示す「ＣＴＣ＿ＤＬＮＡ＿ＩＮＩＴ」に更新する（ステップＳＴ２８´）。
そして、ＩＦアプリケーション部６６は、起動ロック部６７の起動ロックを取得を試みる（ステップＳＴ２９´）。
その後、ＤＢＳアプリケーションプロセス５２は、共通リソース部３４を用いてテレビ機能を実行する（ステップＳＴ３０´）。このとき、ＩＦアプリケーション部６６が起動ロックを取得した、監視プロセス５４が待ち状態（ＳＴ１１０）となり、監視プロセス５４の監視処理を一時停止する。
【００６２】
以上説明したように、テレビ受像機１では、監視プロセス５４が起動直後に起動ロック取得待ち（ステップＳＴ４０´）をすることで、ＤＢＳアプリケーションプロセス５２が、ＤＬＮＡプロセス５６に切り換え可能になるまで、監視プロセス５４によるＤＬＮＡプロセス５６の起動を待機させることができる。
また、監視プロセス５４は、ＤＬＮＡプロセス５６を終了させた後に起動ロックを解放し（ステップＳＴ４８´）、ＩＦアプリケーション部６６がテレビ機能復帰前に起動ロックを取得する（ステップＳＴ２９´）ことで、テレビアプリケーション処理部６２によるテレビ機能実行中（ＤＬＮＡプロセス５６の停止中）に監視プロセス５４による監視動作を停止できる。これにより、メイン処理回路３２のリソースを効率的に使用し、省電力化も図れる。
【００６３】
[ＤＬＮＡプロセス５６の終了が異常の場合]
図７は、図１に示すＤＬＮＡプロセス５６の終了が異常の場合の動作例を説明するためのフロー図である。
図７において、図４および図５に対応するステップＳＴ（）について、ステップＳＴ（）´あるいはステップＳＴ（）´´と示している。
本動作例では、テレビ受像機１は、図６を用いて説明した動作例と同様の処理を経て、監視プロセス５４がＤＬＮＡプロセス５６を起動する（ステップＳＴ４２´）。
そして、ＤＬＮＡプロセス５６によるストリーミング再生処理中に、何らかの要因で異常終了が発生すると、ＤＬＮＡプロセス５６がそれを検出して、システム関数waitpidへ終了通知が返される（ステップＳＴ２２０）。
【００６４】
これにより、監視プロセス５４は、上記ステップＳＴ４３´の待ち状態を終了して、状態遷移データを、ＤＬＮＡプロセス５６の停止要求を受けたことを示す状態「ＣＴＣ＿ＣＴＣ＿ＳＴＯＰ」から、プロセス終了エラーを示す状態「ＣＴＣ＿ＤＬＮＡ＿ＥＲＲＯＲ」に遷移させる（ステップＳＴ４５´´）。
また、監視プロセス５４は、コマンドＡ通信部７０を用いて、終了メッセージをＩＦアプリケーション部６６に出力する（ステップＳＴ４５´´）
その後、監視プロセス５４は、起動ロック部６７の起動ロックを解放する（ステップＳＴ４８´）
【００６５】
ＩＦアプリケーション部６６は、終了メッセージ待ち状態（ステップＳＴ２３´，ＳＴ２４´）で、終了メッセージを監視プロセス５４から入力した後に、状態遷移データがプロセス終了を示す状態「ＣＴＣ＿ＤＬＮＡ＿ＥＲＲＯＲ」である（すなわち、異常終了である）という異常終了条件が満たされたか否かを判断する（ステップＳＴ２５´´）。そして、ＩＦアプリケーション部６６は、異常終了条件が満たされたと判断すると、ディスプレイ２８にエラー表示の処理を行う（ステップＳＴ２５０）。
その後、ＩＦアプリケーション部６６は、テレビ機能への復帰のため、共用リソース部３４の再設定処理（ＨＷ再生設定処理）を行う（ステップＳＴ２７´）。
【００６６】
次に、ＩＦアプリケーション部６６は、状態遷移データを初期状態を示す「ＣＴＣ＿ＤＬＮＡ＿ＩＮＩＴ」に更新する（ステップＳＴ２８´）。
そして、ＩＦアプリケーション部６６は、起動ロック部６７の起動ロックの取得を試みる（ステップＳＴ２９´）。
その後、ＤＢＳアプリケーションプロセス５２は、共通リソース部３４を用いてテレビ機能を実行する（ステップＳＴ３０´）。このとき、ＩＦアプリケーション部６６が起動ロックを取得し、監視プロセス５４が待ち状態（ＳＴ１１０）となり、監視プロセス５４の監視処理を一時停止する。
【００６７】
このように、テレビ受像機１では、ＤＬＮＡプロセス５６の実行中にエラーが発生した場合でも、正常終了の場合と同様に、テレビアプリケーション処理部６２の処理の復帰、並びに監視プロセス５４による監視処理の停止を適切に実行できる。
【００６８】
以下、テレビ受像機１の効果を説明する。
テレビ受像機１では、上述したように、起動ロック部６７のロック機能を用いることで、ＤＬＮＡプロセス５６が動作中にのみ監視プロセス５４による監視動作を稼働し、それ以外は停止させることができる。これにより、監視プロセス５４によるメイン処理回路３２の使用時間を削減でき、省電力化を図れる。
また、テレビ受像機１では、上記起動ロックを用いることで、ＩＦアプリケーション部６６と監視プロセス５４との間でメッセージ通信やポーリング監視を行わないでも、状態保存部６８を用いたステートマシン方式によるイベントステート管理と、ＤＬＮＡプロセス５６からの終了通知により、ＤＬＮＡプロセス５６の状態監視を行うことができる。
【００６９】
また、図６および図７に示すように、テレビ受像機１では、ＤＢＳアプリケーションプロセス５２のＩＦアプリケーション部６６は、監視プロセス５４等によって更新された上記状態遷移データに基づいて、ＤＬＮＡプロセス５６が正常終了した場合と異常終了した場合とで同じシーケンスで、共通リソース部３４の設定内容をテレビアプリケーション処理部６２の処理に適合した内容に更新する。そのため、テレビアプリケーション処理部６２のプログラムコード数を少なくでき、開発負担を軽減できる。
【００７０】
また、テレビ受像機１では、ＤＬＮＡプロセス５６に、例えば、システム機能によるassert処理を行わせることで、デットロック等が生じた場合にプロセスを自動終了させてプロセス終了通知を監視プロセス５４に出力させる。また、ＩＦアプリケーション部６６が、正常時においてもＤＬＮＡプロセス５６をシステムコールにより強制終了させる。そのため、従来のようにＤＬＮＡプロセスの応答時間の相違による処理時間の長期化を回避できる。
すなわち、ステートマシン方式によるイベントステート管理と、ＤＬＮＡプロセス５６側のエラー時の終了処理により、プロセス間のメッセージ通信を行わなくとも、リソースのロック状態の監視及び回避が行うことができる。
【００７１】
また、テレビ受像機１では、監視プロセス５４は、状態遷移データを基にＤＬＮＡプロセス５６を起動した後にＤＬＮＡプロセス５６の監視を開始する。そのため、ＤＬＮＡプロセス５６が動作していないときには監視プロセス５４の監視ループ処理を停止でき、メイン処理回路３２のリソースを無駄に使用することなく有効利用できる。また、省電力化が図れる。
【００７２】
また、上述したテレビ受像機１では、ＤＬＮＡプロセス５６からのシステムコールによる終了通知と、状態保存部６８に記憶された状態遷移データとの組み合わせ等によって規定される図２および図３に示す状態遷移により、ＩＦアプリケーション部６６等がＤＬＮＡプロセス５６の終了状態を判断する。そのため、ＩＦアプリケーション部６６は早いタイミングでＤＬＮＡプロセス５６の終了を検出でき、共通リソース部３４の設定変更をＤＢＳアプリケーションプロセス５２が自ら適切なタイミングで行うことができる。これにより、ＤＬＮＡプロセス５６からＤＢＳアプリケーションプロセス５２への変更を早いタイミングで安定して行うことが可能になる。
【００７３】
また、、テレビ受像機１では、図示しない操作部からの要求に応じてＤＢＳアプリケーションプロセス５２のテレビアプリケーション処理部６２が監視プロセス５４を起動し、監視プロセス５４がＤＬＮＡプロセス５６を起動してその動作状態を監視する。
そのため、ＤＬＮＡプロセス５６の動作が、ＤＢＳアプリケーションプロセス５２の動作に直接的に影響せず、ＤＢＳアプリケーションプロセス５２の動作を安定化できる。
【００７４】
本発明は上述した実施形態には限定されない。
すなわち、当業者は、本発明の技術的範囲またはその均等の範囲内において、上述した実施形態の構成要素に関し、様々な変更、コンビネーション、サブコンビネーション、並びに代替を行ってもよい。
例えば、上述した実施形態では、本発明の主コンテンツ処理としてＤＢＳアプリケーションプロセス５２を例示し、従コンテンツ処理としてＤＬＮＡプロセス５６を例示したが、これらは例示であり、ＤＢＳアプリケーションプロセス５２もＤＬＮＡプロセスであってもよい。
【００７５】
また、上述した実施形態では、図１に示すように、状態保存部６８をＤＢＳアプリケーションプロセス５２の機能の一部として実現したが、メイン処理回路３２が実行するＤＢＳアプリケーションプロセス５２以外のプロセスに状態保存部６８の機能を実現させてもよい。
【００７６】
また、上述した実施形態では、監視プロセス５４が単数のＤＬＮＡプロセス５６を起動する場合を例示したが、複数のＤＬＮＡプロセス５６を起動してもよい。
また、図２および図３に示す状態遷移データが示す状態は一例であり、ＤＬＮＡプロセス５６の正常終了と異常終了とを特定できれば、様々なものが利用できる。
【００７７】
上述した実施形態では、本発明のコンテンツ処理装置の一例としてテレビ受像機１を例示したが、その他、オーディオ再生装置等のその他の再生装置であってもよい。また、再生装置に限らず、コンテンツに対して何らかの処理をする装置であれば特に限定されない。
【産業上の利用可能性】
【００７８】
本発明は、主コンテンツ処理と従コンテンツ処理とを起動して関連づけて処理を行うシステムに適用可能である。
【図面の簡単な説明】
【００７９】
【図１】本発明の実施形態に係るテレビ受像機の構成を説明するための図である。
【図２】図１に示す状態保存部が記憶する状態遷移データが示す状態を説明するための図である。
【図３】図１に示す状態保存部が記憶する状態遷移データが示す状態の遷移パターンを説明するための図である。
【図４】図１に示すＩＦアプリケーション部の処理を説明するためのフローチャートである。
【図５】図１に示す監視プロセスの処理を説明するためのフローチャートである。
【図６】ＤＬＮＡプロセスの起動および終了が正常な場合の動作例を説明するためのフロー図である。
【図７】図１に示すＤＬＮＡプロセスの終了が異常の場合の動作例を説明するためのフロー図である。
【符号の説明】
【００８０】
１…テレビ受像機
１０…アンテナ
２８…ディスプレイ
３０…フロントエンド回路
３２…メイン処理回路
３４…共通リソース部
４０…サーバ
５２…ＤＢＳアプリケーションプロセス（本発明の主表示処理手段の一例）
５４…監視プロセス（本発明の監視手段の一例）
５６…ＤＬＮＡプロセス（本発明の従表示処理手段の一例）
６２…テレビアプリケーション処理部
６４…相互実行通信部
６６…ＩＦアプリケーション部
６７…起動ロック部（ロック管理手段）
６８…状態保存部（本発明の記憶手段の一例）
７０…コマンドＡ通信部
７２…コマンドＢ通信部
７４…システム通信部
【図１】
0005035675.tif 000002
【図２】
0005035675.tif 000003
【図３】
0005035675.tif 000004
【図４】
0005035675.tif 000005
【図５】
0005035675.tif 000006
【図６】
0005035675.tif 000007
【図７】
0005035675.tif 000008