{
mm_player_t *player = (mm_player_t*)user_data;
MMPlayerStreamType type = MM_PLAYER_STREAM_TYPE_DEFAULT;
-
+ guint64 current_level_bytes=0;
MMPLAYER_RETURN_IF_FAIL ( player );
LOGI("app-src: feed data\n");
+ g_object_get(G_OBJECT(element), "current-level-bytes", ¤t_level_bytes, NULL);
if (player->media_stream_buffer_status_cb[type])
- player->media_stream_buffer_status_cb[type](type, MM_PLAYER_MEDIA_STREAM_BUFFER_UNDERRUN, player->buffer_cb_user_param);
+ player->media_stream_buffer_status_cb[type](type, MM_PLAYER_MEDIA_STREAM_BUFFER_UNDERRUN, current_level_bytes, player->buffer_cb_user_param);
}
static gboolean
{
mm_player_t *player = (mm_player_t*)user_data;
MMPlayerStreamType type = MM_PLAYER_STREAM_TYPE_DEFAULT;
+ guint64 current_level_bytes=0;
MMPLAYER_RETURN_VAL_IF_FAIL ( player, FALSE );
LOGI("app-src: enough data:%p\n", player->media_stream_buffer_status_cb[type]);
+ g_object_get(G_OBJECT(element), "current-level-bytes", ¤t_level_bytes, NULL);
+
if (player->media_stream_buffer_status_cb[type])
- player->media_stream_buffer_status_cb[type](type, MM_PLAYER_MEDIA_STREAM_BUFFER_OVERFLOW, player->buffer_cb_user_param);
+ player->media_stream_buffer_status_cb[type](type, MM_PLAYER_MEDIA_STREAM_BUFFER_OVERFLOW, current_level_bytes, player->buffer_cb_user_param);
return TRUE;
}
LOGE ("create es_video_queue for es player failed\n");
goto INIT_ERROR;
}
+ g_object_set(G_OBJECT(es_video_queue), "max-size-buffers", 2, NULL);
mainbin[MMPLAYER_M_V_BUFFER].id = MMPLAYER_M_V_BUFFER;
mainbin[MMPLAYER_M_V_BUFFER].gst = es_video_queue;
element_bucket = g_list_append(element_bucket, &mainbin[MMPLAYER_M_V_BUFFER]);
LOGE ("create es_audio_queue for es player failed\n");
goto INIT_ERROR;
}
+ g_object_set(G_OBJECT(es_audio_queue), "max-size-buffers", 2, NULL);
+
mainbin[MMPLAYER_M_A_BUFFER].id = MMPLAYER_M_A_BUFFER;
mainbin[MMPLAYER_M_A_BUFFER].gst = es_audio_queue;
element_bucket = g_list_append(element_bucket, &mainbin[MMPLAYER_M_A_BUFFER]);
{
mm_player_t *player = (mm_player_t*)user_data;
MMPlayerStreamType type = MM_PLAYER_STREAM_TYPE_AUDIO;
+ guint64 current_level_bytes=0;
MMPLAYER_RETURN_IF_FAIL ( player );
- LOGI("app-src: feed audio\n");
+ g_object_get(G_OBJECT(element), "current-level-bytes", ¤t_level_bytes, NULL);
+
+ LOGI("app-src: feed audio (%llu)\n", current_level_bytes);
if (player->media_stream_buffer_status_cb[type])
{
- player->media_stream_buffer_status_cb[type](type, MM_PLAYER_MEDIA_STREAM_BUFFER_UNDERRUN, player->buffer_cb_user_param);
+ player->media_stream_buffer_status_cb[type](type, MM_PLAYER_MEDIA_STREAM_BUFFER_UNDERRUN, current_level_bytes, player->buffer_cb_user_param);
}
}
{
mm_player_t *player = (mm_player_t*)user_data;
MMPlayerStreamType type = MM_PLAYER_STREAM_TYPE_VIDEO;
+ guint64 current_level_bytes=0;
MMPLAYER_RETURN_IF_FAIL ( player );
- LOGI("app-src: feed video\n");
+ g_object_get(G_OBJECT(element), "current-level-bytes", ¤t_level_bytes, NULL);
+
+ LOGI("app-src: feed video (%llu)\n", current_level_bytes);
if (player->media_stream_buffer_status_cb[type])
{
- player->media_stream_buffer_status_cb[type](type, MM_PLAYER_MEDIA_STREAM_BUFFER_UNDERRUN, player->buffer_cb_user_param);
+ player->media_stream_buffer_status_cb[type](type, MM_PLAYER_MEDIA_STREAM_BUFFER_UNDERRUN, current_level_bytes, player->buffer_cb_user_param);
}
}
{
mm_player_t *player = (mm_player_t*)user_data;
MMPlayerStreamType type = MM_PLAYER_STREAM_TYPE_TEXT;
+ guint64 current_level_bytes=0;
MMPLAYER_RETURN_IF_FAIL ( player );
LOGI("app-src: feed subtitle\n");
+ g_object_get(G_OBJECT(element), "current-level-bytes", ¤t_level_bytes, NULL);
+
if (player->media_stream_buffer_status_cb[type])
{
- player->media_stream_buffer_status_cb[type](type, MM_PLAYER_MEDIA_STREAM_BUFFER_UNDERRUN, player->buffer_cb_user_param);
+ player->media_stream_buffer_status_cb[type](type, MM_PLAYER_MEDIA_STREAM_BUFFER_UNDERRUN, current_level_bytes, player->buffer_cb_user_param);
}
}
{
mm_player_t *player = (mm_player_t*)user_data;
MMPlayerStreamType type = MM_PLAYER_STREAM_TYPE_AUDIO;
+ guint64 current_level_bytes=0;
MMPLAYER_RETURN_IF_FAIL ( player );
LOGI("app-src: audio buffer is full.\n");
+ g_object_get(G_OBJECT(element), "current-level-bytes", ¤t_level_bytes, NULL);
+
if (player->media_stream_buffer_status_cb[type])
{
- player->media_stream_buffer_status_cb[type](type, MM_PLAYER_MEDIA_STREAM_BUFFER_OVERFLOW, player->buffer_cb_user_param);
+ player->media_stream_buffer_status_cb[type](type, MM_PLAYER_MEDIA_STREAM_BUFFER_OVERFLOW, current_level_bytes, player->buffer_cb_user_param);
}
}
{
mm_player_t *player = (mm_player_t*)user_data;
MMPlayerStreamType type = MM_PLAYER_STREAM_TYPE_VIDEO;
+ guint64 current_level_bytes=0;
MMPLAYER_RETURN_IF_FAIL ( player );
LOGI("app-src: video buffer is full.\n");
+ g_object_get(G_OBJECT(element), "current-level-bytes", ¤t_level_bytes, NULL);
+
if (player->media_stream_buffer_status_cb[type])
{
- player->media_stream_buffer_status_cb[type](type, MM_PLAYER_MEDIA_STREAM_BUFFER_OVERFLOW, player->buffer_cb_user_param);
+ player->media_stream_buffer_status_cb[type](type, MM_PLAYER_MEDIA_STREAM_BUFFER_OVERFLOW, current_level_bytes, player->buffer_cb_user_param);
}
}