[0.6.115] add orient info into video data 11/180211/1
authorEunhae Choi <eunhae1.choi@samsung.com>
Fri, 25 May 2018 10:39:34 +0000 (19:39 +0900)
committerEunhae Choi <eunhae1.choi@samsung.com>
Fri, 25 May 2018 10:39:34 +0000 (19:39 +0900)
Change-Id: I1393902d85f4ec83b522399f4f49481887ee3b1d

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

index 05e2954..cd5e144 100644 (file)
@@ -1,6 +1,6 @@
 Name:       libmm-player
 Summary:    Multimedia Framework Player Library
-Version:    0.6.114
+Version:    0.6.115
 Release:    0
 Group:      Multimedia/Libraries
 License:    Apache-2.0
index d257ae6..643e9ef 100644 (file)
@@ -274,6 +274,7 @@ typedef struct {
        void *internal_buffer;                 /**< Internal buffer pointer */
        int stride[BUFFER_MAX_PLANE_NUM];      /**< stride of plane */
        int elevation[BUFFER_MAX_PLANE_NUM];   /**< elevation of plane */
+       int orientation;                       /**< orientation */
 } MMPlayerVideoStreamDataType;
 
 /**
index 34f4350..96aba6e 100644 (file)
@@ -960,41 +960,50 @@ __mmplayer_get_video_angle(mm_player_t* player, int *user_angle, int *org_angle)
                return MM_ERROR_PLAYER_INTERNAL;
        }
 
-       /* update user roation */
-       mm_attrs_get_int_by_name(attrs, "display_rotation", &user_angle_type);
-
-       /* get angle with user type */
-       switch (user_angle_type) {
-       case MM_DISPLAY_ROTATION_NONE:
-               *user_angle = 0;
-               break;
-       case MM_DISPLAY_ROTATION_90: /* counter-clockwise 90 */
-               *user_angle = 270;
-               break;
-       case MM_DISPLAY_ROTATION_180:
-               *user_angle = 180;
-               break;
-       case MM_DISPLAY_ROTATION_270: /* clockwise 90 */
-               *user_angle = 90;
-               break;
+       if (user_angle) {
+               /* update user roation */
+               mm_attrs_get_int_by_name(attrs, "display_rotation", &user_angle_type);
+
+               /* get angle with user type */
+               switch (user_angle_type) {
+               case MM_DISPLAY_ROTATION_NONE:
+                       *user_angle = 0;
+                       break;
+               case MM_DISPLAY_ROTATION_90: /* counter-clockwise 90 */
+                       *user_angle = 270;
+                       break;
+               case MM_DISPLAY_ROTATION_180:
+                       *user_angle = 180;
+                       break;
+               case MM_DISPLAY_ROTATION_270: /* clockwise 90 */
+                       *user_angle = 90;
+                       break;
+               default:
+                       LOGW("wrong angle type : %d", user_angle_type);
+                       break;
+               }
+               LOGD("check user angle: %d", *user_angle);
        }
 
-       /* get original orientation */
-       mm_attrs_get_string_by_name(attrs, "content_video_orientation", &org_orient);
+       if (org_angle) {
+               /* get original orientation */
+               mm_attrs_get_string_by_name(attrs, "content_video_orientation", &org_orient);
 
-       if (org_orient) {
-               if (!strcmp(org_orient, "rotate-90"))
-                       *org_angle = 90;
-               else if (!strcmp(org_orient, "rotate-180"))
-                       *org_angle = 180;
-               else if (!strcmp(org_orient, "rotate-270"))
-                       *org_angle = 270;
-               else
-                       LOGD("original rotation is %s", org_orient);
-       } else
-               LOGD("content_video_orientation get fail");
+               if (org_orient) {
+                       if (!strcmp(org_orient, "rotate-90"))
+                               *org_angle = 90;
+                       else if (!strcmp(org_orient, "rotate-180"))
+                               *org_angle = 180;
+                       else if (!strcmp(org_orient, "rotate-270"))
+                               *org_angle = 270;
+                       else
+                               LOGD("original rotation is %s", org_orient);
+               } else {
+                       LOGD("content_video_orientation get fail");
+               }
 
-       LOGD("check user angle: %d, orientation: %d", *user_angle, *org_angle);
+               LOGD("check orientation: %d", *org_angle);
+       }
 
        return MM_ERROR_NONE;
 }
index 628a956..e164e2f 100755 (executable)
@@ -5047,6 +5047,8 @@ __mmplayer_video_stream_decoded_render_cb(GstElement* object, GstBuffer *buffer,
        gst_caps_unref(caps);
        caps = NULL;
 
+       __mmplayer_get_video_angle(player, NULL, &stream->orientation);
+
     /*
        LOGD("Call video steramCb, data[%p], Width[%d],Height[%d], Format[%d]",
                GST_BUFFER_DATA(buffer), stream.width, stream.height, stream.format);