4 * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
6 * Contact: JongHyuk Choi <jhchoi.choi@samsung.com>, Heechul Jeon <heechul.jeon@samsung.com>
8 * Licensed under the Apache License, Version 2.0 (the "License");
9 * you may not use this file except in compliance with the License.
10 * You may obtain a copy of the License at
12 * http://www.apache.org/licenses/LICENSE-2.0
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS,
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * See the License for the specific language governing permissions and
18 * limitations under the License.
22 #ifndef __MM_PLAYER_LOCAL_FUNCTION_DEF_H_
23 #define __MM_PLAYER_LOCAL_FUNCTION_DEF_H_
26 /*---------------------------------------------------------------------------
27 | LOCAL FUNCTION PROTOTYPES: |
28 ---------------------------------------------------------------------------*/
29 /* mm_player_priv.c */
30 gboolean __mmplayer_set_state(mm_player_t* player, int state);
31 void __mmplayer_typefind_have_type( GstElement *tf, guint probability, GstCaps *caps, gpointer data);
32 gboolean __mmplayer_try_to_plug(mm_player_t* player, GstPad *pad, const GstCaps *caps);
33 void __mmplayer_pipeline_complete(GstElement *decodebin, gpointer data);
34 gboolean __mmplayer_update_subtitle( GstElement* object, GstBuffer *buffer, GstPad *pad, gpointer data);
35 void __mmplayer_release_misc(mm_player_t* player);
36 gboolean __mmplayer_configure_audio_callback(mm_player_t* player);
37 void __mmplayer_set_antishock( mm_player_t* player, gboolean disable_by_force);
38 gboolean _mmplayer_update_content_attrs(mm_player_t* player, enum content_attr_flag flag);
39 void __mmplayer_videostream_cb(GstElement *element, void *stream, int width, int height, gpointer data);
40 void __mmplayer_videoframe_render_error_cb(GstElement *element, void *error_id, gpointer data);
41 void __mmplayer_handle_buffering_message ( mm_player_t* player );
42 int __mmplayer_set_pcm_extraction(mm_player_t* player);
43 gboolean __mmplayer_can_extract_pcm( mm_player_t* player );
44 void __mmplayer_do_sound_fadedown(mm_player_t* player, unsigned int time);
45 void __mmplayer_undo_sound_fadedown(mm_player_t* player);
46 const gchar * __get_state_name ( int state );
47 GstBusSyncReply __mmplayer_bus_sync_callback (GstBus * bus, GstMessage * message, gpointer data);
48 void __mmplayer_post_delayed_eos( mm_player_t* player, int delay_in_ms );
49 void __gst_set_async_state_change(mm_player_t* player, gboolean async);
50 gboolean __mmplayer_post_message(mm_player_t* player, enum MMMessageType msgtype, MMMessageParamType* param);
52 /* mm_player_priv_wrapper.c */
53 gboolean __mmplayer_gst_callback(GstBus *bus, GstMessage *msg, gpointer data);
54 gboolean __mmplayer_gst_handle_duration(mm_player_t* player, GstMessage* msg);
55 gboolean __mmplayer_gst_extract_tag_from_msg(mm_player_t* player, GstMessage* msg);
56 void __mmplayer_gst_rtp_no_more_pads (GstElement *element, gpointer data);
57 gboolean __mmplayer_gst_remove_fakesink(mm_player_t* player, MMPlayerGstElement* fakesink);
58 void __mmplayer_gst_rtp_dynamic_pad (GstElement *element, GstPad *pad, gpointer data);
59 void __mmplayer_gst_decode_callback(GstElement *decodebin, GstPad *pad, gboolean last, gpointer data);
60 int __mmplayer_gst_element_link_bucket(GList* element_bucket);
61 int __mmplayer_gst_element_add_bucket_to_bin(GstBin* bin, GList* element_bucket);
62 int __mmplayer_gst_create_audio_pipeline(mm_player_t* player);
63 int __mmplayer_gst_create_video_pipeline(mm_player_t* player, GstCaps* caps, MMDisplaySurfaceType surface_type);
64 int __mmplayer_gst_create_text_pipeline(mm_player_t* player);
65 int __mmplayer_gst_create_subtitle_src(mm_player_t* player);
66 int __mmplayer_gst_create_pipeline(mm_player_t* player);
67 int __mmplayer_gst_destroy_pipeline(mm_player_t* player);
69 /* mm_player_priv_gst.c */
70 int __gst_realize(mm_player_t* player);
71 int __gst_unrealize(mm_player_t* player);
72 int __gst_pending_seek(mm_player_t* player);
73 int __gst_start(mm_player_t* player);
74 int __gst_stop(mm_player_t* player);
75 int __gst_pause(mm_player_t* player, gboolean async);
76 int __gst_resume(mm_player_t* player, gboolean async);
77 int __gst_set_position(mm_player_t* player, int format, unsigned long position, gboolean internal_called);
78 int __gst_get_position(mm_player_t* player, int format, unsigned long* position);
79 int __gst_get_buffer_position(mm_player_t* player, int format, unsigned long* start_pos, unsigned long* stop_pos);
80 int __gst_set_message_callback(mm_player_t* player, MMMessageCallback callback, gpointer user_param);
81 gboolean __gst_send_event_to_sink( mm_player_t* player, GstEvent* event );
82 gboolean __gst_seek(mm_player_t* player, GstElement * element, gdouble rate,
83 GstFormat format, GstSeekFlags flags, GstSeekType cur_type,
84 gint64 cur, GstSeekType stop_type, gint64 stop);
85 int __gst_adjust_subtitle_position(mm_player_t* player, int format, int position);
86 void __gst_appsrc_feed_data_mem(GstElement *element, guint size, gpointer user_data);
87 gboolean __gst_appsrc_seek_data_mem(GstElement *element, guint64 size, gpointer user_data);
88 void __gst_appsrc_feed_data(GstElement *element, guint size, gpointer user_data);
89 gboolean __gst_appsrc_seek_data(GstElement *element, guint64 offset, gpointer user_data);
90 gboolean __gst_appsrc_enough_data(GstElement *element, gpointer user_data);
92 #endif /*#ifndef __MM_PLAYER_LOCAL_FUNCTION_DEF_H_*/