[0.6.94] Fix bug for getting audio bitrate 31/170431/1
authorGilbok Lee <gilbok.lee@samsung.com>
Tue, 20 Feb 2018 05:23:35 +0000 (14:23 +0900)
committerGilbok Lee <gilbok.lee@samsung.com>
Tue, 20 Feb 2018 05:23:38 +0000 (14:23 +0900)
Change-Id: Idc9cf8ace21a195d29ce548571aa1c5bc071580b

packaging/libmm-player.spec
src/include/mm_player_priv.h
src/mm_player_priv.c

index 0a9f86d..eb42865 100644 (file)
@@ -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
index 76c326d..972aded 100644 (file)
@@ -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;
index cab514a..a0d7bcd 100644 (file)
@@ -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;