-/**
- @addtogroup PLAYER
- @{
-
- @par
- This part describes APIs used for playback of multimedia contents.
- All multimedia contents are created by a media player through handle of playback.
- In creating a player, it displays the player's status or information
- by registering callback function.
-
- @par
- In case of streaming playback, network has to be opend by using datanetwork API.
- If proxy, cookies and the other attributes for streaming playback are needed,
- set those attributes using mm_player_set_attribute() before create player.
-
- @par
- The subtitle for local video playback is supported. Set "subtitle_uri" attribute
- using mm_player_set_attribute() before the application creates the player.
- Then the application could receive MMMessageParamType which includes subtitle string and duration.
-
- @par
- Player can have 5 states, and each state can be changed by calling
- described functions on "Figure1. State of Player".
-
- @par
- @image html player_state.jpg "Figure1. State of Player" width=12cm
- @image latex player_state.jpg "Figure1. State of Player" width=12cm
-
- @par
- Most of functions which change player state work as synchronous. But, mm_player_start() should be used
- asynchronously. Both mm_player_pause() and mm_player_resume() should also be used asynchronously
- in the case of streaming data.
- So, application have to confirm the result of those APIs through message callback function.
-
- @par
- Note that "None" and Null" state could be reached from any state
- by calling mm_player_destroy() and mm_player_unrealize().
-
- @par
- <div><table>
- <tr>
- <td><B>FUNCTION</B></td>
- <td><B>PRE-STATE</B></td>
- <td><B>POST-STATE</B></td>
- <td><B>SYNC TYPE</B></td>
- </tr>
- <tr>
- <td>mm_player_create()</td>
- <td>NONE</td>
- <td>NULL</td>
- <td>SYNC</td>
- </tr>
- <tr>
- <td>mm_player_destroy()</td>
- <td>NULL</td>
- <td>NONE</td>
- <td>SYNC</td>
- </tr>
- <tr>
- <td>mm_player_realize()</td>
- <td>NULL</td>
- <td>READY</td>
- <td>SYNC</td>
- </tr>
- <tr>
- <td>mm_player_unrealize()</td>
- <td>READY</td>
- <td>NULL</td>
- <td>SYNC</td>
- </tr>
- <tr>
- <td>mm_player_start()</td>
- <td>READY</td>
- <td>PLAYING</td>
- <td>ASYNC</td>
- </tr>
- <tr>
- <td>mm_player_stop()</td>
- <td>PLAYING</td>
- <td>READY</td>
- <td>SYNC</td>
- </tr>
- <tr>
- <td>mm_player_pause()</td>
- <td>PLAYING</td>
- <td>PAUSED</td>
- <td>ASYNC</td>
- </tr>
- <tr>
- <td>mm_player_resume()</td>
- <td>PAUSED</td>
- <td>PLAYING</td>
- <td>ASYNC</td>
- </tr>
- <tr>
- <td>mm_player_set_message_callback()</td>
- <td>N/A</td>
- <td>N/A</td>
- <td>SYNC</td>
- </tr>
- <tr>
- <td>mm_player_get_state()</td>
- <td>N/A</td>
- <td>N/A</td>
- <td>SYNC</td>
- </tr>
- <tr>
- <td>mm_player_set_volume()</td>
- <td>N/A</td>
- <td>N/A</td>
- <td>SYNC</td>
- </tr>
- <tr>
- <td>mm_player_get_volume()</td>
- <td>N/A</td>
- <td>N/A</td>
- <td>SYNC</td>
- </tr>
- <tr>
- <td>mm_player_set_position()</td>
- <td>N/A</td>
- <td>N/A</td>
- <td>SYNC</td>
- </tr>
- <tr>
- <td>mm_player_get_position()</td>
- <td>N/A</td>
- <td>N/A</td>
- <td>SYNC</td>
- </tr>
- <tr>
- <td>mm_player_get_attribute()</td>
- <td>N/A</td>
- <td>N/A</td>
- <td>SYNC</td>
- </tr>
- <tr>
- <td>mm_player_set_attribute()</td>
- <td>N/A</td>
- <td>N/A</td>
- <td>SYNC</td>
- </tr>
- </table></div>
-
- @par
- Following are the attributes supported in player which may be set after initialization. \n
- Those are handled as a string.
-
- @par
- <div><table>
- <tr>
- <td>PROPERTY</td>
- <td>TYPE</td>
- <td>VALID TYPE</td>
- </tr>
- <tr>
- <td>"profile_uri"</td>
- <td>string</td>
- <td>N/A</td>
- </tr>
- <tr>
- <td>"content_duration"</td>
- <td>int</td>
- <td>range</td>
- </tr>
- <tr>
- <td>"content_video_width"</td>
- <td>int</td>
- <td>range</td>
- </tr>
- <tr>
- <td>"content_video_height"</td>
- <td>int</td>
- <td>range</td>
- </tr>
- <tr>
- <td>"display_evas_do_scaling"</td>
- <td>int</td>
- <td>range</td>
- </tr>
- <tr>
- <td>"display_evas_surface_sink"</td>
- <td>string</td>
- <td>N/A</td>
- </tr>
- <tr>
- <td>"profile_user_param"</td>
- <td>data</td>
- <td>N/A</td>
- </tr>
- <tr>
- <td>"profile_play_count"</td>
- <td>int</td>
- <td>range</td>
- </tr>
- <tr>
- <td>"streaming_type"</td>
- <td>int</td>
- <td>range</td>
- </tr>
- <tr>
- <td>"streaming_udp_timeout"</td>
- <td>int</td>
- <td>range</td>
- </tr>
- <tr>
- <td>"streaming_user_agent"</td>
- <td>string</td>
- <td>N/A</td>
- </tr>
- <tr>
- <td>"streaming_wap_profile"</td>
- <td>string</td>
- <td>N/A</td>
- </tr>
- <tr>
- <td>"streaming_network_bandwidth"</td>
- <td>int</td>
- <td>range</td>
- </tr>
- <tr>
- <td>"streaming_cookie"</td>
- <td>string</td>
- <td>N/A</td>
- </tr>
- <tr>
- <td>"streaming_proxy_ip"</td>
- <td>string</td>
- <td>N/A</td>
- </tr>
- <tr>
- <td>"streaming_proxy_port"</td>
- <td>int</td>
- <td>range</td>
- </tr>
- <tr>
- <td>"streaming_timeout"</td>
- <td>int</td>
- <td>range</td>
- </tr>
- <tr>
- <td>"display_overlay"</td>
- <td>data</td>
- <td>N/A</td>
- </tr>
- <tr>
- <td>"display_rotation"</td>
- <td>int</td>
- <td>range</td>
- </tr>
- <tr>
- <td>"subtitle_uri"</td>
- <td>string</td>
- <td>N/A</td>
- </tr>
- </table></div>
-
- @par
- Following attributes are supported for playing stream data. Those value can be readable only and valid after starting playback.\n
- Please use mm_fileinfo for local playback.
-
- @par
- <div><table>
- <tr>
- <td>PROPERTY</td>
- <td>TYPE</td>
- <td>VALID TYPE</td>
- </tr>
- <tr>
- <td>"content_video_found"</td>
- <td>string</td>
- <td>N/A</td>
- </tr>
- <tr>
- <td>"content_video_codec"</td>
- <td>string</td>
- <td>N/A</td>
- </tr>
- <tr>
- <td>"content_video_track_num"</td>
- <td>int</td>
- <td>range</td>
- </tr>
- <tr>
- <td>"content_audio_found"</td>
- <td>string</td>
- <td>N/A</td>
- </tr>
- <tr>
- <td>"content_audio_codec"</td>
- <td>string</td>
- <td>N/A</td>
- </tr>
- <tr>
- <td>"content_audio_bitrate"</td>
- <td>int</td>
- <td>array</td>
- </tr>
- <tr>
- <td>"content_audio_channels"</td>
- <td>int</td>
- <td>range</td>
- </tr>
- <tr>
- <td>"content_audio_samplerate"</td>
- <td>int</td>
- <td>array</td>
- </tr>
- <tr>
- <td>"content_audio_track_num"</td>
- <td>int</td>
- <td>range</td>
- </tr>
- <tr>
- <td>"content_text_track_num"</td>
- <td>int</td>
- <td>range</td>
- </tr>
- <tr>
- <td>"tag_artist"</td>
- <td>string</td>
- <td>N/A</td>
- </tr>
- <tr>
- <td>"tag_title"</td>
- <td>string</td>
- <td>N/A</td>
- </tr>
- <tr>
- <td>"tag_album"</td>
- <td>string</td>
- <td>N/A</td>
- </tr>
- <tr>
- <td>"tag_genre"</td>
- <td>string</td>
- <td>N/A</td>
- </tr>
- <tr>
- <td>"tag_author"</td>
- <td>string</td>
- <td>N/A</td>
- </tr>
- <tr>
- <td>"tag_copyright"</td>
- <td>string</td>
- <td>N/A</td>
- </tr>
- <tr>
- <td>"tag_date"</td>
- <td>string</td>
- <td>N/A</td>
- </tr>
- <tr>
- <td>"tag_description"</td>
- <td>string</td>
- <td>N/A</td>
- </tr>
- <tr>
- <td>"tag_track_num"</td>
- <td>int</td>
- <td>range</td>
- </tr>
- </table></div>
-
- */
-
-