* </tr>
* <tr>
* <td>player_destroy()</td>
- * <td>ANY</td>
- * <td>-</td>
+ * <td>IDLE/ READY/ PLAYING/ PAUSED</td>
+ * <td>This function must be called after player_create()</td>
* </tr>
* <tr>
* <td>player_prepare()</td>
* </tr>
* <tr>
* <td>player_unprepare()</td>
- * <td>READY/PAUSED/PLAYING</td>
- * <td>This function must be called after player_stop() or player_start() or player_pause()</td>
+ * <td>READY/ PLAYING/ PAUSED</td>
+ * <td>This function must be called after player_prepare()</td>
* </tr>
* <tr>
* <td>player_start()</td>
* <td>This function must be called after player_create()</td>
* </tr>
* <tr>
- * <td>player_unset_completed_cb()<BR> player_unset_interrupted_cb()<BR> player_unset_error_cb()<BR> player_unset_buffering_cb()<BR> player_unset_subtitle_updated_cb()</td>
+ * <td>player_set_video_stream_changed_cb()<BR>player_set_media_stream_seek_cb()<BR>player_set_media_stream_buffer_status_cb()<BR>player_set_media_packet_video_frame_decoded_cb()</td>
+ * <td>IDLE</td>
+ * <td>This function must be called before player_prepare()</td>
+ * </tr>
+ * <tr>
+ * <td>player_unset_completed_cb()<BR> player_unset_interrupted_cb()<BR> player_unset_error_cb()<BR> player_unset_buffering_cb()<BR> player_unset_subtitle_updated_cb()<BR>player_unset_video_stream_changed_cb()<BR>player_unset_media_stream_seek_cb()<BR>player_unset_media_stream_buffer_status_cb()</td>
* <td>IDLE/ READY/ PLAYING/ PAUSED</td>
* <td>This function must be called after register callback functions such as player_set_completed_cb()</td>
* </tr>
* <tr>
+ * <td>player_unset_media_packet_video_frame_decoded_cb()</td>
+ * <td>IDLE/ READY</td>
+ * <td>This function must be called after player_set_media_packet_video_frame_decoded_cb()</td>
+ * </tr>
+ * <tr>
* <td>player_get_state()</td>
* <td>ANY</td>
* <td>-</td>
* </tr>
* <tr>
* <td>player_set_subtitle_path()</td>
- * <td>IDLE</td>
- * <td>This function must be called before player_prepare() </td>
+ * <td>IDLE/ READY/ PLAYING/ PAUSED</td>
+ * <td>This function must be called before player_create() </td>
* </tr>
* <tr>
* <td>player_set_volume()</td>
* <tr>
* <td>player_set_sound_stream_info()</td>
* <td>IDLE</td>
- * <td>This function must be called after player_create()</td>
+ * <td>This function must be called before player_prepare()</td>
* </tr>
* <tr>
* <td>player_set_sound_type()</td>
* <td>IDLE</td>
- * <td>This function must be called after player_create()</td>
+ * <td>This function must be called before player_prepare()</td>
* </tr>
* <tr>
* <td>player_set_mute()</td>
* <td>READY/ PLAYING/ PAUSED</td>
* <td>This function must be called after player_prepare()</td>
* </tr>
+ * <tr>
+ * <td>player_set_subtitle_position_offset()</td>
+ * <td>PLAYING/ PAUSED</td>
+ * <td>This function must be called after player_start()</td>
+ * </tr>
+ * <tr>
+ * <td>player_get_current_track()<BR>player_get_track_language_code()<BR>player_get_track_count()<BR>player_select_track()</td>
+ * <td>READY/ PLAYING/ PAUSED</td>
+ * <td>This function must be called after player_prepare()</td>
+ * </tr>
+ * <tr>
+ * <td>player_set_audio_only()</td>
+ * <td>READY/ PLAYING/ PAUSED</td>
+ * <td>This function must be called after player_prepare()</td>
+ * </tr>
+ * <tr>
+ * <td>player_set_streaming_buffering_time()</td>
+ * <td>IDLE</td>
+ * <td>This function must be called before player_prepare()</td>
+ * </tr>
* </table></div>
*
* @subsection CAPI_MEDIA_PLAYER_LIFE_CYCLE_ASYNCHRONOUS_OPERATIONS Asynchronous Operations
* <td>player_media_packet_video_decoded_cb()</td>
* <td>called when a video frame is decoded </td>
* </tr>
+ * <tr>
+ * <td>player_set_media_stream_seek_cb()</td>
+ * <td>player_unset_media_stream_seek_cb()</td>
+ * <td>player_media_stream_seek_cb()</td>
+ * <td>called when seeking is occurred during playback with external media buffer</td>
+ * </tr>
+ * <tr>
+ * <td>player_set_media_stream_buffer_status_cb()</td>
+ * <td>player_unset_media_stream_buffer_status_cb()</td>
+ * <td>player_media_stream_buffer_status_cb()</td>
+ * <td>called when the buffer underrun or overflow is detected during playback with external media buffer</td>
+ * </tr>
+ * <tr>
+ * <td>player_set_video_stream_changed_cb()</td>
+ * <td>player_unset_video_stream_changed_cb()</td>
+ * <td>player_video_stream_changed_cb()</td>
+ * <td>called when the video stream info is changed </td>
+ * </tr>
*</table></div>
*
*
* @section CAPI_MEDIA_PLAYER_AUDIO_EFFECT_MODULE_MODULE_OVERVIEW Overview
* The Audio effect API allows you to apply effects to the player:
- * - Equalizer
+ * - Equalizer \n
*
*
*/
*
*/
+/**
+ * @ingroup CAPI_MEDIA_PLAYER_MODULE
+ * @defgroup CAPI_MEDIA_PLAYER_STREAMING_MODULE Streaming
+ * @brief The @ref CAPI_MEDIA_PLAYER_STREAMING_MODULE API provides functions for streaming playback and buffering controlling.
+ * @section CAPI_MEDIA_PLAYER_STREAMING_MODULE_HEADER Required Header
+ * \#include <player.h>
+ *
+ * @section CAPI_MEDIA_PLAYER_STREAMING_MODULE_OVERVIEW Overview
+ * The streaming API allows you to set and get various properties to setup network connection and control buffering scheme:
+ * - connection information, such as cookie, user_agent.
+ * - buffering information, such as time, percent, progress.
+ * - variant information of adaptive streaming content, such as bandwidth, resolution.
+ *
+*/
+
+/**
+ * @ingroup CAPI_MEDIA_PLAYER_MODULE
+ * @defgroup CAPI_MEDIA_PLAYER_360_MODULE Video360
+ * @brief The @ref CAPI_MEDIA_PLAYER_360_MODULE API provides functions for 360 video playback and controlling the attributes.
+ * @section CAPI_MEDIA_PLAYER_360_MODULE_HEADER Required Header
+ * \#include <player.h>
+ *
+ * @section CAPI_MEDIA_PLAYER_360_MODULE_OVERVIEW Overview
+ * The Player stream information API allows you to get media stream information, including:
+ * - Content metadata, such as the tile, artist, album title and genre.
+ * - Audio stream information, such as audio codec type, sample rate, channels, and bit rate.
+ * - Video stream information, such as video codec type, video width and height.
+ *
+*/
+
#endif /* __TIZEN_MEDIA_PLAYER_DOC_H__ */
PLAYER_MEDIA_STREAM_BUFFER_OVERFLOW, /**< The buffer level is over than the threshold */
} player_media_stream_buffer_status_e;
+/**
+ * @}
+ */
+
+/**
+ * @addtogroup CAPI_MEDIA_PLAYER_DISPLAY_MODULE
+ * @{
+ */
+
/**
* @brief The player display handle.
* @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
#define GET_DISPLAY(x) (void*)(x)
#endif
-/**
- * @}
- */
-
-/**
- * @addtogroup CAPI_MEDIA_PLAYER_DISPLAY_MODULE
- * @{
- */
-
/**
* @brief Enumeration for display rotation type.
* @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
*/
typedef void (*player_error_cb)(int error_code, void *user_data);
-/**
- * @brief Called when the buffering percentage of the media playback is updated.
- * @details If the buffer is full, it will return 100%.
- * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
- * @param[in] percent The percentage of buffering completed (0~100)
- * @param[in] user_data The user data passed from the callback registration function
- * @see player_set_buffering_cb()
- * @see player_unset_buffering_cb()
- */
-typedef void (*player_buffering_cb)(int percent, void *user_data);
-
-/**
- * @brief Called when progressive download is started or completed.
- * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
- * @param[in] type The message type for progressive download
- * @param[in] user_data The user data passed from the callback registration function
- */
-typedef void (*player_pd_message_cb)(player_pd_message_type_e type, void *user_data);
-
/**
* @brief Called when the video is captured.
* @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
*/
typedef void (*player_media_stream_seek_cb) (unsigned long long offset, void *user_data);
+/**
+ * @}
+ */
+
+/**
+ * @addtogroup CAPI_MEDIA_PLAYER_STREAM_INFO_MODULE
+ * @{
+ */
+
/**
* @brief Called to notify the video stream changed.
* @details The video stream changing is detected just before rendering operation.
*/
typedef void (*player_video_stream_changed_cb) (int width, int height, int fps, int bit_rate, void *user_data);
+/**
+ * @}
+ */
+
+/**
+ * @addtogroup CAPI_MEDIA_PLAYER_STREAMING_MODULE
+ * @{
+ */
+
+/**
+ * @brief Called when the buffering percentage of the media playback is updated.
+ * @details If the buffer is full, it will return 100%.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @param[in] percent The percentage of buffering completed (0~100)
+ * @param[in] user_data The user data passed from the callback registration function
+ * @see player_set_buffering_cb()
+ * @see player_unset_buffering_cb()
+ */
+typedef void (*player_buffering_cb)(int percent, void *user_data);
+
+/**
+ * @brief Called when progressive download is started or completed.
+ * @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
+ * @param[in] type The message type for progressive download
+ * @param[in] user_data The user data passed from the callback registration function
+ */
+typedef void (*player_pd_message_cb)(player_pd_message_type_e type, void *user_data);
+
/**
* @brief Called to notify the streaming variant information.
* @details The adaptive streaming protocol(hls, mpeg dash) can support variant stream condition.
*/
typedef void (*player_adaptive_variant_cb) (int bandwidth, int width, int height, void *user_data);
+/**
+ * @}
+ */
+
+/**
+ * @addtogroup CAPI_MEDIA_PLAYER_MODULE
+ * @{
+ */
+
/**
* @brief Creates a player handle for playing multimedia content.
* @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
*/
int player_capture_video(player_h player, player_video_captured_cb callback, void *user_data);
+/**
+ * @}
+ */
+
+/**
+ * @addtogroup CAPI_MEDIA_PLAYER_STREAMING_MODULE
+ * @{
+ */
+
/**
* @brief Sets the cookie for streaming playback.
* @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
*/
int player_get_streaming_download_progress(player_h player, int *start, int *current);
+/**
+ * @}
+ */
+
+/**
+ * @addtogroup CAPI_MEDIA_PLAYER_MODULE
+ * @{
+ */
+
/**
* @brief Sets a callback function to be invoked when the playback is finished.
* @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
*/
int player_unset_error_cb(player_h player);
+/**
+ * @}
+ */
+
+/**
+ * @addtogroup CAPI_MEDIA_PLAYER_STREAMING_MODULE
+ * @{
+ */
+
/**
* @brief Sets a callback function to be invoked when there is a change in the buffering status of a media stream.
* @since_tizen @if WEARABLE 2.3.1 @else 2.3 @endif
*/
int player_unset_progressive_download_message_cb(player_h player) TIZEN_DEPRECATED_API;
+/**
+ * @}
+ */
+
+/**
+ * @addtogroup CAPI_MEDIA_PLAYER_MODULE
+ * @{
+ */
+
/**
* @brief Sets the playback rate.
* @details The default value is @c 1.0.
*/
int player_set_subtitle_position_offset(player_h player, int millisecond);
+/**
+ * @}
+ */
+
+
+/**
+ * @addtogroup CAPI_MEDIA_PLAYER_STREAM_INFO_MODULE
+ * @{
+ */
+
/**
* @brief Sets a callback function to be invoked when video stream is changed.
* @since_tizen @if WEARABLE 3.0 @else 2.4 @endif
*/
int player_unset_video_stream_changed_cb(player_h player);
+/**
+ * @}
+ */
+
+
+/**
+ * @addtogroup CAPI_MEDIA_PLAYER_MODULE
+ * @{
+ */
+
/**
* @brief Gets current track index.
* @details Index starts from 0.
*/
int player_select_track(player_h player, player_stream_type_e type, int index);
+/**
+ * @}
+ */
+
+/**
+ * @addtogroup CAPI_MEDIA_PLAYER_STREAMING_MODULE
+ * @{
+ */
+
/**
* @brief Retrieves all the streaming variant information.
* @since_tizen 4.0
*/
int player_get_max_adaptive_variant_limit(player_h player, int *bandwidth, int *width, int *height);
+/**
+ * @}
+ */
+
+/**
+ * @addtogroup CAPI_MEDIA_PLAYER_MODULE
+ * @{
+ */
+
/**
* @brief Sets the audio only mode.
* @details This function is used to disable or enable video rendering during playback.
*/
int player_is_audio_only(player_h player, bool *audio_only);
+/**
+ * @}
+ */
+
+/**
+ * @addtogroup CAPI_MEDIA_PLAYER_STREAMING_MODULE
+ * @{
+ */
+
/**
* @brief Sets the streaming buffering time.
* @since_tizen 4.0
*/
int player_get_streaming_buffering_time(player_h player, int *prebuffer_ms, int *rebuffer_ms);
+/**
+ * @}
+ */
+
+/**
+ * @addtogroup CAPI_MEDIA_PLAYER_360_MODULE
+ * @{
+ */
+
/**
* @brief Gets information whether the current content of the player is spherical.
* @since_tizen 5.0