"コンテンツデータのストリームを構成するパケット群をサーバから受信しながら前記コンテンツデータを再生する電子機器であって、前記受信されたパケット群を格納するバッファと、前記バッファに格納されているパケット群をデコードして前記パケット群に対応するデータを再生する再生手段と、受信されたパケットが、ランダムアクセス可能なビデオフレームを運ぶためのパケット群内の先頭のパケットであることを示すランダムアクセスインジケータフラグが設定された第1パケットであるか否かを判定し、前記受信されたパケットが前記第1パケットである場合、前記第1パケットから、または前記第1パケットと同一のパケット識別子を有する他の受信されたパケットから、前記ランダムアクセス可能なビデオフレームの提示時刻を示すタイムスタンプを取得し、前記提示時刻と、前記第1パケットが格納される前記バッファ内の位置とを示すインデックス情報を生成するインデックス生成手段と、前記再生手段によって要求される変更先再生位置に対応する第1データ部が前記バッファ上に存在するか否かを前記インデックス情報に基づいて判定し、前記判定結果に基づいて、前記第1データ部を前記バッファから前記再生手段に転送する処理または前記第1データ部を前記サーバから受信する処理のいずれかを実行する制御手段とを具備する電子機器。前記インデックス生成手段は、前記第1パケットと、前記第1パケットと同一のパケット識別子を有する他の受信された1以上のパケットとを用いて、前記ランダムアクセス可能なビデオフレームを運ぶためのパケッタイズドエレメンタリーストリームPESパケットのヘッダを組み立て、前記組み立てたヘッダから、前記ランダムアクセス可能なビデオフレームの提示時刻を示す前記タイムスタンプを取得するように構成されている請求項1記載の電子機器。前記コンテンツデータのストリームを構成するパケット群はトランスポートストリームTSパケット群である請求項1記載の電子機器。前記サーバは、ランダムアクセス可能なビデオフレームを運ぶためのパケット群内の先頭のパケットに前記ランダムアクセスインジケータフラグを設定するように構成されている請求項1記載の電子機器。コンテンツデータのストリームを構成するパケット群をサーバから受信しながら前記コンテンツデータを再生する再生制御方法であって、前記受信されたパケット群をバッファに格納し、前記バッファに格納されているパケット群をデコードして前記パケット群に対応するデータを再生し、前記受信されたパケットが、ランダムアクセス可能なビデオフレームを運ぶためのパケット群内の先頭のパケットであることを示すランダムアクセスインジケータフラグが設定された第1パケットであるか否かを判定し、前記受信されたパケットが前記第1パケットである場合、前記第1パケットから、または前記第1パケットと同一のパケット識別子を有する他の受信されたパケットから、前記ランダムアクセス可能なビデオフレームの提示時刻を示すタイムスタンプを取得し、前記提示時刻と、前記第1パケットが格納される前記バッファ内の位置とを示すインデックス情報を生成し、再生位置変更要求によって要求される変更先再生位置に対応する第1データ部が前記バッファ上に存在するか否かを前記インデックス情報に基づいて判定し、前記判定結果に基づいて、前記第1データ部を前記バッファから前記再生手段に転送する処理または前記第1データ部を前記サーバから受信する処理のいずれかを実行する再生制御方法。前記インデックス情報を生成することは、前記第1パケットと、前記第1パケットと同一のパケット識別子を有する他の受信された1以上のパケットとを用いて、前記ランダムアクセス可能なビデオフレームを運ぶためのパケッタイズドエレメンタリーストリームPESパケットのヘッダを組み立てることと、前記組み立てたヘッダから、前記ランダムアクセス可能なビデオフレームの提示時刻を示す前記タイムスタンプを取得することとを含む請求項5記載の再生制御方法。コンピュータに、コンテンツデータのストリームを構成するパケット群をサーバから受信しながら前記コンテンツデータを再生させるプログラムであって、前記受信されたパケット群をバッファに格納する手順と、前記バッファに格納されているパケット群をデコードして前記パケット群に対応するデータを再生する手順と、前記受信されたパケットが、ランダムアクセス可能なビデオフレームを運ぶためのパケット群内の先頭のパケットであることを示すランダムアクセスインジケータフラグが設定された第1パケットであるか否かを判定する手順と、前記受信されたパケットが前記第1パケットである場合、前記第1パケットから、または前記第1パケットと同一のパケット識別子を有する他の受信されたパケットから、前記ランダムアクセス可能なビデオフレームの提示時刻を示すタイムスタンプを取得し、前記提示時刻と、前記第1パケットが格納される前記バッファ内の位置とを示すインデックス情報を生成する手順と、再生位置変更要求によって要求される変更先再生位置に対応する第1データ部が前記バッファ上に存在するか否かを前記インデックス情報に基づいて判定する手順と、前記判定結果に基づいて、前記第1データ部を前記バッファから前記再生手段に転送する処理または前記第1データ部を前記サーバから受信する処理のいずれかを実行する手順とを実行させるプログラム。電子機器上で実行されるプレーヤソフトウェアは、シークバーまたはプログレッシブバーと称されるユーザインタフェースを表示する。ユーザは、シークバーを操作することによって、マルチメディアコンテンツデータ内の再生位置を変更シークすることができる。MPEGにおいて規格化されたMP4のようなファイルフォーマットを有するコンテンツデータは、シーク用のインデックス情報を含んでいる。しかしながら、幾つか種類のコンテンツデータ例えばMPEG2TSTTSコンテンツデータ等においては、シーク用のインデックス情報はそのコンテンツデータに包含されていない。このため、電子機器側では、MPEG2TSTTSコンテンツデータのストリーム内のピクチャ構造等を解析することによってそのストリームに対応するインデックス情報を作成することが必要とされる。しかし、一般的に、ストリームのピクチャ構造を解析するためには、そのストリームをデコードする処理と同等の処理を実行することが必要とされる。このため、コンテンツデータを受信しながら、インデックス情報をリアルタイムに作成することは困難である。本発明は、コンテンツデータを受信しながらそのコンテンツデータに対応するインデックス情報を作成することができる電子機器及びコンテンツ再生制御方法を提供することを目的とする。実施形態によれば、電子機器は、コンテンツデータのストリームを構成するパケット群をサーバから受信しながら前記コンテンツデータを再生する。この電子機器は、バッファと、再生手段と、インデックス生成手段と、制御手段とを具備する。前記バッファは、前記受信されたパケット群を格納する。前記再生手段は、前記バッファに格納されているパケット群をデコードして前記パケット群に対応するデータを再生する。前記インデックス生成手段は、受信されたパケットが、ランダムアクセス可能なビデオフレームを運ぶためのパケット群内の先頭のパケットであることを示すランダムアクセスインジケータフラグが設定された第1パケットであるか否かを判定し、前記受信されたパケットが前記第1パケットである場合、前記第1パケットから、または前記第1パケットと同一のパケット識別子を有する他の受信されたパケットから、前記ランダムアクセス可能なビデオフレームの提示時刻を示すタイムスタンプを取得し、前記提示時刻と、前記第1パケットが格納される前記バッファ内の位置とを示すインデックス情報を生成する。前記制御手段は、前記再生手段によって要求される変更先再生位置に対応する第1データ部が前記バッファ上に存在するか否かを前記インデックス情報に基づいて判定し、前記判定結果に基づいて、前記第1データ部を前記バッファから前記再生手段に転送する処理または前記第1データ部を前記サーバから受信する処理のいずれかを実行する。以下、実施の形態について図面を参照して説明する。図1は、一実施形態に係る電子機器の外観を示す斜視図である。この電子機器は、例えば、スレート型パーソナルコンピュータPC、ラップトップ型PC、スマートフォン、またはPDA等として実現され得る。以下では、この電子機器がスレート型パーソナルコンピュータ10として実現されている場合を想定する。スレート型パーソナルコンピュータ10は、図1に示すように、コンピュータ本体11とタッチスクリーンディスプレイ17とから構成される。コンピュータ本体11は、薄い箱形の筐体を有している。タッチスクリーンディスプレイ17には、液晶表示装置LCD及びタッチパネルが組み込まれている。タッチパネルは、LCDの画面を覆うように設けられる。タッチスクリーンディスプレイ17は、コンピュータ本体11の上面に重ね合わせるように取り付けられている。コンピュータ10はコンテンツデータをストリーミングによって再生するコンテンツ再生機能を有している。このコンテンツ再生機能はコンピュータ10にインストールされたプレーヤソフトウェアによって実行される。プレーヤソフトウェアによるコンテンツ再生動作は、オペレーティングシステムによって提供されるマルチメディアフレームワークを利用して実行するようにしてもよい。コンピュータ10は有線または無線のネットワークとの通信を実行するための通信デバイスを内蔵しており、コンピュータ10とインターネット20との間の通信はこの通信デバイスを介して実行される。コンテンツデータは、例えば、ビデオデータとオーディオデータとが多重化されたデータストリームである。ビデオデータは圧縮符号化されていてもよく、またオーディオデータも圧縮符号化されていてもよい。コンテンツデータは、ビデオデータのみから構成されていてもよい。プレーヤソフトウェアはインターネット20のようなネットワークを介してコンテンツサーバ21からコンテンツデータマルチメディアコンテンツデータを受信する。プレーヤソフトウェアはマルチメディアコンテンツデータを受信しながら、そのマルチメディアコンテンツデータを再生する。コンピュータ10においては、マルチメディアコンテンツデータ内の受信されたデータ部はバッファに格納される。バッファはコンピュータ10内のメモリの一部である。バッファに一定量のデータが蓄積された後に、プレーヤソフトウェアはマルチメディアコンテンツデータの再生を開始する。マルチメディアコンテンツデータの再生処理においては、バッファに格納されたビデオデータ部およびオーディオデータ部の各々が再生される。マルチメディアコンテンツデータの再生処理の間、プレーヤソフトウェアは、先読み処理を実行してもよい。先読み処理は、現在再生位置よりも時間的に後のデータ部それぞれをコンテンツサーバ21から順次受信してバッファに格納するバッファリング処理である。図2は、プレーヤソフトウェアによってディスプレイ17に表示されるコンテンツ再生画面の例である。コンテンツ再生画面はビデオ表示エリア31およびシークバー33を表示する。ビデオ表示エリア31は、マルチメディアコンテンツデータ内のビデオデータの画像動画像を表示するための表示領域である。シークバー33はマルチメディアコンテンツデータの再生位置をユーザに制御させるためのグラフィカルユーザインタフェースである。シークバー33の左端および右端は再生対象のマルチメディアコンテンツデータの先頭位置および終端位置にそれぞれ対応する。マルチメディアコンテンツデータの再生期間中においては、マルチメディアコンテンツデータの再生位置は時間の経過に伴って自動的に更新される。再生位置を示す値としては、マルチメディアコンテンツデータの先頭位置を起点としたオフセット値を用いてもよい。ある再生位置に対応するオフセット値は、マルチメディアコンテンツデータの先頭位置からその再生位置までの再生時間を示す。シークバー33はスライダ35を表示する。スライダ35はマルチメディアコンテンツデータ内の現在再生位置を示す。つまり、スライダ35はマルチメディアコンテンツデータの再生の進行状況を示す。ユーザは、ポインティングデバイスを用いてスライダ35を移動させることにより、マルチメディアコンテンツデータの再生位置を変更することができる。図3は、本コンピュータ10のシステム構成を示す図である。本コンピュータ10は、図3に示されるように、CPU101、ノースブリッジ102、主メモリ103、サウスブリッジ104、グラフィクスコントローラ105、サウンドコントローラ106、BIOS-ROM107、LANコントローラ108、ソリッドステートドライブSSD109、無線LANコントローラ112、エンベデッドコントローラEC113、EEPROM114、HDMI制御回路3等を備える。CPU101は、コンピュータ10内の各部の動作を制御するプロセッサである。CPU101は、SSD109から主メモリ103にロードされる、オペレーティングシステムOS201、および各種アプリケーションプログラムを実行する。アプリケーションプログラムには、プレーヤアプリケーションプログラム202が含まれている。このプレーヤアプリケーションプログラム202は上述のプレーヤソフトウェアであり、オペレーティングシステムOS201上で実行される。また、CPU101は、BIOS-ROM107に格納されたBIOSも実行する。BIOSは、ハードウェア制御のためのプログラムである。ノースブリッジ102は、CPU101のローカルバスとサウスブリッジ104との間を接続するブリッジデバイスである。ノースブリッジ102には、主メモリ103をアクセス制御するメモリコントローラも内蔵されている。また、ノースブリッジ102は、PCIEXPRESS規格のシリアルバスなどを介してグラフィクスコントローラ105との通信を実行する機能も有している。グラフィクスコントローラ105は、本コンピュータ10のディスプレイモニタとして使用されるLCD17Aを制御する表示コントローラである。このグラフィクスコントローラ105によって生成される表示信号はLCD17Aに送られる。LCD17Aは、表示信号に基づいて映像を表示する。このLCD17A上にはタッチパネル17Bが配置されている。タッチパネル17Bは、LCD17Aの画面上で入力を行うためのポインティングデバイスである。ユーザは、タッチパネル17Bを用いて、LCD17Aの画面に表示されたグラフィカルユーザインタフェースGUI等を操作することができる。例えば、ユーザは、画面に表示されたボタンをタッチすることによって、当該ボタンに対応する機能の実行を指示することができる。HDMI端子2は、外部ディスプレイ接続端子である。HDMI端子2は、非圧縮のデジタル映像信号とデジタルオーディオ信号とを1本のケーブルで外部ディスプレイ装置1に送出することができる。HDMI制御回路3は、HDMIモニタと称される外部ディスプレイ装置1にデジタル映像信号をHDMI端子2を介して送出するためのインタフェースである。つまり、コンピュータ10は、HDMI端子2等を介して、外部ディスプレイ装置1に接続可能である。サウスブリッジ104は、PCIPeripheralComponentInterconnectバス上の各デバイス及びLPCLowPinCountバス上の各デバイスを制御する。また、サウスブリッジ104は、SSD109を制御するためのATAコントローラを内蔵している。サウスブリッジ104は、各種USBデバイスを制御するためのUSBコントローラを内蔵している。さらに、サウスブリッジ104は、サウンドコントローラ106との通信を実行する機能も有している。サウンドコントローラ106は音源デバイスであり、再生対象のオーディオデータをスピーカ18A,18Bに出力する。LANコントローラ108は、例えばIEEE802.3規格の有線通信を実行する有線通信デバイスである。無線LANコントローラ112は、例えばIEEE802.11規格の無線通信を実行する無線通信デバイスである。EC113は、電力管理のためのエンベデッドコントローラを含む1チップマイクロコンピュータである。EC113は、ユーザによるパワーボタンの操作に応じて本コンピュータ10を電源オン/電源オフする機能を有している。次に、図4を参照して、プレーヤアプリケーションプログラム202の機能構成を説明する。プレーヤアプリケーションプログラム202は、データソース301、デマルチプレクサ302、ビデオデコーダ303、オーディオデコーダ304、レンダラ305、および再生制御部306を備える。データソース301は、再生制御部306の制御の下、コンテンツサーバ21からマルチメディアコンテンツデータを受信するための処理を順次実行し、受信されたデータ部分それぞれをバッファ401に格納するバッファリング。このバッファリングにおいては、データソース301は、コンテンツデータのストリームを構成するパケット群をサーバ21から順次受信する。これら各パケットは、トランスポートストリームTSパケットである。また、これら各パケットは、タイムスタンプドTSパケットTTSパケットであってもよい。TTSパケットはTSパケットの一種であり、TSパケットの先頭にタイムスタンプが付与されたパケットである。バッファ401は、受信されたTS/TTSパケット群、つまりコンテンツデータ内の一部のデータを格納する。データソース301は、さらに、インデックス情報生成部402、制御部403、およびインデックス情報記憶部404を備える。インデックス情報生成部402は、コンテンツデータに対するシーク用のインデックス情報をバッファリング中にリアルタイムに生成する。このインデックス情報の生成動作を支援するために、サーバ201は、コンテンツデータ内の各ランダムアクセスポイントに対応するTSパケットを送信する場合には、そのTSパケットのヘッダに1のランダムアクセスインジケータフラグrandomaccessindicatorを設定するように構成されている。ランダムアクセスインジケータフラグrandomaccessindicatorが設定されたTSパケットは、ランダムアクセス可能なビデオフレームを運ぶための複数のTSパケット群内の先頭のTSパケットである。あるビデオフレームを運ぶための一つのパケッタイズドエレメンタリーストリームPESパケットは、同一のパケット識別子PIDを持つ複数のTSパケットのペイロードに分割して伝送される。したがって、ランダムアクセスインジケータフラグrandomaccessindicatorが設定されたTSパケットは、ランダムアクセス可能なビデオフレームを運ぶためのPESパケットが分散される複数のTSパケット内の先頭TSパケットである。ランダムアクセス可能なビデオフレームは、他のビデオフレームを参照せずにデコード可能なビデオフレーム、例えばH.264のIDRInstantaneousDecoderRefreshフレーム、MPEG-2VideoのIIntraフレーム、等である。サーバ201は、ランダムアクセス可能なビデオフレームを格納するPESパケットが割り当てられた複数のTSパケットの内の先頭TSパケットのヘッダに存在するrandomaccessindicatorに1をセットする。インデックス情報生成部402は、受信されたTSパケットのヘッダを参照して、受信されたTSパケットが、ランダムアクセスインジケータフラグrandomaccessindicatorが設定されたTSパケットであるか否か、つまり、randomaccessindicatorに1がセットされたTSパケットであるか否かを判定する。受信されたTSパケットがランダムアクセスインジケータフラグrandomaccessindicatorが設定されたTSパケット第1パケットである場合、インデックス情報生成部402は、このランダムアクセスインジケータフラグrandomaccessindicatorが設定されたTSパケットから、またはこのランダムアクセスインジケータフラグrandomaccessindicatorが設定されたTSパケットと同一のパケット識別子PIDを有する他の受信されたTSパケットから、ランダムアクセス可能なビデオフレームの提示時刻を示すタイムスタンプを取得する。この場合、インデックス情報生成部402は、ランダムアクセスインジケータフラグrandomaccessindicatorが設定されたTSパケットと、このランダムアクセスインジケータフラグrandomaccessindicatorが設定されたTSパケットと同一のパケット識別子を有する他の受信された1以上のTSパケットとを用いて、ランダムアクセス可能なビデオフレームを運ぶPESパケットのヘッダを組み立て、この組み立てたヘッダから、ランダムアクセス可能なビデオフレームの提示時刻を示すタイムスタンププレゼンテーションタイムスタンプ:PTSを取得してもよい。PESパケットのヘッダは幾つかのTSパケットに分散されている場合がある。したがって、上述のようにPESパケットのヘッダを組み立て、その組み立てられたヘッダからPTSを取得することにより、たとえPESパケットのヘッダが幾つかのTSパケットに分散されている場合であっても、ランダムアクセス可能なビデオフレームに対応するPTSをより正しく取得することができる。そして、インデックス情報生成部402は、取得された提示時刻PTSと、ランダムアクセスインジケータフラグrandomaccessindicatorが設定されたTSパケットが格納されるバッファ401内の位置とを示すインデックス情報を生成する。ランダムアクセスインジケータフラグrandomaccessindicatorが設定されたTSパケットが格納されるバッファ401内の位置としては、例えば、そのTSパケットが格納されるバッファ401内のオフセット位置が用いられる。このインデックス情報はインデックス情報記憶部404に格納される。ランダムアクセスインジケータフラグrandomaccessindicatorが設定されたTSパケット第1パケットが受信される度、ランダムアクセス可能な新たなビデオフレームに対応するインデックス情報が生成される。これによって、バッファ401に格納されたデータ内のランダムアクセス可能な箇所毎に、提示時刻とバッファ401内の格納位置とのペアが、インデックス情報としてインデックス情報記憶部404に格納される。制御部404は、デマルチプレクサ302によって要求される変更先再生位置に対応する第1データ部がバッファ401上に存在するか否かをインデックス情報に基づいて判定し、この判定結果に基づいて、第1データ部をバッファ401からデマルチプレクサ302に転送する処理または第1データ部をサーバ21から受信する処理のいずれかを実行する。このように、バッファリング中に簡易な処理でシークに使用するインデックス情報を作成しておくことで、シークのレスポンスを向上させることができる。デマルチプレクサ302、ビデオデコーダ303、オーディオデコーダ304、およびレンダラ305は、バッファ401に格納されたデータTS/TTSパケット群をデコードしてそれらパケット群に対応するデータビデオデータおよびオーディオデータを再生する再生部として機能する。デマルチプレクサ302は、データソース301内のバッファ401からTS/TTSパケット群を受信し、それらTS/TTSパケット群それぞれのPIDに基づいて、それらTS/TTSパケット群をビデオデータに対応するTS/TTSパケット群とオーディオデータに対応するTS/TTSパケット群とに分離する。ビデオデコーダ303はビデオデータに対応するTS/TTSパケット群をデコードし、デコードによって得られたビデオデータをレンダラ305に送る。オーディオデコーダ304はオーディオデータに対応するTS/TTSパケット群をデコードし、デコードによって得られたオーディオデータをレンダラ305に送る。レンダラ305はビデオデータの動画像をビデオ表示エリア31上に表示する。さらに、レンダラ305はオーディオデータに対応する音をスピーカ等を介して出力する。再生制御部306は、プレーヤアプリケーションプログラム202によるコンテンツデータの再生動作を制御する。より詳しくは、再生制御部306は、データソース301、デマルチプレクサ302、ビデオデコーダ303、オーディオデコーダ304、およびレンダラ305をそれぞれ制御する。次に、図5を参照して、プレーヤソフトウェア202によってサーバ201から受信されるTSパケット群について説明する。トランスボートストリームは、TSパケットまたはTTSパケットの列から構成される。各TSパケットは188バイト長の固定長パケットであり、ヘッダHとペイロードPとを含む。コンテンツデータのビットストリームはTSパケット群によって伝送される。ビットストリームにおいては、複数のランダムアクセス可能な箇所ランダムアクセスポイントが設定されている。ランダムアクセスポイントは例えば0.5秒程度の間隔で設定される。ビットストリーム内におけるランダムアクセス可能なビデオフレームそれぞれの位置がランダムアクセスポイントとなる。あるランダムアクセスポイントから次のランダムアクセスポイントまでの時間長は例えば0.5秒程度である。ビットストリームはPESパケット群によってパケット化される。各PESパケットのペイロードPは一つのアクセスユニット一つのビデオフレームのデータを含む。各PESパケットのヘッダPには、対応するビデオフレームのPTSが含まれている。一つのPESパケットは同一のPIDを有する複数のTSパケットのペイロードに分割して伝送される。いま、PESパケット501のペイロードにランダムアクセス可能なビデオフレームが含まれている場合を想定する。PESパケット501は、同一のPIDここでは、0x0100を有する複数のTSパケット601,602,...に分割される。この場合、本実施形態では、先頭のTSパケット601のヘッダ内に存在するrandomaccessindicatorに1がセットされる。さらに、PESパケット701のペイロードにランダムアクセス可能なビデオフレームが含まれている場合を想定する。PESパケット701は、同一のPIDここでは、0x0300を有する複数のTSパケット801,802,...に分割される。先頭のTSパケット801のヘッダ内に存在するrandomaccessindicatorには1がセットされる。図6には、TS/TTSパケットの構成が示されている。TS/TTSパケットのヘッダには、PIDを格納するフィールド部、randomaccessindicatorを格納するフィールド部、等が存在する。通常のシステムでは、randomaccessindicatorを格納するフィールドは使用されないことが多い。なぜなら、デコーダにおいては、ピクチャ構造を解析することによって、各ビデオフレームごとに、そのフレームがランダムアクセス可能なビデオフレームであるか否かを判定することができるからである。しかし、ピクチャ構造を解析するために必要な処理量は多いため、もしバッファリング処理中にピクチャ構造を解析する処理を行うと、バッファリング処理の負荷が増大し、バッファリングの速度が低下したり、コンテンツの再生性能に影響が及ぼされる可能性がある。本実施形態では、randomaccessindicatorに1がセットされたTSパケットが検出され、このTSパケットに対応するPESパケットのヘッダ内に存在するPTSが取得される。これにより、ピクチャ構造の解析を伴わない簡易な処理によってインデックス情報を作成することができる。図7には、PESパケットの構成が示されている。PESパケットのヘッダには、PTSを格納するフィールド部、等が存在する。次に、図8および図9を参照して、インデックス情報の例について説明する。いま、図8に示すように、ランダムアクセスインジケータフラグrandomaccessindicatorが設定されたTSパケット601がバッファ401の先頭から9000バイト目の格納位置Aに格納され、ランダムアクセスインジケータフラグrandomaccessindicatorが設定された別のTSパケット801がバッファ401の先頭から18000バイト目の格納位置Bに格納されている場合を想定する。この場合、TSパケット601のペイロードまたはTSパケット602のペイロードにはPESパケット501のヘッダが含まれている。したがって、TSパケット601のペイロードまたはTSパケット602のペイロードを参照することによって、PESパケット501に含まれるビデオフレームのPTSここでは、PTS=100000を取得することができる。同様に、TSパケット801のペイロードまたはTSパケット802のペイロードにはPESパケット701のヘッダが含まれている。したがって、TSパケット801のペイロードまたはTSパケット802のペイロードを参照することによって、PESパケット701に含まれるビデオフレームのPTSここでは、PTS=250000を取得することができる。図9はインデックス情報の例を示している。TSパケット601の受信時には、バッファ内オフセット=9000とタイムスタンプ=100000とのペアがインデックス情報として生成される。同様に、TSパケット801の受信時には、バッファ内オフセット=18000とタイムスタンプ=250000とのペアがインデックス情報として生成される。一旦生成されたペアは、必要に応じてインデックス情報から削除される。なぜなら、バッファ401の空き領域を確保するために、バッファ401の一部または全ての記憶領域を確保する処理が必要に応じて実行されるからである。例えば、バッファ401のバッファ内オフセット=9000からバッファ内オフセット=18000の直前までの記憶領域が解放されてこの記憶領域が空き領域に設定される場合には、バッファ内オフセット=9000とタイムスタンプ=100000とのペアがインデックス情報から削除される。次に、図10のフローチャートを参照して、プレーヤアプリケーションプログラム202によって実行される再生制御処理の手順を説明する。プレーヤアプリケーションプログラム202においては、再生制御部306の制御の下、データソース301は、マルチメディアコンテンツデータのTSパケット群それぞれをコンテンツサーバ21から順次受信してバッファ401に格納するためのバッファリング処理を開始する。一定量のデータがバッファ401に格納されると、再生制御部306からデマルチプレクサ302に再生要求が発行されステップS11、これによってマルチメディアコンテンツデータをストリーミングによって再生するための再生処理ステップS12~S17が開始される。再生処理では、デマルチプレクサ302は、次に再生すべきデータビデオまたはオーディオをデータソース301に要求しステップS13、次に再生すべきデータビデオまたはオーディオをデータソース301から取得するステップS14。このデータがビデオデコーダ303またはオーディオデコーダ304によってデコードされることによって再生されるステップS19。この場合、ビデオデータに対応する各TSパケットはデマルチプレクサ302からビデオデコーダ303に送られ、オーディオデータに対応する各TSパケットはデマルチプレクサ302からオーディオデコーダ304に送られる。さらに、再生処理では、再生制御部306は、マルチメディアコンテンツデータの再生が完了したか否か、つまり、再生が進捗し再生位置がマルチメディアコンテンツデータの終端に達したか否かを判定するステップS16。マルチメディアコンテンツデータの再生が完了するまで、ステップS12からステップS17までの再生処理のループが繰り返し実行される。再生が進捗し再生位置がマルチメディアコンテンツデータの終端に達するとステップS16のYES、再生処理が完了されるステップS18。次に、図11のフローチャートを参照して、プレーヤアプリケーションプログラム202によって実行されるバッファリング処理について説明する。バッファリング処理は、サーバ21からデータを順次受信するための受信処理のループステップS21~S29を含む。この受信処理のループステップS21~S29には、サーバ21から受信されるTTS/TSパケットを解析して上述のインデックス情報を生成するための解析処理のループステップS22~S27が含まれている。まず、データソース301は、コンテンツデータのストリームを構成するTTS/TSパケット群をサーバ21から受信するステップS21。受信されたTTS/TSパケット群はバッファ401に格納される。一つのTTS/TSパケットが受信される度に、データソース301のインデックス情報生成部402は、以下の処理を実行する。インデックス情報生成部402は、受信されたTTS/TSパケットが、ランダムアクセスインジケータフラグrandomaccessindicatorが設定されたTTS/TSパケットであるか否かを判定するステップS23。ステップS23では、インデックス情報生成部402は、受信されたTTS/TSパケットのヘッダに存在するランダムアクセスインジケータフラグrandomaccessindicatorが1であるか否かを判定する。受信されたTTS/TSパケットが、ランダムアクセスインジケータフラグrandomaccessindicatorが設定されたTTS/TSパケットであるならば、つまり、ランダムアクセス可能なビデオフレームを運ぶためのTTS/TSパケット群内の先頭のTTS/TSパケットであるならばステップ23のYES、インデックス情報生成部402は、受信されたTTS/TSパケットに対応するPESパケットのヘッダ内に存在するタイムスタンプPTSを取得するための処理を実行するステップS24。ステップS24では、インデックス情報生成部402は、受信されたTTS/TSパケットのペイロードから、または受信されたTTS/TSパケットと同一のPIDを有する他の受信されたTTS/TSパケットのペイロードから、ランダムアクセス可能なビデオフレームの提示時刻を示すタイムスタンプPTSを取得する。あるいは、インデックス情報生成部402は、受信されたTTS/TSパケットと、この受信されたTTS/TSパケットと同一のPIDを有する他の受信された全てのTTS/TSパケットとを用いて、PESパケットを組み立て、このPESパケットのヘッダからタイムスタンプPTSを取得してもよい。もちろん、必ずしもPESパケット全体を組み立てる必要は無い。データソース301は、受信されたTTS/TSパケットと、この受信されたTTS/TSパケットと同一のPIDを有する他の受信された1以上のTTS/TSパケットとを用いて、PESパケットのヘッダを組み立ててもよい。インデックス情報生成部402は、ランダムアクセスインジケータフラグrandomaccessindicatorが設定されたTTS/TSパケットが格納されるバッファ401内のオフセットと、上述のPTSとのペアを、インデックス情報として生成し、このインデックス情報をインデックス情報記憶部404に格納するステップS25。インデックス情報生成部402は、サーバ21から取得された全てのTTS/TSパケットに対する解析処理が完了したか否かを判定するステップS26。取得された全てのTTS/TSパケットに対する解析処理が完了するまで、ステップS22~S27の解析処理が繰り返し実行される。取得された全てのTTS/TSパケットに対する解析処理が完了するとステップS26のYES、データソース301は、コンテンツデータの受信が完了したか否かを判定するステップS28。コンテンツデータの受信が完了するまで、ステップS21~S29の受信処理が繰り返し実行される。コンテンツデータの受信が完了するとステップS28のYES、バッファリング処理が終了されるステップS30。次に、図12のフローチャートを参照して、再生位置変更処理シークについて説明する。例えばユーザによるスライダ35の移動操作によって、再生位置が現在再生位置と異なる位置変更先再生位置に変更された場合、以下のシーク制御動作が実行される。すなわち、再生制御部306は、再生位置を変更先再生位置に変更すべきことをデマルチプレクサ302に要求するステップS41。デマルチプレクサ302は、再生制御部306の制御の下、変更先再生位置に対応するデータ部をデータソース301に要求する。変更先再生位置は、変更先再生位置に対応する提示時刻シーク先時刻を示す。このシーク先時刻は、コンテンツデータの先頭位置からその変更先再生位置までの再生時間を示す。シーク先時刻の精度は例えばミリ秒単位で再生位置が指定できるような精度であればよい。一方、PTSによって示される提示時刻の精度は1/90KHzであり、シーク先時刻の精度よりも高精度である。このため、データソース301の制御部403は、シーク先時刻をPTSの精度に変換する処理スケーリング処理を実行する。またPTSはコンテンツの先頭が0とは限らないため、オフセット値を算出しPTSから減算する。オフセット値としては、コンテンツ先頭のPESパケットに設定されたPTSでもよいし、ビデオもしくはオーディオの先頭PESパケットのPTSを用いても良い。ステップS42。そして、データソース301の制御部403は、インデックス情報を参照して、変換されたシーク先時刻に対応するデータ部変更先再生位置に対応する第1データ部がバッファ401上に存在するか否かを判定するステップS43、S44。変換されたシーク先時刻が、例えば、インデックス情報内に登録されている最小PTSから最大PTSまでの範囲内に属するならば、変換されたシーク先時刻に対応するデータ部変更先再生位置に対応する第1データ部がバッファ401上に存在すると判定される。この判定結果に基づき、制御部403は、インデックス情報に基づいて、変更先再生位置に対応する第1データ部をバッファ401からデマルチプレクサ302に転送する処理、または第1データ部をサーバ21からから受信する処理のいずれかを実行する。より詳しくは、変換されたシーク先時刻に対応するデータ部変更先再生位置に対応する第1データ部がバッファ401上に存在するならば、制御部403は、変更先再生位置に対応する第1データ部をバッファ401から取得し、その取得した第1データ部をデマルチプレクサ302に送るステップS47。上述の図8および図9の例においては、たとえば、変換されたシーク先時刻が、PTS=100000からPTS=250000までの範囲内に属するならば、変更先再生位置に対応する第1データ部変更先再生位置に対応する、ランダムアクセス可能なビデオフレームがバッファ401上に存在すると判定される。もし、変換されたシーク先時刻がPTS=100000よりも大きく、且つPTS=250000未満であれば、例えば、変換されたシーク先時刻の直後のランダムアクセスポイントPTS=250000がシーク先位置として決定される。換言すれば、オフセット値=18000バイトに対応する格納位置に格納されたデータ部が、変更先再生位置に対応する第1データ部として決定される。そして、そのデータ部がバッファ401からリードされ、そのデータ部がデマルチプレクサ302に転送される。一方、変換されたシーク先時刻に対応するデータ部変更先再生位置に対応する第1データ部がバッファ401上に存在しないならば、データソース301の制御部403は、第1データ部および第1データ部に後続するデータ部それぞれをサーバ21に要求しステップS45、そしてサーバ21から第1データ部および第1データ部に後続するデータ部それぞれを受信する。データソース301の制御部403は、バッファ401に所定データ量のデータが蓄積されるのを待つステップS46。この待ち時間の間、コンテンツデータの再生は一時停止される。また、このデータ受信処理中においては、データソース301は、上述のインデックス生成処理も実行する。バッファ401に所定データ量のデータが蓄積された後、データソース301は、データソース301は、変更先再生位置に対応する第1データ部をバッファ401から取得し、その取得した第1データ部をデマルチプレクサ302に送るステップS47。以上説明したように、本実施形態によれば、受信されたパケットが、ランダムアクセス可能なビデオフレームを運ぶためのパケット群内の先頭のパケットであることを示すランダムアクセスインジケータフラグが設定された第1パケットであるか否かが判定される。受信されたパケットが第1パケットである場合、第1パケットから、または第1パケットと同一のパケット識別子を有する他の受信されたパケットから、ランダムアクセス可能なビデオフレームの提示時刻を示すタイムスタンプPTSが取得される。そして、取得された提示時刻と、第1パケットが格納されるバッファ401内の位置とを示すインデックス情報を生成される。このインデックス情報に基づき、変更先再生位置に対応するデータ部がバッファ401上に存在するか否かを判定することができる。よって、インデックス情報を含まないコンテンツデータをストリーミング再生する場合であっても、そのコンテンツデータを受信しながら、そのコンテンツデータに対応するインデックス情報を生成することができる。したがって、コンテンツデータの現在再生位置を別の再生位置に変更するためのシーク処理をこのインデックス情報に基づいて実行することができる。これにより、シーク処理のレスポンスを向上することができる。なお、図10~図12のフローチャートで説明した本実施形態の処理手順は全てソフトウェアによって実行することができる。このため、この処理手順を実行するプログラムを格納したコンピュータ読み取り可能な記憶媒体を通じてこのプログラムを通常のコンピュータにインストールして実行するだけで、本実施形態と同様の効果を容易に実現することができる。本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。"