Merge "[0.6.58] add rm and display handling about audio_only" into tizen
[platform/core/multimedia/libmm-player.git] / src / include / mm_player.h
index 95c89e5..29f9cdd 100644 (file)
  */
 #define MM_PLAYER_PD_MODE                                              "pd_mode"
 
+/**
+ * MM_PLAYER_DRC_MODE
+ *
+ * dynamic resolution change mode (int)
+ */
+#define MM_PLAYER_DRC_MODE                                             "drc_mode"
+
+/**
+ * MM_PLAYER_GAPLESS_MODE
+ *
+ * gapless playback mode (int)
+ */
+#define MM_PLAYER_GAPLESS_MODE                                 "gapless_mode"
+
+/**
+ * MM_PLAYER_ENABLE_VIDEO_DECODED_CB
+ *
+ * enable video decoded callback (int)
+ */
+#define MM_PLAYER_ENABLE_VIDEO_DECODED_CB              "enable_video_decoded_cb"
+
 #define BUFFER_MAX_PLANE_NUM (4)
 
 typedef struct {
@@ -756,16 +777,6 @@ typedef enum {
        MM_PLAYER_BUFFERING_MODE_MAX = MM_PLAYER_BUFFERING_MODE_SLINK,
 }MMPlayerBufferingMode;
 
-/**
- * Enumeration of audio channel for video share
- */
-typedef enum
-{
-       MM_PLAYER_AUDIO_CH_MONO_LEFT = 0,
-       MM_PLAYER_AUDIO_CH_MONO_RIGHT,
-       MM_PLAYER_AUDIO_CH_STEREO,
-} MMPlayerAudioChannel;
-
 typedef enum
 {
        MM_PLAYER_FOCUS_CHANGED_COMPLETED = 0,
@@ -813,17 +824,6 @@ typedef enum
 } MMPlayerStreamType;
 
 /**
- * Enumeration for pipeline type.
- */
-typedef enum
-{
-       MM_PLAYER_PIPELINE_LEGACY,      /**< Legacy pipeline */
-       MM_PLAYER_PIPELINE_SERVER,      /**< Pipeline for server(src,decoder,demux...) */
-       MM_PLAYER_PIPELINE_CLIENT,      /**< Pipeline for client(sink)*/
-       MM_PLAYER_PIPELINE_MAX
-} MMPlayerPipelineType;
-
-/**
  * Attribute validity structure
  */
 typedef struct {
@@ -1060,6 +1060,7 @@ int mm_player_destroy(MMHandleType player);
  * So, application PID should be set before realizing with mm_player_set_attribute(). \n
  *
  * @param      player          [in]    Handle of player
+ * @param      pid                     [in]    application PID
  *
  * @return     This function returns zero on success, or negative value with error code.
  *
@@ -1069,6 +1070,20 @@ int mm_player_destroy(MMHandleType player);
 int mm_player_sound_register(MMHandleType player, int pid);
 
 /**
+ * This function get the application PID that is registered \n
+ * So, application PID should be set before realizing with mm_player_set_attribute(). \n
+ *
+ * @param      player          [in]    Handle of player
+ * @param      pid                     [out]   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_get_client_pid (MMHandleType player, int* pid);
+
+/**
  * This function parses uri and makes gstreamer pipeline by uri scheme. \n
  * So, uri should be set before realizing with mm_player_set_attribute(). \n
  *
@@ -1967,17 +1982,6 @@ int mm_player_set_video_share_master_clock(MMHandleType player, long long clock,
  * @remark      None
  */
 int mm_player_get_video_share_master_clock(MMHandleType player, long long *video_time, long long *media_clock, long long *audio_time);
-/**
- * This function is to set audio channel
- *
- * @param       player         [in]    handle of player
- * @param       ch                     [in]    audio channel
- * @return      This function returns zero on success, or negative value with error code.
- *
- * @see
- * @remark      None
- */
-int mm_player_gst_set_audio_channel(MMHandleType player, MMPlayerAudioChannel ch);
 
 /**
  * This function is to get the content angle
@@ -2051,8 +2055,6 @@ int mm_player_set_next_uri(MMHandleType player, const char *uri);
  */
 int mm_player_get_next_uri(MMHandleType player, char **uri);
 
-int mm_player_enable_media_packet_video_stream(MMHandleType player, bool enable);
-
 /**
  * This function is to increase reference count of internal buffer.
  *
@@ -2245,7 +2247,7 @@ int mm_player_set_audio_stream_changed_callback(MMHandleType player, mm_player_s
 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.
+ * 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
  *
  * @param      player  [in] Handle of player.
@@ -2258,6 +2260,81 @@ 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
+ *
+ * @param      player  [in] Handle of player.
+ * @param      drc     [in] dynamic resolution info of media stream data
+ *
+ * @return     This function returns zero on success, or negative value with error
+ *                     code.
+ * @since 3.0
+ */
+int mm_player_set_media_stream_dynamic_resolution(MMHandleType player, bool drc);
+
+/**
+ * This function is to release the video stream bo to reuse. \n
+ * It's only supported when sw codec is used to decode video stream. \n
+ *
+ * @param      player  [in] Handle of player.
+ * @param      bo     [in] bo address to be released
+ *
+ * @return     This function returns zero on success, or negative value with error
+ *                     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.
+ *
+ * @see
+ * @remark      None
+ */
+int mm_player_set_file_buffering_path(MMHandleType player, const char *file_path);
+
+/**
+ * This function is to set sound stream info
+ */
+int mm_player_set_sound_stream_info(MMHandleType player, char *stream_type, int stream_index);
+
+/**
+ * This function is to manage the playback according to the external storage state
+ */
+int mm_player_manage_external_storage_state(MMHandleType player, int state);
+
+/**
+ * These functions are to set/get the max variant of HAS
+ */
+int mm_player_get_adaptive_variant_info(MMHandleType player, int *num, char **var_info);
+int mm_player_set_max_adaptive_variant_limit(MMHandleType player, int bandwidth, int width, int height);
+int mm_player_get_max_adaptive_variant_limit(MMHandleType player, int *bandwidth, int *width, int *height);
+
+/**
+ * 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);
+
+/**
        @}
  */