*/
#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
*
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
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
*/
* 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
*
* @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.
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);
* @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
#define PLAYER_INI_MAX_DEVICE_TYPE 10
#define PLAYER_INI_MAX_SUPPORTED_MEDIA_FORMAT 10 /* @see MAX_SUPPORTED_MEDIA_FORMAT in player_private.h */
-/* NOTE : MMPlayer has no initalizing API for library itself
+/* NOTE : MMPlayer has no initializing API for library itself
* so we cannot decide when those ini values to be released.
* this is the reason of all string items are static array.
* make it do with malloc when MMPlayerInitialize() API created
/* video stream caps parsed by demuxer */
GstCaps *v_stream_caps;
- /* audio effect infomation */
+ /* audio effect information */
mm_audio_effect_info_t audio_effect_info;
gboolean bypass_audio_effect;
guint maximum_bitrate[MM_PLAYER_STREAM_COUNT_MAX];
guint total_maximum_bitrate;
- /* prevent it from posting duplicatly*/
+ /* prevent from posting duplicated BOS message */
gboolean sent_bos;
gboolean play_subtitle;
/* es player using feed-data callback or calling app_src_push_buffer directly*/
gboolean es_player_push_mode;
- /* tmb buffer manager for s/w codec tmb_bo */
+ /* tbm buffer manager for s/w codec tmb_bo */
tbm_bufmgr bufmgr;
mmplayer_adaptive_variant_info_t adaptive_info;
int _mmplayer_resume(MMHandleType hplayer);
int _mmplayer_set_position(MMHandleType hplayer, gint64 pos);
int _mmplayer_get_duration(MMHandleType hplayer, gint64 *duration);
-int _mmplayer_adjust_subtitle_postion(MMHandleType hplayer, int pos);
+int _mmplayer_adjust_subtitle_position(MMHandleType hplayer, int pos);
int _mmplayer_set_playspeed(MMHandleType hplayer, float rate, bool streaming);
int _mmplayer_set_message_callback(MMHandleType hplayer, MMMessageCallback callback, void *user_param);
int _mmplayer_set_audiostream_changed_cb(MMHandleType hplayer, mm_player_stream_changed_callback callback, void *user_param);
MMPLAYER_CMD_LOCK(player);
- result = _mmplayer_adjust_subtitle_postion(player, pos);
+ result = _mmplayer_adjust_subtitle_position(player, pos);
MMPLAYER_CMD_UNLOCK(player);
static GstPadProbeReturn __mmplayer_video_capture_probe(GstPad *pad, GstPadProbeInfo *info, gpointer u_data);
static int __mmplayer_get_video_frame_from_buffer(mmplayer_t *player, GstPad *pad, GstBuffer *buffer);
static gpointer __mmplayer_capture_thread(gpointer data);
-static void __csc_tiled_to_linear_crop(unsigned char *yuv420_dest, unsigned char *nv12t_src, int yuv420_width, int yuv420_height, int left, int top, int right, int buttom);
+static void __csc_tiled_to_linear_crop(unsigned char *yuv420_dest, unsigned char *nv12t_src, int yuv420_width, int yuv420_height, int left, int top, int right, int bottom);
static int __tile_4x2_read(int x_size, int y_size, int x_pos, int y_pos);
static int __mm_player_convert_colorspace(mmplayer_t *player, unsigned char *src_data, size_t src_size, mm_util_color_format_e src_fmt, unsigned int src_w, unsigned int src_h, mm_util_color_format_e dst_fmt);
static int __mm_player_convert_NV12_tiled(mmplayer_t *player);
MMPLAYER_CAPTURE_THREAD_SIGNAL(player);
MMPLAYER_CAPTURE_THREAD_UNLOCK(player);
- LOGD("waitting for capture thread exit");
+ LOGD("waiting for capture thread exit");
g_thread_join(player->capture_thread);
g_mutex_clear(&player->capture_thread_mutex);
g_cond_clear(&player->capture_thread_cond);
* height of tiled[in]
*
* @param x_pos
- * x position of tield[in]
+ * x position of tiled[in]
*
* @param src_size
- * y position of tield[in]
+ * y position of tiled[in]
*
* @return
* address of tiled data
/*
* Converts tiled data to linear
- * Crops left, top, right, buttom
+ * Crops left, top, right, bottom
* 1. Y of NV12T to Y of YUV420P
* 2. Y of NV12T to Y of YUV420S
* 3. UV of NV12T to UV of YUV420S
* @param right
* Crop size of right
*
- * @param buttom
- * Crop size of buttom
+ * @param bottom
+ * Crop size of bottom
*/
static void
__csc_tiled_to_linear_crop(unsigned char *yuv420_dest, unsigned char *nv12t_src, int yuv420_width, int yuv420_height,
- int left, int top, int right, int buttom)
+ int left, int top, int right, int bottom)
{
int i, j;
int tiled_offset = 0, tiled_offset1 = 0;
temp1 = temp3-left;
/* real width is greater than or equal 256 */
if (temp1 >= 256) {
- for (i = top; i < yuv420_height-buttom; i = i+1) {
+ for (i = top; i < yuv420_height-bottom; i = i+1) {
j = left;
temp3 = (j >> 8) << 8;
temp3 = temp3 >> 6;
temp4 = i >> 5;
if (temp4 & 0x1) {
- /* odd fomula: 2 + x + (x >> 2) << 2 + x_block_num * (y - 1) */
+ /* odd formula: 2 + x + (x >> 2) << 2 + x_block_num * (y - 1) */
tiled_offset = temp4 - 1;
temp1 = ((yuv420_width + 127) >> 7) << 7;
tiled_offset = tiled_offset * (temp1 >> 6);
} else {
temp2 = ((yuv420_height+31) >> 5) << 5;
if ((i + 32) < temp2) {
- /* even1 fomula: x + ((x + 2) >> 2) << 2 + x_block_num * y */
+ /* even1 formula: x + ((x + 2) >> 2) << 2 + x_block_num * y */
temp1 = temp3 + 2;
temp1 = (temp1 >> 2) << 2;
tiled_offset = temp3 + temp1;
tiled_offset1 = tiled_offset + 2048 * 6;
temp4 = 8;
} else {
- /* even2 fomula: x + x_block_num * y */
+ /* even2 formula: x + x_block_num * y */
temp1 = ((yuv420_width + 127) >> 7) << 7;
tiled_offset = temp4 * (temp1 >> 6);
tiled_offset = tiled_offset + temp3;
}
}
} else if (temp1 >= 64) {
- for (i = top; i < (yuv420_height - buttom); i++) {
+ for (i = top; i < (yuv420_height - bottom); i++) {
j = left;
tiled_offset = __tile_4x2_read(yuv420_width, yuv420_height, j, i);
temp2 = ((j + 64) >> 6) << 6;
}
}
} else {
- for (i = top; i < (yuv420_height - buttom); i++) {
+ for (i = top; i < (yuv420_height - bottom); i++) {
linear_offset = temp1 * (i - top);
for (j = left; j < (yuv420_width - right); j += 2) {
tiled_offset = __tile_4x2_read(yuv420_width, yuv420_height, j, i);
int ret = MM_ERROR_NONE;
int i, j;
- /* using original width otherwises, app can't know aligned to resize */
+ /* using original width otherwise, app can't know aligned to resize */
planes[0] = player->captured.stride_width[0] * player->captured.stride_height[0];
planes[1] = player->captured.stride_width[1] * player->captured.stride_height[1];
guint src_buffer_size = planes[0] + planes[1];
int ret = MM_ERROR_NONE;
int i;
- /* using original width otherwises, app can't know aligned to resize */
+ /* using original width otherwise, app can't know aligned to resize */
planes[0] = player->captured.stride_width[0] * player->captured.stride_height[0];
planes[1] = planes[2] = (player->captured.stride_width[0] >> 1)
* (player->captured.stride_height[0] >> 1);
MMPLAYER_RETURN_VAL_IF_FAIL(player, FALSE);
MMPLAYER_RETURN_VAL_IF_FAIL(error, FALSE);
- /* NOTE : do somthing necessary inside of __gst_handle_XXX_error. not here */
+ /* NOTE : do something necessary inside of __gst_handle_XXX_error. not here */
memset(&msg_param, 0, sizeof(MMMessageParamType));
msg_param.data = (void *)error->message;
- LOGE("-Msg src : [%s] Domain : [%s] Error : [%s] Code : [%d] is tranlated to error code : [0x%x]",
+ LOGE("-Msg src : [%s] Domain : [%s] Error : [%s] Code : [%d] is translated to error code : [0x%x]",
msg_src_element, g_quark_to_string(error->domain), error->message, error->code, msg_param.code);
}
return TRUE;
}
-/* if retval is FALSE, it will be dropped for perfomance. */
+/* if retval is FALSE, it will be dropped for performance. */
static gboolean
__mmplayer_gst_check_useful_message(mmplayer_t *player, GstMessage *message)
{
ret = _mmplayer_gst_set_position(player, player->pending_seek.pos, FALSE);
if (ret != MM_ERROR_NONE)
- LOGE("failed to seek pending postion. just keep staying current position.");
+ LOGE("failed to seek pending position. just keep staying current position.");
player->pending_seek.is_pending = false;
MMPLAYER_FENTER();
- /* NOTE : EOS event is comming multiple time. watch out it */
+ /* NOTE : EOS event is coming multiple time. watch out it */
/* check state. we only process EOS when pipeline state goes to PLAYING */
if (!(player->cmd == MMPLAYER_COMMAND_START || player->cmd == MMPLAYER_COMMAND_RESUME)) {
LOGD("EOS received on non-playing state. ignoring it");
/* dump state of all element */
_mmplayer_dump_pipeline_state(player);
} else {
- /* traslate gst error code to msl error code. then post it
+ /* translate gst error code to msl error code. then post it
* to application if needed
*/
__mmplayer_handle_gst_error(player, msg, error);
player->seek_state = MMPLAYER_SEEK_NONE;
MMPLAYER_POST_MSG(player, MM_MESSAGE_SEEK_COMPLETED, NULL);
} else if (MMPLAYER_TARGET_STATE(player) == MM_PLAYER_STATE_PLAYING) {
- /* Considering the async state trasition in case of RTSP.
- After getting state change gst msg, seek cmpleted msg will be posted. */
+ /* Considering the async state transition in case of RTSP.
+ After getting state change gst msg, seek completed msg will be posted. */
player->seek_state = MMPLAYER_SEEK_COMPLETED;
}
}
retVal = _mmplayer_gst_set_position(player, player->pending_seek.pos, TRUE);
if (MM_ERROR_NONE != retVal)
- LOGE("failed to seek pending postion. just keep staying current position.");
+ LOGE("failed to seek pending position. just keep staying current position.");
player->pending_seek.is_pending = false;
}
{
if (MMPLAYER_IS_STREAMING(player)) {
// managed prepare async case when buffering is completed
- // pending state should be reset otherwise, it's still playing even though it's resumed after bufferging.
+ // pending state should be reset otherwise, it's still playing even though it's resumed after buffering.
if ((MMPLAYER_CURRENT_STATE(player) != MM_PLAYER_STATE_PLAYING) ||
(MMPLAYER_PENDING_STATE(player) == MM_PLAYER_STATE_PLAYING))
MMPLAYER_SET_STATE(player, MM_PLAYER_STATE_PLAYING);
}
/* custom message for RTSP attribute :
- RTSP case, buffer is not come from server before PLAYING state. However,we have to get attribute after PAUSE state chaged.
+ RTSP case, buffer is not come from server before PLAYING state. However,we have to get attribute after PAUSE state changed.
sdp which has contents info is received when rtsp connection is opened.
extract duration ,codec info , resolution from sdp and get it by GstMessage */
if (!strcmp(structure_name, "rtspsrc_properties")) {
NEW_ELEMENT:
- /* excute new_element if created*/
+ /* execute new_element if created*/
if (new_element) {
LOGD("adding new element to pipeline");
gst_object_unref(sinkpad);
sinkpad = NULL;
- /* run. setting PLAYING here since streamming source is live source */
+ /* run. setting PLAYING here since streaming source is live source */
MMPLAYER_ELEMENT_SET_STATE(new_element, GST_STATE_PLAYING);
}
* [1] audio and video will be dumped with filesink.
* [2] autoplugging is done by just using pad caps.
- * [3] typefinding has happend in audio but audiosink is created already before no-more-pad signal
+ * [3] typefinding has happened in audio but audiosink is created already before no-more-pad signal
* and the video will be dumped via filesink.
*/
if (player->num_dynamic_pad == 0) {
- LOGD("it seems pad caps is directely used for autoplugging. removing fakesink now");
+ LOGD("it seems pad caps is directly used for autoplugging. removing fakesink now");
if (!_mmplayer_gst_remove_fakesink(player,
&player->pipeline->mainbin[MMPLAYER_M_SRC_FAKESINK]))
return NULL;
}
- LOGD("using http streamming source [%s]", player->ini.httpsrc_element);
+ LOGD("using http streaming source [%s]", player->ini.httpsrc_element);
element = gst_element_factory_make(player->ini.httpsrc_element, "http_streaming_source");
if (!element) {
return MM_ERROR_NONE;
/* NOTE : duration cannot be zero except live streaming.
- * Since some element could have some timing problemn with quering duration, try again.
+ * Since some element could have some timing problem with querying duration, try again.
*/
if (player->duration == 0) {
if (!gst_element_query_duration(player->pipeline->mainbin[MMPLAYER_M_PIPE].gst, GST_FORMAT_TIME, &dur_nsec)) {
MMPLAYER_TARGET_STATE(player) = MM_PLAYER_STATE_PLAYING;
if (__mmplayer_gst_pending_seek(player) != MM_ERROR_NONE)
- LOGW("failed to seek pending postion. starting from the begin of content");
+ LOGW("failed to seek pending position. starting from the begin of content");
}
LOGD("current state before doing transition");
return MM_ERROR_PLAYER_INTERNAL;
}
- /* Just set state to PAUESED and the rewind. it's usual player behavior. */
+ /* Just set state to PAUSED and the rewind. it's usual player behavior. */
timeout = MMPLAYER_STATE_CHANGE_TIMEOUT(player);
if ((!MMPLAYER_IS_STREAMING(player) && !MMPLAYER_IS_MS_BUFF_SRC(player)) ||
LOGD("sending event[%s] to sink element [%s] success!",
GST_EVENT_TYPE_NAME(event), GST_ELEMENT_NAME(sink));
- /* rtsp case, asyn_done is not called after seek during pause state */
+ /* rtsp case, async_done is not called after seek during pause state */
if (MMPLAYER_IS_RTSP_STREAMING(player)) {
if (GST_EVENT_TYPE(event) == GST_EVENT_SEEK) {
if (MMPLAYER_TARGET_STATE(player) == MM_PLAYER_STATE_PAUSED) {
}
/* Note : Textbin is not linked to the video or audio bin.
- * It needs to send the event to the text sink seperatelly.
+ * It needs to send the event to the text sink seperately.
*/
if (player->play_subtitle && player->pipeline) {
GstElement *text_sink = GST_ELEMENT_CAST(player->pipeline->textbin[MMPLAYER_T_FAKE_SINK].gst);
{
int ret = MM_ERROR_NONE;
gint64 pos_nsec = 0;
- gboolean accurated = FALSE;
+ gboolean accurate = FALSE;
GstSeekFlags seek_flags = GST_SEEK_FLAG_FLUSH;
MMPLAYER_FENTER();
player->seek_state = MMPLAYER_SEEK_NONE;
MMPLAYER_POST_MSG(player, MM_MESSAGE_SEEK_COMPLETED, NULL);
} else {
- mm_attrs_get_int_by_name(player->attrs, "accurate_seek", &accurated);
- if (accurated)
+ mm_attrs_get_int_by_name(player->attrs, "accurate_seek", &accurate);
+ if (accurate)
seek_flags |= GST_SEEK_FLAG_ACCURATE;
else
seek_flags |= GST_SEEK_FLAG_KEY_UNIT;
*/
player->last_position = position;
- /* MSL should guarante playback rate when seek is selected during trick play of fast forward. */
+ /* MSL should guarantee playback rate when seek is selected during trick play of fast forward. */
if (player->playback_rate > 1.0)
_mmplayer_set_playspeed((MMHandleType)player, player->playback_rate, FALSE);
/* NOTE : get last point to overcome some bad operation of some elements
*(returning zero when getting current position in paused state
- * and when failed to get postion during seeking
+ * and when failed to get position during seeking
*/
if ((current_state == MM_PLAYER_STATE_PAUSED) || (!ret)) {
LOGD("pos_nsec = %"GST_TIME_FORMAT" and ret = %d and state = %d", GST_TIME_ARGS(pos_nsec), ret, current_state);
#define MM_VOLUME_FACTOR_MAX 1.0
/* Don't need to sleep for sound fadeout
- * fadeout related fucntion will be deleted(Deprecated)
+ * fadeout related function will be deleted(Deprecated)
*/
#define MM_PLAYER_FADEOUT_TIME_DEFAULT 0
}
/* this function sets the player state and also report
- * it to applicaton by calling callback function
+ * it to application by calling callback function
*/
void
_mmplayer_set_state(mmplayer_t *player, int state)
MMPLAYER_RETURN_VAL_IF_FAIL(player, MM_ERROR_PLAYER_NOT_INITIALIZED);
#ifdef __DEBUG__
- LOGD("incomming command : %d ", command);
+ LOGD("incoming command : %d ", command);
#endif
current_state = MMPLAYER_CURRENT_STATE(player);
pending_state = MMPLAYER_PENDING_STATE(player);
if (pending_state == MM_PLAYER_STATE_NONE) {
if (current_state == MM_PLAYER_STATE_PAUSED)
goto NO_OP;
- else if (current_state != MM_PLAYER_STATE_PLAYING && current_state != MM_PLAYER_STATE_READY) // support loading state of broswer
+ else if (current_state != MM_PLAYER_STATE_PLAYING && current_state != MM_PLAYER_STATE_READY) // support loading state of browser
goto INVALID_STATE;
} else if (pending_state == MM_PLAYER_STATE_PAUSED) {
goto ALREADY_GOING;
gst_element_set_locked_state(fakesink->gst, TRUE);
/* setting the state to NULL never returns async
- * so no need to wait for completion of state transiton
+ * so no need to wait for completion of state transition
*/
if (GST_STATE_CHANGE_FAILURE == gst_element_set_state(fakesink->gst, GST_STATE_NULL))
LOGE("fakesink state change failure!");
return ret;
}
-/* create fakesink for audio or video path witout audiobin or videobin */
+/* create fakesink for audio or video path without audiobin or videobin */
static void
__mmplayer_gst_make_fakesink(mmplayer_t *player, GstPad *pad, const gchar *name)
{
MMPLAYER_RETURN_VAL_IF_FAIL(player && text_selector, FALSE);
if (MMPLAYER_IS_MS_BUFF_SRC(player)) {
- LOGD("text path is not supproted");
+ LOGD("text path is not supported");
return TRUE;
}
player->textsink_linked = 1;
} else {
/* linked textbin exist which means that the external subtitle path exist already */
- LOGW("ignoring internal subtutle since external subtitle is available");
+ LOGW("ignoring internal subtitle since external subtitle is available");
}
}
sink_pad_name = "text_sink";
if (rotation_angle >= 360)
rotation_angle -= 360;
- /* chech if supported or not */
+ /* check if supported or not */
if (rotation_angle % 90) {
LOGD("not supported rotation angle = %d", rotation_angle);
return FALSE;
}
if (display_angle) {
- /* update user roation */
+ /* update user rotation */
mm_attrs_get_int_by_name(attrs, "display_rotation", &display_rotation);
/* Counter clockwise */
}
}
- /* release audiobin with it's childs */
+ /* release audiobin with it's children */
if (audiobin[MMPLAYER_A_BIN].gst)
gst_object_unref(GST_OBJECT(audiobin[MMPLAYER_A_BIN].gst));
/* set size and timestamp */
mem = gst_buffer_peek_memory(buffer, 0);
stream->length_total = gst_memory_get_sizes(mem, NULL, NULL);
- stream->timestamp = (unsigned int)(GST_TIME_AS_MSECONDS(GST_BUFFER_PTS(buffer))); /* nano sec -> mili sec */
+ stream->timestamp = (unsigned int)(GST_TIME_AS_MSECONDS(GST_BUFFER_PTS(buffer))); /* nano sec -> milli sec */
/* check zero-copy */
if (player->set_mode.video_zc &&
if (pad)
gst_object_unref(GST_OBJECT(pad));
- /* release videobin with it's childs */
+ /* release videobin with it's children */
if (videobin[MMPLAYER_V_BIN].gst)
gst_object_unref(GST_OBJECT(videobin[MMPLAYER_V_BIN].gst));
}
}
- /* release textbin with it's childs */
+ /* release textbin with it's children */
if (textbin[MMPLAYER_T_BIN].gst)
gst_object_unref(GST_OBJECT(textbin[MMPLAYER_T_BIN].gst));
/* release signal */
__mmplayer_release_signal_connection(player, MM_PLAYER_SIGNAL_TYPE_TEXTBIN);
- /* release textbin with it's childs */
+ /* release textbin with it's children */
gst_object_unref(GST_OBJECT(textbin[MMPLAYER_T_BIN].gst));
MMPLAYER_FREEIF(player->pipeline->textbin);
player->pipeline->textbin = textbin = NULL;
if (player->pipeline->textbin) {
LOGE("remove textbin");
- /* release textbin with it's childs */
+ /* release textbin with it's children */
MMPLAYER_RELEASE_ELEMENT(player, player->pipeline->textbin, MMPLAYER_T_BIN);
MMPLAYER_FREEIF(player->pipeline->textbin);
player->pipeline->textbin = NULL;
return MM_ERROR_NONE;
}
- /* check current postion */
+ /* check current position */
player->adjust_subtitle_pos = position;
LOGD("save adjust_subtitle_pos in player");
goto INIT_ERROR;
}
- /* Note : check whether subtitle atrribute uri is set. If uri is set, then try to play subtitle file */
+ /* Note : check whether subtitle attribute uri is set. If uri is set, then try to play subtitle file */
if (__mmplayer_check_subtitle(player)
&& (__mmplayer_gst_create_text_pipeline(player) != MM_ERROR_NONE))
LOGE("failed to create text pipeline");
if (MMPLAYER_CURRENT_STATE(player) == MM_PLAYER_STATE_NULL
|| MMPLAYER_CURRENT_STATE(player) == MM_PLAYER_STATE_NONE) {
- LOGW("player alreay destoryed");
+ LOGW("player already destroyed");
MMPLAYER_CMD_UNLOCK(player);
return TRUE;
}
MMPLAYER_GAPLESS_PLAY_THREAD_SIGNAL(player);
MMPLAYER_GAPLESS_PLAY_THREAD_UNLOCK(player);
- LOGD("waitting for gapless play thread exit");
+ LOGD("waiting for gapless play thread exit");
g_thread_join(player->gapless_play_thread);
g_mutex_clear(&player->gapless_play_thread_mutex);
g_cond_clear(&player->gapless_play_thread_cond);
/* check current state */
MMPLAYER_CHECK_STATE(player, MMPLAYER_COMMAND_PAUSE);
- /* check pipline reconfigure state */
+ /* check pipeline reconfigure state */
__mmplayer_check_pipeline_reconfigure_state(player);
switch (MMPLAYER_CURRENT_STATE(player)) {
case MM_PLAYER_STATE_READY:
{
/* check prepare async or not.
- * In the case of streaming playback, it's recommned to avoid blocking wait.
+ * In the case of streaming playback, it's recommended to avoid blocking wait.
*/
mm_attrs_get_int_by_name(player->attrs, "profile_prepare_async", &async);
LOGD("prepare working mode : %s", (async ? "async" : "sync"));
MMPLAYER_RETURN_VAL_IF_FAIL(player, MM_ERROR_PLAYER_NOT_INITIALIZED);
- /* check pipline reconfigure state */
+ /* check pipeline reconfigure state */
__mmplayer_check_pipeline_reconfigure_state(player);
ret = _mmplayer_gst_set_position(player, position, FALSE);
}
int
-_mmplayer_adjust_subtitle_postion(MMHandleType hplayer, int position)
+_mmplayer_adjust_subtitle_position(MMHandleType hplayer, int position)
{
mmplayer_t *player = (mmplayer_t *)hplayer;
int ret = MM_ERROR_NONE;
/* filtering exclude keyword */
for (idx = 0; player->ini.exclude_element_keyword[idx][0] != '\0'; idx++) {
if (strstr(factory_name, player->ini.exclude_element_keyword[idx])) {
- LOGW("skipping [%s] by exculde keyword [%s]",
+ LOGW("skipping [%s] by exclude keyword [%s]",
factory_name, player->ini.exclude_element_keyword[idx]);
result = GST_AUTOPLUG_SELECT_SKIP;
/* release signal */
__mmplayer_release_signal_connection(player, MM_PLAYER_SIGNAL_TYPE_TEXTBIN);
- /* release textbin with it's childs */
+ /* release textbin with it's children */
MMPLAYER_RELEASE_ELEMENT(player, player->pipeline->textbin, MMPLAYER_T_BIN);
MMPLAYER_FREEIF(player->pipeline->textbin);
player->pipeline->textbin = NULL;
current_state = GST_STATE(mainbin[MMPLAYER_M_PIPE].gst);
if (current_state < GST_STATE_PAUSED) {
result = MM_ERROR_PLAYER_INVALID_STATE;
- LOGW("Pipeline not in porper state");
+ LOGW("Pipeline not in proper state");
goto EXIT;
}
if (state != STORAGE_STATE_UNMOUNTABLE && state != STORAGE_STATE_REMOVED)
return MM_ERROR_NONE;
- /* FIXME: text path should be handled seperately. */
+ /* FIXME: text path should be handled separately. */
if (((player->storage_info[MMPLAYER_PATH_VOD].type == STORAGE_TYPE_EXTERNAL)
&& (player->storage_info[MMPLAYER_PATH_VOD].id == id)) ||
((player->storage_info[MMPLAYER_PATH_TEXT].type == STORAGE_TYPE_EXTERNAL)
}
if (!caps_v) {
- LOGD("no negitiated caps from videosink");
+ LOGD("no negotiated caps from videosink");
gst_object_unref(pad);
return FALSE;
}
gchar *path = NULL;
struct stat sb;
- /* FIXIT : please make it clear the dependancy with duration/codec/uritype */
+ /* FIXIT : please make it clear the dependency with duration/codec/uritype */
if (!player->duration)
return FALSE;
/* try to get content metadata */
/* NOTE : giving ATTR_MISSING_ONLY may have dependency with
- * c-api since c-api doesn't use _start() anymore. It may not work propery with
+ * c-api since c-api doesn't use _start() anymore. It may not work properly with
* legacy mmfw-player api
*/
_mmplayer_update_content_attrs(player, ATTR_MISSING_ONLY);
LOGD("adjusted bytes : %d or %d", buffering_bytes,
(gint)(bitrate_info.byte_out_rate * buffer_buffering_time / 1000));
- /* start monitoring the abmormal state */
+ /* start monitoring the abnormal state */
if (content_info.position > 0)
streamer->default_val.buffering_monitor = TRUE;
MMPLAYER_RETURN_VAL_IF_FAIL((code && (stream_index >= 0) &&
(stream_index < player->track[type].total_track_num)), MM_ERROR_INVALID_ARGUMENT);
- LOGD("type: %d, track count: %d, intput idx: %d", type, player->track[type].total_track_num, stream_index);
+ LOGD("type: %d, track count: %d, input idx: %d", type, player->track[type].total_track_num, stream_index);
*code = (gchar *)g_malloc0(LANGUAGE_CODE_SIZE * sizeof(char));
/* create reconfigure lock & cond */
g_mutex_init(&new_player->reconfigure_lock);
- g_cond_init(&new_player->recongifure_cond);
+ g_cond_init(&new_player->reconfigure_cond);
/* load ini files */
if (mm_player_ini_load(&new_player->ini) != MM_ERROR_NONE) {