From: Gilbok Lee Date: Tue, 20 Feb 2018 05:23:35 +0000 (+0900) Subject: [0.6.94] Fix bug for getting audio bitrate X-Git-Tag: submit/tizen/20180228.035826~2^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=8eb9bddf8eeb4ba07fa77e96b2c7e81de01a4d1b;p=platform%2Fcore%2Fmultimedia%2Flibmm-player.git [0.6.94] Fix bug for getting audio bitrate Change-Id: Idc9cf8ace21a195d29ce548571aa1c5bc071580b --- diff --git a/packaging/libmm-player.spec b/packaging/libmm-player.spec index 0a9f86d..eb42865 100644 --- a/packaging/libmm-player.spec +++ b/packaging/libmm-player.spec @@ -1,6 +1,6 @@ Name: libmm-player Summary: Multimedia Framework Player Library -Version: 0.6.93 +Version: 0.6.94 Release: 0 Group: Multimedia/Libraries License: Apache-2.0 diff --git a/src/include/mm_player_priv.h b/src/include/mm_player_priv.h index 76c326d..972aded 100644 --- a/src/include/mm_player_priv.h +++ b/src/include/mm_player_priv.h @@ -768,10 +768,8 @@ typedef struct { /* contents bitrate for buffering management */ guint bitrate[MM_PLAYER_STREAM_COUNT_MAX]; guint total_bitrate; - guint updated_bitrate_count; guint maximum_bitrate[MM_PLAYER_STREAM_COUNT_MAX]; guint total_maximum_bitrate; - guint updated_maximum_bitrate_count; /* prevent it from posting duplicatly*/ gboolean sent_bos; diff --git a/src/mm_player_priv.c b/src/mm_player_priv.c index cab514a..a0d7bcd 100644 --- a/src/mm_player_priv.c +++ b/src/mm_player_priv.c @@ -1960,32 +1960,43 @@ do { \ } while (0) #define MMPLAYER_UPDATE_TAG_UINT(gsttag, attribute, playertag) \ -if (gst_tag_list_get_uint(tag_list, gsttag, &v_uint)) { \ - if (v_uint) { \ - if (!strncmp(gsttag, GST_TAG_BITRATE, strlen(GST_TAG_BITRATE))) { \ - if (player->updated_bitrate_count == 0) \ - mm_attrs_set_int_by_name(attribute, "content_audio_bitrate", v_uint); \ - if (player->updated_bitrate_count < MM_PLAYER_STREAM_COUNT_MAX) { \ - player->bitrate[player->updated_bitrate_count] = v_uint;\ - player->total_bitrate += player->bitrate[player->updated_bitrate_count]; \ - player->updated_bitrate_count++; \ - mm_attrs_set_int_by_name(attribute, playertag, player->total_bitrate);\ - SECURE_LOGD("update bitrate %d[bps] of stream #%d.\n", v_uint, player->updated_bitrate_count);\ - } \ - } else if (!strncmp(gsttag, GST_TAG_MAXIMUM_BITRATE, strlen(GST_TAG_MAXIMUM_BITRATE))) {\ - if (player->updated_maximum_bitrate_count < MM_PLAYER_STREAM_COUNT_MAX) {\ - player->maximum_bitrate[player->updated_maximum_bitrate_count] = v_uint;\ - player->total_maximum_bitrate += player->maximum_bitrate[player->updated_maximum_bitrate_count]; \ - player->updated_maximum_bitrate_count++; \ - mm_attrs_set_int_by_name(attribute, playertag, player->total_maximum_bitrate); \ - SECURE_LOGD("update maximum bitrate %d[bps] of stream #%d\n", v_uint, player->updated_maximum_bitrate_count);\ +do { \ + if (gst_tag_list_get_uint(tag_list, gsttag, &v_uint)) { \ + if (v_uint) { \ + int i = 0; \ + gchar *tag_list_str = NULL; \ + MMPlayerTrackType track_type = MM_PLAYER_TRACK_TYPE_AUDIO; \ + tag_list_str = gst_tag_list_to_string(tag_list); \ + if (tag_list_str && strstr(tag_list_str, "audio")) \ + track_type = MM_PLAYER_TRACK_TYPE_AUDIO; \ + else if (tag_list_str && strstr(tag_list_str, "video")) \ + track_type = MM_PLAYER_TRACK_TYPE_VIDEO; \ + else \ + track_type = MM_PLAYER_TRACK_TYPE_TEXT; \ + if (!strncmp(gsttag, GST_TAG_BITRATE, strlen(GST_TAG_BITRATE))) { \ + if (track_type == MM_PLAYER_TRACK_TYPE_AUDIO) \ + mm_attrs_set_int_by_name(attribute, "content_audio_bitrate", v_uint); \ + player->bitrate[track_type] = v_uint; \ + player->total_bitrate = 0; \ + for (i = 0; i < MM_PLAYER_STREAM_COUNT_MAX; i++) \ + player->total_bitrate += player->bitrate[i]; \ + mm_attrs_set_int_by_name(attribute, playertag, player->total_bitrate); \ + SECURE_LOGD("update bitrate %d[bps] of stream #%d.\n", v_uint, (int)track_type); \ + } else if (!strncmp(gsttag, GST_TAG_MAXIMUM_BITRATE, strlen(GST_TAG_MAXIMUM_BITRATE))) { \ + player->maximum_bitrate[track_type] = v_uint; \ + player->total_maximum_bitrate = 0; \ + for (i = 0; i < MM_PLAYER_STREAM_COUNT_MAX; i++) \ + player->total_maximum_bitrate += player->maximum_bitrate[i]; \ + mm_attrs_set_int_by_name(attribute, playertag, player->total_maximum_bitrate);\ + SECURE_LOGD("update maximum bitrate %d[bps] of stream #%d\n", v_uint, (int)track_type);\ + } else { \ + mm_attrs_set_int_by_name(attribute, playertag, v_uint); \ } \ - } else { \ - mm_attrs_set_int_by_name(attribute, playertag, v_uint); \ + v_uint = 0;\ + g_free(tag_list_str); \ } \ - v_uint = 0;\ } \ -} +} while (0) #define MMPLAYER_UPDATE_TAG_DATE(gsttag, attribute, playertag) \ if (gst_tag_list_get_date(tag_list, gsttag, &date)) {\ @@ -10918,9 +10929,7 @@ __mmplayer_initialize_next_play(mm_player_t *player) player->play_subtitle = FALSE; player->adjust_subtitle_pos = 0; - player->updated_bitrate_count = 0; player->total_bitrate = 0; - player->updated_maximum_bitrate_count = 0; player->total_maximum_bitrate = 0; _mmplayer_track_initialize(player); @@ -12015,9 +12024,7 @@ __mmplayer_release_misc(mm_player_t* player) player->doing_seek = FALSE; - player->updated_bitrate_count = 0; player->total_bitrate = 0; - player->updated_maximum_bitrate_count = 0; player->total_maximum_bitrate = 0; player->not_found_demuxer = 0;