= MPEG playback
* ((<MPEG playback機能概説>))
* ((<SDL::MPEG>))
* ((<SDL::MPEG::Info>))
* ((<MPEG関連メソッド>))
  * ((<SDL::MPEG.new>)) -- MPEGファイルを読み込みます。
  * ((<SDL::MPEG#info>)) -- MPEGオブジェクトの状態を返します。
  * ((<SDL::MPEG#enable_audio>)) -- 音声再生する、しないを設定します。
  * ((<SDL::MPEG#enable_video>)) -- 映像再生する/しないを設定します。
  * ((<SDL::MPEG#status>)) -- 現在の状態を返します。
  * ((<SDL::MPEG#set_volume>)) -- ボリュームを変更します。
  * ((<SDL::MPEG#set_display>)) -- 映像を描画するサーフェスを設定します。
  * ((<SDL::MPEG#set_loop>)) -- 再生をループするかどうかを指定します。
  * ((<SDL::MPEG#scale_xy>)) -- 再生映像の大きさを指定します。
  * ((<SDL::MPEG#scale>)) -- 再生画像の大きさの倍率を指定します。
  * ((<SDL::MPEG#move>)) -- 再生画像の描画位置を指定します。
  * ((<SDL::MPEG#set_display_region>)) -- 映像が描画される位置と大きさを決めます。
  * ((<SDL::MPEG#play>)) -- MPEGを再生します。
  * ((<SDL::MPEG#stop>)) -- MPEGの再生を停止します。
  * ((<SDL::MPEG#pause>)) -- MPEGの再生を一時停止/再開します。
  * ((<SDL::MPEG#rewind>)) -- MPEGの再生位置を最初に移動します。
  * ((<SDL::MPEG#seek>)) -- MPEGの再生位置を移動します。
  * ((<SDL::MPEG#skip>)) -- MPEGの再生位置を指定した秒だけ進めます。
  * ((<SDL::MPEG#render_frame>)) -- 特定のフレームを描画します。
  * ((<SDL::MPEG#render_final>)) -- 最後のフレームを描画します。
  * ((<SDL::MPEG#set_filer>)) -- 映像にかけるフィルタを指定します。
  * ((<SDL::MPEG::Info#has_audio>)) -- MPEGストリームが音声を持っているかを返します。
  * ((<SDL::MPEG::Info#has_video>)) -- MPEGストリームが映像を持っているかを返します。
  * ((<SDL::MPEG::Info#width>)) -- 映像の幅を返します。
  * ((<SDL::MPEG::Info#height>)) -- 映像の高さを返します。
  * ((<SDL::MPEG::Info#current_frame>)) -- 
  * ((<SDL::MPEG::Info#current_fps>)) -- 
  * ((<SDL::MPEG::Info#audio_string>)) -- 
  * ((<SDL::MPEG::Info#audio_current_frame>)) -- 
  * ((<SDL::MPEG::Info#current_offset>)) -- 
  * ((<SDL::MPEG::Info#total_size>)) -- 
  * ((<SDL::MPEG::Info#current_time>)) -- 
  * ((<SDL::MPEG#total_time>)) -- 
  * ((<SDL::MPEG#delete>)) -- 
  * ((<SDL::MPEG#deleted?>)) -- 

== MPEG playback機能概説
Ruby/SDLはMPEGの映像および音声を
((<SMPEG|URL:http://www.icculus.org/smpeg>))
を利用して再生することができます。

これを利用するためには、初期化時に ((<SDL.init>)) の引数として
SDL::INIT_AUDIO|SDL::INIT_VIDEO を与え、さらにその後
((<SDL::Mixer.open>)) を呼ぶ必要があります。

また、この機能は内部では OS ネイティブのスレッド機能を使い、
別スレッドで再生ルーチンを呼ぶことで実現されています。
そのため再生中は再生映像が描画されている ((<サーフェス|SDL::Surface>))
にアクセスしてはなりません。
もう一つ、 SDL_Mixer の音声再生機能をフックしているため
音声を伴う再生、つまり ((<SDL::MPEG#enable_audio>)) を真にして
((<SDL::MPEG#play>)) を呼びだした場合にはその再生中には ((<SDL::Mixer>))
での音声再生はできません。

これらの制限に対しては、一切のチェックを Ruby/SDL では行って
いません。よって MPEG 再生機能を使う場合には以上のことに
注意してください。

== SDL::MPEG
MPEGストリームを表わすクラスです。再生状態もこのクラスが
保持します。

* ((<SDL::MPEG.new>)) -- MPEGファイルを読み込みます。
* ((<SDL::MPEG#info>)) -- MPEGオブジェクトの状態を返します。
* ((<SDL::MPEG#enable_audio>)) -- 音声再生する、しないを設定します。
* ((<SDL::MPEG#enable_video>)) -- 映像再生する/しないを設定します。
* ((<SDL::MPEG#status>)) -- 現在の状態を返します。
* ((<SDL::MPEG#set_volume>)) -- ボリュームを変更します。
* ((<SDL::MPEG#set_display>)) -- 映像を描画するサーフェスを設定します。
* ((<SDL::MPEG#set_loop>)) -- 再生をループするかどうかを指定します。
* ((<SDL::MPEG#scale_xy>)) -- 再生映像の大きさを指定します。
* ((<SDL::MPEG#scale>)) -- 再生画像の大きさの倍率を指定します。
* ((<SDL::MPEG#move>)) -- 再生画像の描画位置を指定します。
* ((<SDL::MPEG#set_display_region>)) -- 映像が描画される位置と大きさを決めます。
* ((<SDL::MPEG#play>)) -- MPEGを再生します。
* ((<SDL::MPEG#stop>)) -- MPEGの再生を停止します。
* ((<SDL::MPEG#pause>)) -- MPEGの再生を一時停止/再開します。
* ((<SDL::MPEG#rewind>)) -- MPEGの再生位置を最初に移動します。
* ((<SDL::MPEG#seek>)) -- MPEGの再生位置を移動します。
* ((<SDL::MPEG#skip>)) -- MPEGの再生位置を指定した秒だけ進めます。
* ((<SDL::MPEG#render_frame>)) -- 特定のフレームを描画します。
* ((<SDL::MPEG#render_final>)) -- 最後のフレームを描画します。
* ((<SDL::MPEG#set_filer>)) -- 映像にかけるフィルタを指定します。
* ((<SDL::MPEG#total_time>)) -- 
* ((<SDL::MPEG#delete>)) -- 
* ((<SDL::MPEG#deleted?>)) -- 

== SDL::MPEG::Info
((<SDL::MPEG>)) の情報を表わすクラスです。((<SDL::MPEG#info>)) でインスタンスが
得られます。

* ((<SDL::MPEG::Info#has_audio>)) -- MPEGストリームが音声を持っているかを返します。
* ((<SDL::MPEG::Info#has_video>)) -- MPEGストリームが映像を持っているかを返します。
* ((<SDL::MPEG::Info#width>)) -- 映像の幅を返します。
* ((<SDL::MPEG::Info#height>)) -- 映像の高さを返します。
* ((<SDL::MPEG::Info#current_frame>)) -- 
* ((<SDL::MPEG::Info#current_fps>)) -- 
* ((<SDL::MPEG::Info#audio_string>)) -- 
* ((<SDL::MPEG::Info#audio_current_frame>)) -- 
* ((<SDL::MPEG::Info#current_offset>)) -- 
* ((<SDL::MPEG::Info#total_size>)) -- 
* ((<SDL::MPEG::Info#current_time>)) -- 

== MPEG関連メソッド

--- SDL::MPEG.new(filename)
--- SDL::MPEG.load(filename)

    ((|filename|)) で指定したMPEGファイルを読み込み、
    ((<SDL::MPEG>)) の新しいインスタンスを返します。

    失敗したときには例外((<SDL::Error>))を発生させます。


    このメソッドを使うには SMPEG が必要です。
    * See Also
      
      ((<SDL::MPEG#info>)), ((<SDL::MPEG#play>))

--- SDL::MPEG#info

    MPEGオブジェクトの現在の状態を ((<SDL::MPEG::Info>)) のインスタンスで返します。


    このメソッドを使うには SMPEG が必要です。
    * See Also
      
      ((<SDL::MPEG::Info>))

--- SDL::MPEG#enable_audio(enable)
--- SDL::MPEG#enableAudio(enable)

    ((|self|)) を再生するときに音声を再生するかどうかを指定します。
    ((|enable|)) に true を与えると再生し、false を与えると再生
    しないように設定します。これを使い映像のみを再生することができます。


    このメソッドを使うには SMPEG が必要です。
    * NOTES

      このメソッドは演奏中に呼びだしても効果を発揮しません。一度演奏を
      停止し、再び演奏を開始して始めてこの指定が有効になります。

    * See Also
      
      ((<SDL::MPEG#enable_video>)), ((<SDL::MPEG#info>))

--- SDL::MPEG#enable_video(enable)
--- SDL::MPEG#enableVideo(enable)

    ((|self|)) を再生するときに映像を再生するかどうかを指定します。
    ((|enable|)) に true を与えると再生し、false を与えると再生
    しないように設定します。これを使い音声のみを再生することが
    できます。


    このメソッドを使うには SMPEG が必要です。
    * See Also
      
      ((<SDL::MPEG#enable_audio>)), ((<SDL::MPEG#info>))

--- SDL::MPEG#status

    ((|self|)) の現在の状態を以下の3種類の値で返します。
    * SDL::MEPG::ERROR - エラーが生じている
    * SDL::MPEG::STOPPED - 演奏停止中
    * SDL::MPEG::PLAYING - 演奏中


    このメソッドを使うには SMPEG が必要です。
    * See Also
      
      ((<SDL::MPEG#info>))

--- SDL::MPEG#set_volume(volume)
--- SDL::MPEG#setVolume(volume)

    MPEG音声のボリュームを0から100までの値で指定します。


    このメソッドを使うには SMPEG が必要です。
    * NOTES

      現在設定されているボリュームの大きさを得る方法はありません。

    * See Also
      
      ((<SDL::MPEG#enable_audio>))

--- SDL::MPEG#set_display(surface)
--- SDL::MPEG#setDisplay(surface)

    再生された映像を描画する((<サーフェス|SDL::Surface>))を設定します。これには通常
    ((<SDL.set_video_mode>)) で得たサーフェスを与えます。


    このメソッドを使うには SMPEG が必要です。
    * NOTES

      これで指定したサーフェスは再生時に自動で ((<SDL::Screen#update_rect>)) が
      呼ばれます。

    * See Also
      
      ((<SDL::Surface>)), ((<SDL::MPEG#play>))

--- SDL::MPEG#set_loop(repeat)
--- SDL::MPEG#setLoop(repeat)

    再生をループするかどうかを指定します。。
    ((|repeat|)) に true/false を与えるとループする/しないとなります。


    このメソッドを使うには SMPEG が必要です。
    * See Also
      
      ((<SDL::MPEG#play>))

--- SDL::MPEG#scale_xy(width, height)
--- SDL::MPEG#scaleXY(width, height)

    再生する映像の大きさを横 ((|width|)) ピクセル、縦 ((|height|)) ピクセルに指定します。


    このメソッドを使うには SMPEG が必要です。
    * See Also
      
      ((<SDL::MPEG#scale>)), ((<SDL::MPEG#set_display_region>))

--- SDL::MPEG#scale(scale)

    再生する画像の大きさを縦横 ((|scale|)) 倍にします。


    このメソッドを使うには SMPEG が必要です。
    * See Also
      
      ((<SDL::MPEG#scale_xy>))

--- SDL::MPEG#move(x, y)

    再生画像の描画位置を ((<SDL::MPEG#set_display>)) で指定した描画先サーフェスの
    (((|x|)), ((|y|))) に指定します。


    このメソッドを使うには SMPEG が必要です。
    * See Also
      
      ((<SDL::MPEG#set_display>)), ((<SDL::MPEG#set_display_region>))

--- SDL::MPEG#set_display_region(x, y, w, h)

    映像が描画される位置を(((|x|)), ((|y|)))、大きさを(((|w|)), ((|h|)))
    にします。


    このメソッドを使うには SMPEG が必要です。
    * See Also
      
      ((<SDL::MPEG#move>)), ((<SDL::MPEG#scale_xy>))

--- SDL::MPEG#play

    MPEGを再生します。


    このメソッドを使うには SMPEG が必要です。
    * NOTES

      再生中は ((<SDL::MPEG#set_display>)) で指定したサーフェスには
      触れないでください。

    * See Also
      
      ((<SDL::MPEG#pause>)), ((<SDL::MPEG#stop>)), ((<SDL::MPEG#rewind>)), ((<SDL::MPEG#seek>)), ((<SDL::MPEG#skip>)), ((<SDL::MPEG#render_frame>))

--- SDL::MPEG#stop

    MPEGの再生を停止します。


    このメソッドを使うには SMPEG が必要です。
    * See Also
      
      ((<SDL::MPEG#play>))

--- SDL::MPEG#pause

    MPEGの再生中にを一時停止/再開します。再生中なら一時停止、
    一時停止中なら再開します。


    このメソッドを使うには SMPEG が必要です。
--- SDL::MPEG#rewind

    MPEGの再生位置を最初に移動します。


    このメソッドを使うには SMPEG が必要です。
--- SDL::MPEG#seek(bytes)

    MPEGの再生位置を ((|bytes|)) ((*バイト*)) シークします。


    このメソッドを使うには SMPEG が必要です。
    * See Also
      
      ((<SDL::MPEG#play>)), ((<SDL::MPEG#skip>))

--- SDL::MPEG#skip(seconds)

    MPEGの再生位置を ((|seconds|)) 秒進めます。 ((|seconds|)) には Float
    が指定できます。


    このメソッドを使うには SMPEG が必要です。
    * See Also
      
      ((<SDL::MPEG#play>)), ((<SDL::MPEG#seek>))

--- SDL::MPEG#render_frame(framenum)

    MPEGの中の ((|framenum|)) で指定したフレームを ((<SDL::MPEG#set_display>)) で指定した
    サーフェスの ((<SDL::MPEG#move>)) で指定した位置に描画します。


    このメソッドを使うには SMPEG が必要です。
    * See Also
      
      ((<SDL::MPEG#render_final>)), ((<SDL::MPEG#play>))

--- SDL::MPEG#render_final(dst, x, y)

    MPEGの映像の最後のフレームを ((|dst|)) で指定した((<サーフェス|SDL::Surface>))の
    (((|x|)), ((|y|)))の位置に描画します。


    このメソッドを使うには SMPEG が必要です。
--- SDL::MPEG#set_filer(filter)

    映像にかけるフィルタを以下の中から指定します。
    * SDL::MPEG::NULL_FILTER フィルタなし
    * SDL::MPEG::BILIEAR_FILTER 双線型フィルタ
    * SDL::MPEG::DEBLOCKING_FILTER ブロックノイズ軽減フィルタ


    このメソッドを使うには SMPEG が必要です。
--- SDL::MPEG::Info#has_audio

    MPEGストリームが音声を持っているかを true/false で返します。


    このメソッドを使うには SMPEG が必要です。
--- SDL::MPEG::Info#has_video

    MPEGストリームが映像を持っているかを true/false で返します。


    このメソッドを使うには SMPEG が必要です。
--- SDL::MPEG::Info#width

    映像の幅をピクセル数で返します。


    このメソッドを使うには SMPEG が必要です。
--- SDL::MPEG::Info#height

    映像の高さをピクセル数で返します。


    このメソッドを使うには SMPEG が必要です。
--- SDL::MPEG::Info#current_frame

    not documented yet


    このメソッドを使うには SMPEG が必要です。
--- SDL::MPEG::Info#current_fps

    not documented yet


    このメソッドを使うには SMPEG が必要です。
--- SDL::MPEG::Info#audio_string

    not documented yet


    このメソッドを使うには SMPEG が必要です。
--- SDL::MPEG::Info#audio_current_frame

    not documented yet


    このメソッドを使うには SMPEG が必要です。
--- SDL::MPEG::Info#current_offset

    not documented yet


    このメソッドを使うには SMPEG が必要です。
--- SDL::MPEG::Info#total_size

    not documented yet


    このメソッドを使うには SMPEG が必要です。
--- SDL::MPEG::Info#current_time

    not documented yet


    このメソッドを使うには SMPEG が必要です。
--- SDL::MPEG#total_time

    not documented yet


    このメソッドを使うには SMPEG が必要です。
--- SDL::MPEG#delete

    not documented yet


    このメソッドを使うには SMPEG が必要です。
--- SDL::MPEG#deleted?

    not documented yet


    このメソッドを使うには SMPEG が必要です。
