[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 a022aee..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"
 
 /**
+ * MM_PLAYER_VIDEO_BUFFER_TOTAL_SIZE (int)
+ */
+#define MM_PLAYER_VIDEO_BUFFER_TOTAL_SIZE   "video_buffer_total_size"
+
+/**
+ * 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)
  * 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"
  */
 #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)
 
@@ -361,10 +412,17 @@ typedef enum {
 } 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 */
-} mmplayer_video_codec_type_e;
+       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 */
@@ -456,8 +514,6 @@ typedef struct {
        int data_size;
        int channel;
        int bitrate;
-       int depth;
-       bool is_little_endian;
        guint64 channel_mask;
        media_format_mimetype_e pcm_format;
 } mmplayer_audio_decoded_data_info_t;
@@ -517,92 +573,22 @@ typedef struct _SubtitleStreamInfo {
 } 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.
- */
-typedef bool (*mm_player_track_selected_subtitle_language_callback)(int track_num, 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.
- */
-typedef bool (*mm_player_media_stream_buffer_status_callback)(mmplayer_stream_type_e type, mmplayer_media_stream_buffer_status_e status, unsigned long long bytes, 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.
- */
-typedef bool (*mm_player_media_stream_seek_data_callback)(mmplayer_stream_type_e type, unsigned long long offset, 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.
  */
 typedef bool (*mm_player_stream_changed_callback)(void *user_param);
 
 /**
  * Video decoded callback function type.
- *
- * @param      stream          [in]    Reference pointer to video frame data
- * @param      stream_size     [in]    Size of video frame data
- * @param      user_param      [in]    User defined parameter which is passed when set
- *                                                             video stream callback
- * @param      width           [in]    width of video frame
- * @param      height          [in]    height of video frame
- *
- * @return     This callback function have to return MM_ERROR_NONE.
  */
 typedef bool (*mm_player_video_decoded_callback)(void *stream, void *user_param);
 
 /**
  * Audio stream callback function type.
- *
- * @param      stream          [in]    Reference pointer to audio frame data
- * @param      stream_size     [in]    Size of audio frame data
- * @param      user_param      [in]    User defined parameter which is passed when set
- *                                                             audio stream callback
- *
- * @return     This callback function have to return MM_ERROR_NONE.
  */
 typedef bool (*mm_player_video_capture_callback)(void *stream, int stream_size, void *user_param);
 
 /**
- * Video frame render error callback function type.
- *
- * @param      error_id        [in]    cause of error
- * @param      user_param      [in]    User defined parameter which is passed when set
- *                                                             video frame render error callback
- *
- * @return     This callback function have to return MM_ERROR_NONE.
- */
-typedef bool (*mm_player_video_frame_render_error_callback)(void *error_id, void *user_param);
-
-/**
  * Audio stream callback function type.
- *
- * @param      stream          [in]    Reference pointer to audio frame data
- * @param      user_param      [in]    User defined parameter which is passed when set
- *                                                             audio stream callback
- *
- * @return     This callback function have to return MM_ERROR_NONE.
  */
 typedef bool (*mm_player_audio_decoded_callback)(void *stream, void *user_param);
 
@@ -965,11 +951,11 @@ int mm_player_set_mute(MMHandleType player, bool 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
@@ -982,7 +968,7 @@ int pos;
 pos = 5000;
 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
  */
@@ -994,7 +980,7 @@ int mm_player_adjust_subtitle_position(MMHandleType player, int pos);
  * 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
@@ -1096,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.
@@ -1263,32 +1249,6 @@ int mm_player_set_audio_info(MMHandleType player, media_format_h format);
 int mm_player_set_subtitle_info(MMHandleType player, mmplayer_subtitle_stream_info_t *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, mmplayer_stream_type_e 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, mmplayer_stream_type_e type, mm_player_media_stream_seek_data_callback callback, void *user_param);
-
-/**
  * This function is to set max size of buffer(appsrc).
  *
  * @param       player          [in]    Handle of player.
@@ -1352,20 +1312,6 @@ int mm_player_get_media_stream_buffer_min_percent(MMHandleType player, mmplayer_
 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
  *
@@ -1379,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
  *
@@ -1439,10 +1371,9 @@ 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 get the streaming bufferint time
+ * These functions are to get the streaming buffering time
  */
 int mm_player_get_streaming_buffering_time(MMHandleType player, int *prebuffer_ms, int *rebuffer_ms);
 
@@ -1465,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, mmplayer_stream_type_e stream_type, mmplayer_video_codec_type_e 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
@@ -1488,7 +1419,7 @@ int mm_player_get_video_roi_area(MMHandleType player, double *scale_x, double *s
  * @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 quailty is dependent on codec performance.
+ *             But, the quality is dependent on codec performance.
  *             And, the sound is muted under normal speed and more than double speed.
  * @see
  * @since
@@ -1545,7 +1476,7 @@ int mm_player_do_video_capture(MMHandleType player);
  *
  * @param      player                  [in]    Handle of player.
  * @param      display_surface_type    [in]    display surface type to set
- * @param      display_overlay                 [in]    display overlay 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.
@@ -1553,7 +1484,30 @@ int mm_player_do_video_capture(MMHandleType player);
  * @see
  * @since
  */
-int mm_player_change_videosink(MMHandleType player, MMDisplaySurfaceType display_surface_type, void *display_overlay);
+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);
 
 /**
        @}