X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Finclude%2Fmm_player_priv.h;h=d883934eb80f34bb31ae6e8277e73f4c763f46fe;hb=b38b2bfc2397ef68d3b5ba20757896d10ef00d36;hp=abf45a6b8ed932b91c77ff37108d9961d8e0ded8;hpb=08c02c115031e737bb09c70eb4355905650e119a;p=platform%2Fcore%2Fmultimedia%2Flibmm-player.git diff --git a/src/include/mm_player_priv.h b/src/include/mm_player_priv.h index abf45a6..d883934 100644 --- a/src/include/mm_player_priv.h +++ b/src/include/mm_player_priv.h @@ -70,7 +70,7 @@ #define VIDEO360_MAX_ZOOM 10.0f -#define DEFAULT_NUM_OF_V_OUT_BUFFER 3 +#define DEFAULT_NUM_OF_V_OUT_BUFFER 4 /*--------------------------------------------------------------------------- | GLOBAL CONSTANT DEFINITIONS: | @@ -165,6 +165,7 @@ typedef enum { /* it could be a decodebin or could be a typefind. depends on player ini */ MMPLAYER_M_TYPEFIND, MMPLAYER_M_AUTOPLUG, + MMPLAYER_M_AUTOPLUG_PARSEBIN, MMPLAYER_M_AUTOPLUG_V_DEC, MMPLAYER_M_AUTOPLUG_A_DEC, @@ -537,7 +538,8 @@ typedef struct { /* command lock */ GMutex cmd_lock; - GMutex playback_lock; + GMutex reconfigure_lock; + GCond reconfigure_cond; /* gapless play thread */ GThread *gapless_play_thread; @@ -635,6 +637,8 @@ typedef struct { gboolean no_more_pad; gint num_dynamic_pad; gboolean has_many_types; + gboolean need_audio_dec_sorting; + gboolean need_video_dec_sorting; /* progress callback timer */ /* FIXIT : since duplicated functionality with get_position @@ -732,8 +736,9 @@ typedef struct { GCond subtitle_info_cond; GMutex subtitle_info_mutex; - /* To store the current running audio pad index of demuxer */ - gint demux_pad_index; + /* stream collection */ + GstStreamCollection *collection; + guint stream_notify_id; mmplayer_selector_t selector[MM_PLAYER_TRACK_TYPE_MAX]; @@ -857,12 +862,13 @@ int _mmplayer_get_max_adaptive_variant_limit(MMHandleType hplayer, int *bandwidt int _mmplayer_set_audio_only(MMHandleType hplayer, bool audio_only); int _mmplayer_get_audio_only(MMHandleType hplayer, bool *paudio_only); int _mmplayer_get_streaming_buffering_time(MMHandleType hplayer, int *prebuffer_ms, int *rebuffer_ms); -int _mmplayer_set_codec_type(MMHandleType hplayer, mmplayer_stream_type_e stream_type, mmplayer_video_codec_type_e codec_type); +int _mmplayer_set_codec_type(MMHandleType hplayer, mmplayer_stream_type_e stream_type, mmplayer_codec_type_e codec_type); int _mmplayer_set_replaygain_enabled(MMHandleType hplayer, bool enabled); int _mmplayer_is_replaygain_enabled(MMHandleType hplayer, bool *enabled); int _mmplayer_set_video_roi_area(MMHandleType hplayer, double scale_x, double scale_y, double scale_width, double scale_height); int _mmplayer_get_video_roi_area(MMHandleType hplayer, double *scale_x, double *scale_y, double *scale_width, double *scale_height); int _mmplayer_audio_offload_is_activated(MMHandleType hplayer, bool *activated); +int _mmplayer_is_audio_control_available(MMHandleType hplayer, mmplayer_audio_control_opt_e opt, bool *available); /* internal */ void _mmplayer_bus_msg_thread_destroy(MMHandleType hplayer); @@ -877,6 +883,7 @@ gboolean _mmplayer_gst_remove_fakesink(mmplayer_t *player, mmplayer_gst_element_ void _mmplayer_add_signal_connection(mmplayer_t *player, GObject *object, mmplayer_signal_type_e type, const gchar *signal, GCallback cb_funct, gpointer u_data); void _mmplayer_gst_decode_pad_added(GstElement *elem, GstPad *pad, gpointer data); gint _mmplayer_gst_decode_autoplug_select(GstElement *bin, GstPad *pad, GstCaps *caps, GstElementFactory *factory, gpointer data); +GValueArray *_mmplayer_gst_decode_autoplug_sort(GstElement *bin, GstPad *pad, GstCaps *caps, GValueArray *factories, gpointer data); gboolean _mmplayer_gst_create_decoder(mmplayer_t *player, GstPad *srcpad, const GstCaps *caps); void _mmplayer_gst_element_added(GstElement *bin, GstElement *element, gpointer data); GstElement *_mmplayer_gst_make_decodebin(mmplayer_t *player); @@ -885,6 +892,13 @@ int _mmplayer_gst_element_link_bucket(GList *element_bucket); void _mmplayer_typefind_have_type(GstElement *tf, guint probability, GstCaps *caps, gpointer data); int _mmplayer_parse_profile(const char *uri, void *param, mmplayer_parse_profile_t *data); int _mmplayer_set_client_pid(MMHandleType hplayer, int pid); +void _mmplayer_set_reconfigure_state(mmplayer_t *player, gboolean state); +void _mmplayer_gst_decode_pad_removed(GstElement *elem, GstPad *new_pad, gpointer data); +void _mmplayer_gst_decode_no_more_pads(GstElement *elem, gpointer data); +void _mmplayer_gst_decode_drained(GstElement *bin, gpointer data); +void _mmplayer_gst_decode_unknown_type(GstElement *elem, GstPad *pad, GstCaps *caps, gpointer data); +gboolean _mmplayer_gst_decode_autoplug_continue(GstElement *bin, GstPad *pad, GstCaps *caps, gpointer data); +void _mmplayer_pipeline_complete(GstElement *decodebin, gpointer data); #ifdef __cplusplus }