[0.6.286] Change the property name for setting max-bitrate used in adaptivedemux
[platform/core/multimedia/libmm-player.git] / src / include / mm_player.h
index 2836928..6ca6646 100644 (file)
  *
  */
 #define MM_PLAYER_VIDEO_HEIGHT              "content_video_height"
+
+/**
+ * MM_PLAYER_VIDEO_FPS:
+ */
+#define MM_PLAYER_VIDEO_FPS                 "content_video_fps"
+
+/**
+ * MM_PLAYER_VIDEO_BITRATE:
+ */
+#define MM_PLAYER_VIDEO_BITRATE             "content_video_bitrate"
+
 /**
  * MM_PLAYER_VIDEO_EVAS_SURFACE_SINK:
  *
  */
 #define MM_PLAYER_TAG_DATE                  "tag_date"
 /**
- * MM_PLAYER_TAG_DESCRIPRION
+ * MM_PLAYER_TAG_DESCRIPTION
  *
  * short text describing the content of the data (string)
  */
-#define MM_PLAYER_TAG_DESCRIPRION           "tag_description"
+#define MM_PLAYER_TAG_DESCRIPTION           "tag_description"
 /**
  * MM_PLAYER_TAG_TRACK_NUM
  *
  */
 #define MM_PLAYER_AUDIO_CODEC_TYPE          "audio_codec_type"
 
-#define BUFFER_MAX_PLANE_NUM (4)
+/**
+ * MM_PLAYER_VIDEO_BUFFER_TOTAL_SIZE (int)
+ */
+#define MM_PLAYER_VIDEO_BUFFER_TOTAL_SIZE   "video_buffer_total_size"
 
-typedef struct {
-       MMPixelFormatType format;              /**< image format */
-       int width;                             /**< width of video buffer */
-       int height;                            /**< height of video buffer */
-       unsigned int timestamp;                /**< timestamp of stream buffer (msec)*/
-       unsigned int length_total;             /**< total length of stream buffer (in byte)*/
-       void *data[BUFFER_MAX_PLANE_NUM];
-       void *bo[BUFFER_MAX_PLANE_NUM];        /**< TBM buffer object */
-       void *internal_buffer;                 /**< Internal buffer pointer */
-       int stride[BUFFER_MAX_PLANE_NUM];      /**< stride of plane */
-       int elevation[BUFFER_MAX_PLANE_NUM];   /**< elevation of plane */
-       int orientation;                       /**< orientation */
-       int bo_size;                           /**< TBM buffer object size */
-} MMPlayerVideoStreamDataType;
+/**
+ * MM_PLAYER_VIDEO_BUFFER_EXTRA_SIZE (int)
+ */
+#define MM_PLAYER_VIDEO_BUFFER_EXTRA_SIZE   "video_buffer_extra_size"
+
+/**
+ * MM_PLAYER_PREBUFFER_MS
+ *
+ * prebuffer ms (int)
+ */
+#define MM_PLAYER_PREBUFFER_MS              "prebuffer_ms"
+
+/**
+ * MM_PLAYER_REBUFFER_MS
+ *
+ * rebuffer ms (int)
+ */
+#define MM_PLAYER_REBUFFER_MS               "rebuffer_ms"
+
+/**
+ * MM_PLAYER_AUDIO_OFFLOAD (int)
+ */
+#define MM_PLAYER_AUDIO_OFFLOAD             "audio_offload"
+
+/**
+ * MM_PLAYER_AUDIO_OFFLOAD_FORMAT (int array)
+ */
+#define MM_PLAYER_AUDIO_OFFLOAD_FORMAT      "audio_offload_format"
+
+/**
+ * MM_PLAYER_PITCH_CONTROL (int)
+ */
+#define MM_PLAYER_PITCH_CONTROL             "pitch_control"
+
+/**
+ * MM_PLAYER_PITCH_VALUE (double)
+ */
+#define MM_PLAYER_PITCH_VALUE               "pitch_value"
+
+/**
+ * MM_PLAYER_PCM_EXT_FORMAT (string)
+ */
+#define MM_PLAYER_PCM_EXT_FORMAT            "pcm_extraction_format"
+
+/**
+ * MM_PLAYER_PCM_EXT_CHANNELS (int)
+ */
+#define MM_PLAYER_PCM_EXT_CHANNELS          "pcm_extraction_channels"
+
+/**
+ * MM_PLAYER_PCM_EXT_SAMPLERATE (int)
+ */
+#define MM_PLAYER_PCM_EXT_SAMPLERATE        "pcm_extraction_samplerate"
+
+/**
+ * MM_PLAYER_MEDIA_STREAM_INPUT_FORMAT (int array)
+ */
+#define MM_PLAYER_MEDIA_STREAM_INPUT_FORMAT "media_stream_input_format"
+
+/**
+ * MM_PLAYER_AUDIO_ONLY (int)
+ */
+#define MM_PLAYER_AUDIO_ONLY                "audio_only"
+
+#define BUFFER_MAX_PLANE_NUM (4)
 
 /**
  * Enumerations of player state.
@@ -268,16 +333,7 @@ typedef enum {
        MM_PLAYER_STATE_PAUSED,                         /**< Player is paused while playing media */
        MM_PLAYER_STATE_NONE,                           /**< Player is not created yet */
        MM_PLAYER_STATE_NUM,                            /**< Number of player states */
-} MMPlayerStateType;
-
-/**
- * Enumerations of position formats.
- */
-typedef enum {
-       MM_PLAYER_POS_FORMAT_TIME,                      /**< Format for time based */
-       MM_PLAYER_POS_FORMAT_PERCENT,                   /**< Format for percentage */
-       MM_PLAYER_POS_FORMAT_NUM,                       /**< Number of position formats */
-} MMPlayerPosFormatType;
+} mmplayer_state_e;
 
 /**
  * Enumeration for attribute values types.
@@ -291,7 +347,7 @@ typedef enum {
        MM_PLAYER_ATTRS_TYPE_ARRAY,               /**< Array type */
        MM_PLAYER_ATTRS_TYPE_RANGE,               /**< Range type */
        MM_PLAYER_ATTRS_TYPE_NUM,                 /**< Number of attribute type */
-} MMPlayerAttrsType;
+} mmplayer_attrs_type_e;
 
 /**
  * Enumeration for attribute validation type.
@@ -303,7 +359,7 @@ typedef enum {
        MM_PLAYER_ATTRS_VALID_TYPE_INT_RANGE,          /**< validity checking type of integer range */
        MM_PLAYER_ATTRS_VALID_TYPE_DOUBLE_ARRAY,                /**< validity checking type of double array */
        MM_PLAYER_ATTRS_VALID_TYPE_DOUBLE_RANGE,       /**< validity checking type of double range */
-} MMPlayerAttrsValidType;
+} mmplayer_attrs_valid_type_e;
 
 /**
  * Enumeration for attribute access flag.
@@ -315,7 +371,7 @@ typedef enum {
        MM_PLAYER_ATTRS_FLAG_MODIFIED = 1 << 2,                 /**< Modified */
 
        MM_PLAYER_ATTRS_FLAG_RW = MM_PLAYER_ATTRS_FLAG_READABLE | MM_PLAYER_ATTRS_FLAG_WRITABLE, /**< Readable and Writable */
-} MMPlayerAttrsFlag;
+} mmplayer_attrs_flag_e;
 
 /**
  * Enumeration of track types
@@ -325,7 +381,7 @@ typedef enum {
        MM_PLAYER_TRACK_TYPE_VIDEO,
        MM_PLAYER_TRACK_TYPE_TEXT,
        MM_PLAYER_TRACK_TYPE_MAX
-} MMPlayerTrackType;
+} mmplayer_track_type_e;
 
 /**
  * Enumeration of runtime buffering mode
@@ -334,18 +390,7 @@ typedef enum {
        MM_PLAYER_BUFFERING_MODE_ADAPTIVE = 0,  /**< default, If buffering is occurred, player will consider the bandwidth to adjust buffer setting. */
        MM_PLAYER_BUFFERING_MODE_FIXED,                 /**< player will set buffer size with this fixed size value. */
        MM_PLAYER_BUFFERING_MODE_MAX,
-} MMPlayerBufferingMode;
-
-/**
- * Edge Properties of the text.
- */
-typedef enum {
-       MM_PLAYER_EDGE_NO,
-       MM_PLAYER_EDGE_RAISED,
-       MM_PLAYER_EDGE_DEPRESSED,
-       MM_PLAYER_EDGE_UNIFORM,
-       MM_PLAYER_EDGE_DROPSHADOW
-} MMPlayerSubtitleEdge;
+} mmplayer_buffering_mode_e;
 
 /**
  * Enumeration of media stream buffer status
@@ -353,7 +398,7 @@ typedef enum {
 typedef enum {
        MM_PLAYER_MEDIA_STREAM_BUFFER_UNDERRUN,
        MM_PLAYER_MEDIA_STREAM_BUFFER_OVERFLOW,
-} MMPlayerMediaStreamBufferStatus;
+} mmplayer_media_stream_buffer_status_e;
 
 /**
  * Enumeration for stream type.
@@ -364,21 +409,49 @@ typedef enum {
        MM_PLAYER_STREAM_TYPE_VIDEO,    /**< Video element stream type */
        MM_PLAYER_STREAM_TYPE_TEXT,     /**< Text type */
        MM_PLAYER_STREAM_TYPE_MAX,
-} MMPlayerStreamType;
+} mmplayer_stream_type_e;
 
 typedef enum {
-       MM_PLAYER_CODEC_TYPE_DEFAULT = 0, /**< codec is selected by the priority */
        MM_PLAYER_CODEC_TYPE_HW,          /**< HW codec can only be selected */
        MM_PLAYER_CODEC_TYPE_SW,          /**< SW codec can only be selected */
-} MMPlayerVideoCodecType;
+       MM_PLAYER_CODEC_TYPE_DEFAULT,     /**< codec is selected by the priority */
+} mmplayer_codec_type_e;
+
+typedef enum {
+       MM_PLAYER_AUDIO_CONTROL_OPT_EFFECT,
+       MM_PLAYER_AUDIO_CONTROL_OPT_REPLAYGAIN,
+       MM_PLAYER_AUDIO_CONTROL_OPT_PITCH,
+       MM_PLAYER_AUDIO_CONTROL_OPT_PCM_EXPORTING,
+} mmplayer_audio_control_opt_e;
+
+typedef enum {
+       MM_PLAYER_AUDIO_EXTRACT_DEFAULT                        = 0x00,   /**< Sync with the playback clock and multichannel audio stream */
+       MM_PLAYER_AUDIO_EXTRACT_NO_SYNC_WITH_CLOCK             = 0x01,   /**< No sync with the playback clock */
+       MM_PLAYER_AUDIO_EXTRACT_DEINTERLEAVE                   = 0x02,   /**< Splits one interleaved multichannel audio stream into many mono audio streams */
+       MM_PLAYER_AUDIO_EXTRACT_NO_SYNC_AND_DEINTERLEAVE       = MM_PLAYER_AUDIO_EXTRACT_NO_SYNC_WITH_CLOCK | MM_PLAYER_AUDIO_EXTRACT_DEINTERLEAVE,
+       MM_PLAYER_AUDIO_EXTRACT_WITH_PLAYBACK                  = 0x04,   /**< With audio playback synchronously (experimental) */
+       MM_PLAYER_AUDIO_EXTRACT_DEINTERLEAVE_WITH_PLAYBACK     = MM_PLAYER_AUDIO_EXTRACT_DEINTERLEAVE | MM_PLAYER_AUDIO_EXTRACT_WITH_PLAYBACK,
+} mmplayer_audio_extract_opt_e;
+
+/*
+ * Enumerations of video colorspace
+ */
+typedef enum {
+       MM_PLAYER_COLORSPACE_I420 = 0,                  /**< I420 format - planer */
+       MM_PLAYER_COLORSPACE_RGB888,                    /**< RGB888 pixel format */
+       MM_PLAYER_COLORSPACE_NV12_TILED,                /**< Customized color format */
+       MM_PLAYER_COLORSPACE_NV12,
+       MM_PLAYER_COLORSPACE_BGRx,                              /**< BGRx pixel format */
+       MM_PLAYER_COLORSPACE_MAX = 0x7FFFFFFF
+} mmplayer_video_color_space_e;
 
 /**
  * Attribute validity structure
  */
 typedef struct {
-        MMPlayerAttrsType type;
-        MMPlayerAttrsValidType validity_type;
-        MMPlayerAttrsFlag flag;
+        mmplayer_attrs_type_e type;
+        mmplayer_attrs_valid_type_e validity_type;
+        mmplayer_attrs_flag_e flag;
        /**
          * a union that describes validity of the attribute.
          * Only when type is 'MM_ATTRS_TYPE_INT' or 'MM_ATTRS_TYPE_DOUBLE',
@@ -405,35 +478,60 @@ typedef struct {
                * Validity structure for double array.
                */
                struct {
-                       double   * array;  /**< a pointer of array */
-                       int    count;   /**< size of array */
+                       double *array;  /**< a pointer of array */
+                       int count;   /**< size of array */
                        double d_val;
                } double_array;
                /**
                * Validity structure for double range.
                */
                struct {
-                       double   min;   /**< minimum range */
-                       double   max;   /**< maximum range */
+                       double min;   /**< minimum range */
+                       double max;   /**< maximum range */
                        double d_val;
                } double_range;
        };
-} MMPlayerAttrsInfo;
+} mmplayer_attrs_info_t;
 
-/**
- * Volume type.
- *
- * @see                mm_player_set_volume, mm_player_get_volume
- */
 typedef struct {
-       float   level[MM_VOLUME_CHANNEL_NUM];   /**< Relative volume factor for each channels */
-} MMPlayerVolumeType;
+       MMPixelFormatType format;              /**< image format */
+       int width;                             /**< width of video buffer */
+       int height;                            /**< height of video buffer */
+       unsigned int timestamp;                /**< timestamp of stream buffer (msec)*/
+       unsigned int length_total;             /**< total length of stream buffer (in byte)*/
+       void *data[BUFFER_MAX_PLANE_NUM];
+       void *bo[BUFFER_MAX_PLANE_NUM];        /**< TBM buffer object */
+       void *internal_buffer;                 /**< Internal buffer pointer */
+       int stride[BUFFER_MAX_PLANE_NUM];      /**< stride of plane */
+       int elevation[BUFFER_MAX_PLANE_NUM];   /**< elevation of plane */
+       int orientation;                       /**< orientation */
+       int bo_size;                           /**< TBM buffer object size */
+       int plane_num;                         /**< number of Plane */
+} mmplayer_video_decoded_data_info_t;
+
+typedef struct {
+       void *data;
+       int data_size;
+       int channel;
+       int bitrate;
+       guint64 channel_mask;
+       media_format_mimetype_e pcm_format;
+} mmplayer_audio_decoded_data_info_t;
+
+typedef struct {
+       unsigned char *data;                                    /* capture image buffer */
+       int size;                                                               /* capture image size */
+       mmplayer_video_color_space_e fmt;                       /* color space type */
+       unsigned int width;                                             /* width of captured image */
+       unsigned int height;                                    /* height of captured image */
+       unsigned int orientation;                               /* content orientation */
+} mmplayer_video_capture_t;
 
 /**
  * Video stream info in external demux case
  *
 **/
-typedef struct _VideoStreamInfo {
+typedef struct {
        const char *mime;
        unsigned int framerate_num;
        unsigned int framerate_den;
@@ -442,13 +540,13 @@ typedef struct _VideoStreamInfo {
        unsigned char *codec_extradata;
        unsigned int extradata_size;
        unsigned int version;
-} MMPlayerVideoStreamInfo;
+} mmplayer_video_stream_info_t;
 
 /**
  * Audio stream info in external demux case
  *
 **/
-typedef struct _AudioStreamInfo {
+typedef struct {
        const char *mime;
        unsigned int channels;
        unsigned int sample_rate;
@@ -462,7 +560,7 @@ typedef struct _AudioStreamInfo {
 //     unsigned int depth;
 //     unsigned int endianness;
 //     bool signedness;
-} MMPlayerAudioStreamInfo;
+} mmplayer_audio_stream_info_t;
 
 /**
  * Subtitle stream info in external demux case
@@ -472,50 +570,27 @@ typedef struct _SubtitleStreamInfo {
        const char *mime;
        unsigned int codec_tag;
        void *context;  //for smpte text
-} MMPlayerSubtitleStreamInfo;
+} mmplayer_subtitle_stream_info_t;
 
 /**
- * selected subtitle track number callback function type.
- *
- * @param      track_num       [in]    Track number of subtitle
- * @param      user_param      [in]    User defined parameter
- *
- *
- * @return     This callback function have to return MM_ERROR_NONE.
+ * Called to notify the stream changed.
  */
-typedef bool           (*mm_player_track_selected_subtitle_language_callback)(int track_num, void *user_param);
+typedef bool (*mm_player_stream_changed_callback)(void *user_param);
 
 /**
- * Buffer underrun / overflow data callback function type.
- *
- * @param      status     [in] buffer status
- * @param      user_param [in] User defined parameter which is passed when set
- *                          to enough data callback or need data callback
- *
- * @return     This callback function have to return MM_ERROR_NONE.
+ * Video decoded callback function type.
  */
-typedef bool   (*mm_player_media_stream_buffer_status_callback) (MMPlayerStreamType type, MMPlayerMediaStreamBufferStatus status, unsigned long long bytes, void *user_param);
+typedef bool (*mm_player_video_decoded_callback)(void *stream, void *user_param);
 
 /**
- * Buffer seek data callback function type.
- *
- * @param      offset     [in] offset for the buffer playback
- * @param      user_param [in] User defined parameter which is passed when set
- *                          to seek data callback
- *
- * @return     This callback function have to return MM_ERROR_NONE.
+ * Audio stream callback function type.
  */
-typedef bool   (*mm_player_media_stream_seek_data_callback) (MMPlayerStreamType type, unsigned long long offset, void *user_param);
+typedef bool (*mm_player_video_capture_callback)(void *stream, int stream_size, void *user_param);
 
 /**
- * Called to notify the stream changed.
- *
- * @param user_data [in] The user data passed from the callback registration function
- *
- * @return     This callback function have to return MM_ERROR_NONE.
+ * Audio stream callback function type.
  */
-typedef bool   (*mm_player_stream_changed_callback) (void *user_param);
-
+typedef bool (*mm_player_audio_decoded_callback)(void *stream, void *user_param);
 
 /*===========================================================================================
 |                                                                                           |
@@ -551,13 +626,13 @@ if (mm_player_create(&g_player) != MM_ERROR_NONE) {
 if (mm_player_set_attribute(g_player,
                                                &g_err_attr_name,
                                                "profile_uri", filename, strlen(filename),
-                                               "display_overlay", (void*)&g_win.xid, sizeof(g_win.xid),
+                                               "display_overlay", (void *)&g_win.xid, sizeof(g_win.xid),
                                                NULL) != MM_ERROR_NONE) {
        LOGE("failed to set %s attribute\n", g_err_attr_name);
        free(g_err_attr_name);
 }
 
-mm_player_set_message_callback(g_player, msg_callback, (void*)g_player);
+mm_player_set_message_callback(g_player, msg_callback, (void *)g_player);
  * @endcode
  */
 int mm_player_create(MMHandleType *player);
@@ -644,7 +719,7 @@ int mm_player_abort_pause(MMHandleType player);
  *
  * @return   This function returns zero on success, or negative value with error code.
  *
- * @see      MMPlayerStateType
+ * @see      mmplayer_state_e
  * @remark   None
  * @par Example
  * @code
@@ -653,60 +728,17 @@ if (mm_player_get_state(g_player, &state) != MM_ERROR_NONE) {
 }
  * @endcode
  */
-int mm_player_get_state(MMHandleType player, MMPlayerStateType *state);
+int mm_player_get_state(MMHandleType player, mmplayer_state_e *state);
 
 /**
- * This function is to set relative volume of player. \n
- * So, It controls logical volume value. \n
- * But, if developer want to change system volume, mm sound api should be used.
- *
- * @param      player          [in]    Handle of player
- * @param      volume          [in]    Volume factor of each channel
- *
- * @return     This function returns zero on success, or negative value with error code.
- * @see                MMPlayerVolumeType, mm_player_get_volume
- * @remark     The range of factor range is from 0 to 1.0. (1.0 = 100%) And, default value is 1.0.
- * @par Example
- * @code
-MMPlayerVolumeType volume;
-int i = 0;
-
-for (i = 0; i < MM_VOLUME_CHANNEL_NUM; i++)
-       volume.level[i] = MM_VOLUME_LEVEL_MAX;
-
-if (mm_player_set_volume(g_player, &volume) != MM_ERROR_NONE)
-{
-    LOGE("failed to set volume\n");
-}
- * @endcode
+ * This function is to control logical volume.
  */
-int mm_player_set_volume(MMHandleType player, MMPlayerVolumeType *volume);
+int mm_player_set_volume(MMHandleType player, float volume);
 
 /**
  * This function is to get current volume factor of player.
- *
- * @param      player          [in]    Handle of player.
- * @param      volume          [out]   Volume factor of each channel.
- *
- * @return     This function returns zero on success, or negative value with error code.
- *
- * @see                MMPlayerVolumeType, mm_player_set_volume
- * @remark  None
- * @par Example
- * @code
-MMPlayerVolumeType volume;
-int i;
-
-if (mm_player_get_volume(g_player, &volume) != MM_ERROR_NONE)
-{
-       LOGW("failed to get volume\n");
-}
-
-for (i = 0; i < MM_VOLUME_CHANNEL_NUM; i++)
-       LOGD("channel[%d] = %d \n", i, volume.level[i]);
- * @endcode
  */
-int mm_player_get_volume(MMHandleType player, MMPlayerVolumeType *volume);
+int mm_player_get_volume(MMHandleType player, float *volume);
 
 /**
  * This function is to start playing media contents. Demux(parser), codec and related plugins are decided \n
@@ -837,18 +869,18 @@ int mm_player_get_duration(MMHandleType player, int64_t *dur);
  * @param   stop_pos    [out] contains buffer current  position on success or zero in case of failure.
  *
  * @return     This function returns zero on success, or negative value with errors
- * @see                MMPlayerPosFormatType, mm_player_set_position
+ * @see                mm_player_set_position
  * @remark  the unit of time-based format is millisecond and other case is percent.
  * @par Example
  * @code
 int start_pos = 0, stop_pos = 0;
 
-mm_player_get_buffer_position(g_player, MM_PLAYER_POS_FORMAT_PERCENT, &start_pos, &stop_pos );
+mm_player_get_buffer_position(g_player, &start_pos, &end_pos );
 
-LOGD("buffer position: [%d] ~ [%d] \%\n", start_pos, stop_pos );
+LOGD("buffer position: [%d] ~ [%d] \%\n", start_pos, end_pos );
  * @endcode
  */
-int mm_player_get_buffer_position(MMHandleType player, MMPlayerPosFormatType format, unsigned long *start_pos, unsigned long *stop_pos);
+int mm_player_get_buffer_position(MMHandleType player, int *start_pos, int *end_pos);
 
 /**
  * This function sets callback function for receiving messages from player.
@@ -889,7 +921,7 @@ int msg_callback(int message, MMMessageParamType *param, void *user_param)
        return TRUE;
 }
 
-mm_player_set_message_callback(g_player, msg_callback, (void*)g_player);
+mm_player_set_message_callback(g_player, msg_callback, (void *)g_player);
  * @endcode
  */
 int mm_player_set_message_callback(MMHandleType player, MMMessageCallback callback, void *user_param);
@@ -898,20 +930,13 @@ int mm_player_set_message_callback(MMHandleType player, MMMessageCallback callba
  * This function is to mute volume of player
  *
  * @param      player  [in]    Handle of player
- * @param      mute    [in]    Mute(1) or not mute(0)
+ * @param      mute    [in]    mute value
  *
  * @return     This function returns zero on success, or negative value with error code
  * @see                mm_player_get_mute
  * @remark  None
- * @par Example
- * @code
-if (mm_player_set_mute(g_player, TRUE) != MM_ERROR_NONE)
-{
-       LOGW("failed to set mute\n");
-}
- * @endcode
  */
-int mm_player_set_mute(MMHandleType player, int mute);
+int mm_player_set_mute(MMHandleType player, bool mute);
 
 /**
  * This function is to get mute value of player
@@ -922,26 +947,15 @@ int mm_player_set_mute(MMHandleType player, int mute);
  * @return     This function returns zero on success, or negative value with error code
  * @see                mm_player_set_mute
  * @remark  None
- * @par Example
- * @code
-int mute;
-
-if (mm_player_get_mute(g_player, &mute) != MM_ERROR_NONE)
-{
-       LOGW("failed to get mute\n");
-}
-
-LOGD("mute status:%d\n", mute);
- * @endcode
  */
-int mm_player_get_mute(MMHandleType player, int *mute);
+int mm_player_get_mute(MMHandleType player, bool *mute);
 
 /**
- * This function is to adjust subtitle postion. So, subtitle can show at the adjusted position. \n
+ * This function is to adjust subtitle position. So, subtitle can show at the adjusted position. \n
  * If pos is negative, subtitle will be displayed previous time, the other hand forward time. \n
  *
  * @param      player  [in]    Handle of player
- * @param      pos             [in]    postion to be adjusted
+ * @param      pos             [in]    position to be adjusted
  *
  * @return     This function returns zero on success, or negative value with error
  *                     code
@@ -952,21 +966,21 @@ int mm_player_get_mute(MMHandleType player, int *mute);
 int pos;
 
 pos = 5000;
-if (mm_player_adjust_subtitle_position(g_player, MM_PLAYER_POS_FORMAT_TIME, pos) != MM_ERROR_NONE)
+if (mm_player_adjust_subtitle_position(g_player, pos) != MM_ERROR_NONE)
 {
-       LOGW("failed to adjust subtitle postion.\n");
+       LOGW("failed to adjust subtitle position.\n");
 }
  * @endcode
  */
 
-int mm_player_adjust_subtitle_position(MMHandleType player, MMPlayerPosFormatType format, int pos);
+int mm_player_adjust_subtitle_position(MMHandleType player, int pos);
 
 /**
  * This function is to set subtitle silent status. So, subtitle can show or hide during playback \n
  * by this value. But, one subtitle file should be set with "subtitle_uri" attribute before calling mm_player_realize(); \n
  * Player FW parses subtitle file and send text data including timestamp to application \n
  * through message callback with MM_MESSAGE_UPDATE_SUBTITLE will be. \n
- * So, application have to render it. And, subtitle can be supported only in a seprate file. \n
+ * So, application have to render it. And, subtitle can be supported only in a separate file. \n
  * So, it's not supported for embedded case.
  *
  * @param      player  [in]    Handle of player
@@ -1068,7 +1082,7 @@ int mm_player_get_attribute(MMHandleType player,  char **err_attr_name, const ch
  *
  * @param   player          [in]  Handle of player.
  * @param   attribute_name  [in]  Name of the attribute to get
- * @param   info            [out] Attribute infomation
+ * @param   info            [out] Attribute information
  *
  * @return  This function returns zero on success, or negative value with error
  *          code.
@@ -1091,7 +1105,7 @@ if (method_info. validity_type == MM_PLAYER_ATTRS_VALID_TYPE_INT_RANGE) {
 }
  * @endcode
  */
-int mm_player_get_attribute_info(MMHandleType player,  const char *attribute_name, MMPlayerAttrsInfo *info);
+int mm_player_get_attribute_info(MMHandleType player,  const char *attribute_name, mmplayer_attrs_info_t *info);
 
 /**
  * This function is to get the track count
@@ -1114,7 +1128,7 @@ if (mm_player_get_track_count(g_player, MM_PLAYER_TRACK_TYPE_AUDIO, &audio_count
 LOGD("audio track count : %d \n", audio_count);
  * @endcode
  */
-int mm_player_get_track_count(MMHandleType player,  MMPlayerTrackType type, int *count);
+int mm_player_get_track_count(MMHandleType player,  mmplayer_track_type_e type, int *count);
 
 /**
  * This function is to select the track
@@ -1126,7 +1140,7 @@ int mm_player_get_track_count(MMHandleType player,  MMPlayerTrackType type, int
  * @return  This function returns zero on success, or negative value with error
  *          code.
  */
-int mm_player_select_track(MMHandleType player, MMPlayerTrackType type, int index);
+int mm_player_select_track(MMHandleType player, mmplayer_track_type_e type, int index);
 
 /**
  * This function is to get the track language
@@ -1139,7 +1153,7 @@ int mm_player_select_track(MMHandleType player, MMPlayerTrackType type, int inde
  * @return  This function returns zero on success, or negative value with error
  *          code.
  */
-int mm_player_get_track_language_code(MMHandleType player,  MMPlayerTrackType type, int index, char **code);
+int mm_player_get_track_language_code(MMHandleType player,  mmplayer_track_type_e type, int index, char **code);
 
 /**
  * This function is to get the current running track
@@ -1152,7 +1166,7 @@ int mm_player_get_track_language_code(MMHandleType player,  MMPlayerTrackType ty
  *                      code.
  */
 
-int mm_player_get_current_track(MMHandleType hplayer, MMPlayerTrackType type, int *index);
+int mm_player_get_current_track(MMHandleType hplayer, mmplayer_track_type_e type, int *index);
 
 /**
  * This function is to set the subtitle path
@@ -1162,7 +1176,7 @@ int mm_player_get_current_track(MMHandleType hplayer, MMPlayerTrackType type, in
  *
  * @return      This function returns zero on success, or negative value with error code.
  */
-int mm_player_set_external_subtitle_path(MMHandleType player, const charpath);
+int mm_player_set_external_subtitle_path(MMHandleType player, const char *path);
 
 /**
  * This function is to set uri.
@@ -1232,33 +1246,7 @@ int mm_player_set_audio_info(MMHandleType player, media_format_h format);
  * @param       subtitle_stream_info               [in]    Subtitle stream info.
  * @return      This function returns zero on success, or negative value with error code.
  */
-int mm_player_set_subtitle_info(MMHandleType player, MMPlayerSubtitleStreamInfo *info);
-
-/**
- * This function set callback function for receiving need or enough data message from player.
- *
- * @param   player     [in] Handle of player.
- * @param   type       [in] stream type
- * @param   callback   [in] data callback function for stream type.
- * @param   user_param [in] User parameter.
- *
- * @return  This function returns zero on success, or negative value with error
- *          code.
- */
-int mm_player_set_media_stream_buffer_status_callback(MMHandleType player, MMPlayerStreamType type, mm_player_media_stream_buffer_status_callback callback, void * user_param);
-
-/**
- * This function set callback function for receiving seek data message from player.
- *
- * @param       player          [in]    Handle of player.
- * @param       type            [in]    stream type
- * @param       callback        [in]    Seek data callback function for stream type.
- * @param       user_param      [in]    User parameter.
- *
- * @return      This function returns zero on success, or negative value with error
- *                      code.
- */
-int mm_player_set_media_stream_seek_data_callback(MMHandleType player, MMPlayerStreamType type, mm_player_media_stream_seek_data_callback callback, void * user_param);
+int mm_player_set_subtitle_info(MMHandleType player, mmplayer_subtitle_stream_info_t *info);
 
 /**
  * This function is to set max size of buffer(appsrc).
@@ -1270,7 +1258,7 @@ int mm_player_set_media_stream_seek_data_callback(MMHandleType player, MMPlayerS
  * @return      This function returns zero on success, or negative value with error
  *                      code.
  */
-int mm_player_set_media_stream_buffer_max_size(MMHandleType player, MMPlayerStreamType type, unsigned long long max_size);
+int mm_player_set_media_stream_buffer_max_size(MMHandleType player, mmplayer_stream_type_e type, unsigned long long max_size);
 
 /**
  * This function is to get max size of buffer(appsrc).
@@ -1282,7 +1270,7 @@ int mm_player_set_media_stream_buffer_max_size(MMHandleType player, MMPlayerStre
  * @return      This function returns zero on success, or negative value with error
  *                      code.
  */
-int mm_player_get_media_stream_buffer_max_size(MMHandleType player, MMPlayerStreamType type, unsigned long long *max_size);
+int mm_player_get_media_stream_buffer_max_size(MMHandleType player, mmplayer_stream_type_e type, unsigned long long *max_size);
 
 /**
  * This function is to set min percent of buffer(appsrc).
@@ -1294,7 +1282,7 @@ int mm_player_get_media_stream_buffer_max_size(MMHandleType player, MMPlayerStre
  * @return      This function returns zero on success, or negative value with error
  *                      code.
  */
-int mm_player_set_media_stream_buffer_min_percent(MMHandleType player, MMPlayerStreamType type, unsigned min_percent);
+int mm_player_set_media_stream_buffer_min_percent(MMHandleType player, mmplayer_stream_type_e type, unsigned min_percent);
 
 /**
  * This function is to get min percent of buffer(appsrc).
@@ -1306,7 +1294,7 @@ int mm_player_set_media_stream_buffer_min_percent(MMHandleType player, MMPlayerS
  * @return      This function returns zero on success, or negative value with error
  *                      code.
  */
-int mm_player_get_media_stream_buffer_min_percent(MMHandleType player, MMPlayerStreamType type, unsigned int *min_percent);
+int mm_player_get_media_stream_buffer_min_percent(MMHandleType player, mmplayer_stream_type_e type, unsigned int *min_percent);
 
 /**
  * This function set callback function for changing audio stream from player. \n
@@ -1324,20 +1312,6 @@ int mm_player_get_media_stream_buffer_min_percent(MMHandleType player, MMPlayerS
 int mm_player_set_audio_stream_changed_callback(MMHandleType player, mm_player_stream_changed_callback callback, void *user_param);
 
 /**
- * This function set callback function for changing video stream from player. \n
- * It's only supported when video stream is included in file. \n
- *
- * @param      player   [in] Handle of player.
- * @param      callback [in] Video stream changed callback function.
- * @param      user_param [in] User parameter.
- *
- * @return     This function returns zero on success, or negative value with error
- *                     code.
- * @see                mm_player_stream_changed_callback
- */
-int mm_player_set_video_stream_changed_callback(MMHandleType player, mm_player_stream_changed_callback callback, void *user_param);
-
-/**
  * This function is to get timeout value according to the content type for muse. \n
  * It's only supported when video stream is included in file. \n
  *
@@ -1351,20 +1325,6 @@ int mm_player_set_video_stream_changed_callback(MMHandleType player, mm_player_s
 int mm_player_get_timeout(MMHandleType player, int *timeout);
 
 /**
- * This function is to get the number of video output buffers. \n
- * It's only supported when video stream is included in file. \n
- *
- * @param      player  [in] Handle of player.
- * @param      num     [out] num of buffers.
- * @param      extra_num [out] extra num of buffers.
- *
- * @return     This function returns zero on success, or negative value with error
- *                     code.
- * @since 3.0
- */
-int mm_player_get_num_of_video_out_buffers(MMHandleType player, int *num, int *extra_num);
-
-/**
  * This function is to set the dynamic resolution information. \n
  * It's only supported when video stream is included in file. \n
  *
@@ -1388,16 +1348,7 @@ int mm_player_set_media_stream_dynamic_resolution(MMHandleType player, bool drc)
  *                     code.
  * @since 3.0
  */
-int mm_player_release_video_stream_bo(MMHandleType player, void* bo);
-
-/**
- * This function is to set http file buffering path
- *
- * @param       player         [in]    handle of player
- * @param       file_path      [in]    file path
- * @return      This function returns zero on success, or negative value with error code.
- */
-int mm_player_set_file_buffering_path(MMHandleType player, const char *file_path);
+int mm_player_release_video_stream_bo(MMHandleType player, void *bo);
 
 /**
  * This function is to set sound stream info
@@ -1420,13 +1371,11 @@ int mm_player_get_max_adaptive_variant_limit(MMHandleType player, int *bandwidth
  * These functions are to set/get the audio only mode
  */
 int mm_player_set_audio_only(MMHandleType player, bool audio_only);
-int mm_player_get_audio_only(MMHandleType player, bool *audio_only);
 
 /**
- * These functions are to set/get the streaming bufferint time
+ * These functions are to get the streaming buffering time
  */
-int mm_player_set_streaming_buffering_time(MMHandleType player, int buffer_ms, int rebuffer_ms);
-int mm_player_get_streaming_buffering_time(MMHandleType player, int *buffer_ms, int *rebuffer_ms);
+int mm_player_get_streaming_buffering_time(MMHandleType player, int *prebuffer_ms, int *rebuffer_ms);
 
 /**
  * These functions are to display the 360 video content
@@ -1447,7 +1396,7 @@ int mm_player_360_get_field_of_view(MMHandleType player, int *horizontal_degrees
 /**
  * This function is to set codec type
  */
-int mm_player_set_codec_type(MMHandleType player, MMPlayerStreamType stream_type, MMPlayerVideoCodecType codec_type);
+int mm_player_set_codec_type(MMHandleType player, mmplayer_stream_type_e stream_type, mmplayer_codec_type_e codec_type);
 
 /**
  * These functions are to apply the replaygain
@@ -1462,6 +1411,105 @@ int mm_player_set_video_roi_area(MMHandleType player, double scale_x, double sca
 int mm_player_get_video_roi_area(MMHandleType player, double *scale_x, double *scale_y, double *scale_width, double *scale_height);
 
 /**
+ * This function is to set play speed for playback.
+ *
+ * @param      player          [in]    Handle of player.
+ * @param      ratio           [in]    Speed for playback.
+ * @param      streaming       [in]    If @c true, rate value can be set even if it is streaming playback.
+ * @return     This function returns zero on success, or negative value with error
+ *                     code
+ * @remark     The current supported range is from -64x to 64x.
+ *             But, the quality is dependent on codec performance.
+ *             And, the sound is muted under normal speed and more than double speed.
+ * @see
+ * @since
+ */
+int mm_player_set_play_speed(MMHandleType player, float rate, bool streaming);
+
+/**
+ * This function set callback function for receiving video stream from player.
+ *
+ * @param      player          [in]    Handle of player.
+ * @param      callback        [in]    Video stream callback function.
+ * @param      user_param      [in]    User parameter.
+ *
+ * @return     This function returns zero on success, or negative value with error
+ *                     code.
+ * @remark
+ * @since
+ */
+int mm_player_set_video_decoded_callback(MMHandleType player, mm_player_video_decoded_callback callback, void *user_param);
+
+/**
+ * This function set callback function for receiving audio stream from player.
+ *
+ * @param      player          [in]    Handle of player.
+ * @param      opt             [in]    audio extract option.
+ * @param      callback        [in]    audio stream callback function.
+ * @param      user_param      [in]    User parameter.
+ *
+ * @return     This function returns zero on success, or negative value with error
+ *                     code.
+ * @remark
+ * @see                mm_player_audio_decoded_callback
+ * @since
+ */
+int mm_player_set_audio_decoded_callback(MMHandleType player, mmplayer_audio_extract_opt_e opt, mm_player_audio_decoded_callback callback, void *user_param);
+
+/**
+ * This function is to capture video frame.
+ *
+ * @param      player          [in]    Handle of player.
+ *
+ * @return     This function returns zero on success, or negative value with error
+ *                     code.
+ *
+ * @remark     Captured buffer is sent asynchronously through message callback with MM_MESSAGE_VIDEO_CAPTURED.
+ *                     And, application should free the captured buffer directly.
+ * @see                MM_MESSAGE_VIDEO_CAPTURED
+ * @since
+ */
+int mm_player_do_video_capture(MMHandleType player);
+
+/**
+ * This function changes the previous videosink plugin for a new one
+ *
+ * @param      player                  [in]    Handle of player.
+ * @param      display_surface_type    [in]    display surface type to set
+ * @param      wl_surface_id                   [in]    wayland surface id to set
+ *
+ * @return     This function returns zero on success, or negative value with error
+ *                     code.
+ * @remark
+ * @see
+ * @since
+ */
+int mm_player_change_videosink(MMHandleType player, MMDisplaySurfaceType display_surface_type, int wl_surface_id);
+
+/**
+ * This function set the application PID.
+ *
+ * @param      player          [in]    Handle of player
+ * @param      pid                     [in]    application PID
+ *
+ * @return     This function returns zero on success, or negative value with error code.
+ *
+ * @pre                Player state should be MM_PLAYER_STATE_NULL.
+ * @remark     None
+ */
+int mm_player_set_client_pid(MMHandleType player, int pid);
+
+/**
+ * This function gets the activation status of audio offload.
+ */
+int mm_player_audio_offload_is_activated(MMHandleType player, bool *activated);
+
+/**
+ * This function checks whether the controlling audio with opt is available or not.
+ */
+int mm_player_is_audio_control_available(MMHandleType player, mmplayer_audio_control_opt_e opt, bool *available);
+
+/**
        @}
  */