From bcad23f3ae31680472e339ca72cdf423f5daf95d Mon Sep 17 00:00:00 2001 From: Eunhae Choi Date: Fri, 25 May 2018 19:39:34 +0900 Subject: [PATCH] [0.6.115] add orient info into video data Change-Id: I1393902d85f4ec83b522399f4f49481887ee3b1d --- packaging/libmm-player.spec | 2 +- src/include/mm_player.h | 1 + src/mm_player_common_priv.c | 71 +++++++++++++++++++++---------------- src/mm_player_priv.c | 2 ++ 4 files changed, 44 insertions(+), 32 deletions(-) diff --git a/packaging/libmm-player.spec b/packaging/libmm-player.spec index 05e2954..cd5e144 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.114 +Version: 0.6.115 Release: 0 Group: Multimedia/Libraries License: Apache-2.0 diff --git a/src/include/mm_player.h b/src/include/mm_player.h index d257ae6..643e9ef 100644 --- a/src/include/mm_player.h +++ b/src/include/mm_player.h @@ -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; /** diff --git a/src/mm_player_common_priv.c b/src/mm_player_common_priv.c index 34f4350..96aba6e 100644 --- a/src/mm_player_common_priv.c +++ b/src/mm_player_common_priv.c @@ -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; } diff --git a/src/mm_player_priv.c b/src/mm_player_priv.c index 628a956..e164e2f 100755 --- a/src/mm_player_priv.c +++ b/src/mm_player_priv.c @@ -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); -- 2.34.1