[0.6.228] Add log for debug
[platform/core/multimedia/libmm-player.git] / src / mm_player_360.c
index 5a872be..6dfb03a 100644 (file)
@@ -27,7 +27,7 @@
 #include <glib.h>
 
 static bool
-__mmplayer_check_video_360_used(mm_player_t* player)
+__mmplayer_check_video_360_used(mmplayer_t *player)
 {
        /* check video 360 plugin is created */
        MMPLAYER_RETURN_VAL_IF_FAIL(player &&
@@ -41,7 +41,7 @@ __mmplayer_check_video_360_used(mm_player_t* player)
 }
 
 static bool
-__mmplayer_check_audio_sink(mm_player_t* player)
+__mmplayer_check_audio_sink(mmplayer_t *player)
 {
        /* check audio sink is created */
        MMPLAYER_RETURN_VAL_IF_FAIL(player &&
@@ -54,10 +54,33 @@ __mmplayer_check_audio_sink(mm_player_t* player)
        return true;
 }
 
-int _mmplayer_360_set_enable(MMHandleType hplayer, bool enable)
+int
+_mmplayer_360_is_content_spherical(MMHandleType hplayer, bool *is_spherical)
 {
-       mm_player_t* player = (mm_player_t*) hplayer;
-       int ret = MM_ERROR_NONE;
+       mmplayer_t *player = (mmplayer_t *)hplayer;
+
+       MMPLAYER_FENTER();
+       MMPLAYER_RETURN_VAL_IF_FAIL(player && player->pipeline, MM_ERROR_PLAYER_NOT_INITIALIZED);
+       MMPLAYER_RETURN_VAL_IF_FAIL(is_spherical, MM_ERROR_INVALID_ARGUMENT);
+
+       LOGD("state %s, spherical info %d",
+                       MMPLAYER_STATE_GET_NAME(MMPLAYER_CURRENT_STATE(player)), player->is_content_spherical);
+
+       if (player->state < MM_PLAYER_STATE_READY) {
+               *is_spherical = false;
+               return MM_ERROR_PLAYER_INVALID_STATE;
+       }
+
+       *is_spherical = (bool)player->is_content_spherical;
+
+       MMPLAYER_FLEAVE();
+       return MM_ERROR_NONE;
+}
+
+int
+_mmplayer_360_set_enabled(MMHandleType hplayer, bool enabled)
+{
+       mmplayer_t *player = (mmplayer_t *)hplayer;
 
        MMPLAYER_FENTER();
        MMPLAYER_RETURN_VAL_IF_FAIL(player, MM_ERROR_PLAYER_NOT_INITIALIZED);
@@ -65,28 +88,24 @@ int _mmplayer_360_set_enable(MMHandleType hplayer, bool enable)
        LOGD("state %s, spherical info %d",
                        MMPLAYER_STATE_GET_NAME(MMPLAYER_CURRENT_STATE(player)), player->is_content_spherical);
 
-       player->is_video360_enabled = enable;
+       player->is_video360_enabled = (gboolean)enabled;
 
        if (player->is_content_spherical && __mmplayer_check_video_360_used(player)) {
                /* We will get here if player is pending ready or ready and above */
-               LOGD("set enabled %d", enable);
+               LOGD("set enabled %d", player->is_video360_enabled);
                g_object_set(G_OBJECT(player->pipeline->videobin[MMPLAYER_V_360].gst),
-                               "passthrough", !enable, NULL);
-               return MM_ERROR_NONE;
-       }
-
-       if (player->state >= MM_PLAYER_STATE_READY) {
-               LOGE("the content is not for 360 playback.");
-               ret = MM_ERROR_PLAYER_INTERNAL;
+                               "passthrough", !player->is_video360_enabled, NULL);
        }
 
        MMPLAYER_FLEAVE();
-       return ret;
+       return MM_ERROR_NONE;
 }
 
-int _mmplayer_360_is_enabled(MMHandleType hplayer, bool *enabled)
+int
+_mmplayer_360_is_enabled(MMHandleType hplayer, bool *enabled)
 {
-       mm_player_t* player = (mm_player_t*) hplayer;
+       mmplayer_t *player = (mmplayer_t *)hplayer;
+       gboolean is_enabled;
 
        MMPLAYER_FENTER();
        MMPLAYER_RETURN_VAL_IF_FAIL(player, MM_ERROR_PLAYER_NOT_INITIALIZED);
@@ -95,35 +114,29 @@ int _mmplayer_360_is_enabled(MMHandleType hplayer, bool *enabled)
        LOGD("state %s, spherical info %d",
                        MMPLAYER_STATE_GET_NAME(MMPLAYER_CURRENT_STATE(player)), player->is_content_spherical);
 
-       if (player->state < MM_PLAYER_STATE_READY) {
-               *enabled = player->is_video360_enabled;
-               return MM_ERROR_NONE;
-       }
-
        if (player->is_content_spherical && __mmplayer_check_video_360_used(player)) {
                g_object_get(G_OBJECT(player->pipeline->videobin[MMPLAYER_V_360].gst),
-                               "passthrough", enabled, NULL);
-               *enabled = !(*enabled);
-
-               LOGD("get enabled %d", *enabled);
-               return MM_ERROR_NONE;
+                               "passthrough", &is_enabled, NULL);
+               *enabled = !((bool)is_enabled);
+       } else {
+               *enabled = (bool)player->is_video360_enabled;
        }
 
-       LOGE("the content is not for 360 playback.");
+       LOGD("get enabled %d", *enabled);
 
        MMPLAYER_FLEAVE();
-       return MM_ERROR_PLAYER_INTERNAL;
+       return MM_ERROR_NONE;
 }
 
-int _mmplayer_360_set_direction_of_view(MMHandleType hplayer, float yaw, float pitch)
+int
+_mmplayer_360_set_direction_of_view(MMHandleType hplayer, float yaw, float pitch)
 {
-       mm_player_t* player = (mm_player_t*) hplayer;
-       int ret = MM_ERROR_NONE;
+       mmplayer_t *player = (mmplayer_t *)hplayer;
 
        MMPLAYER_FENTER();
        MMPLAYER_RETURN_VAL_IF_FAIL(player, MM_ERROR_PLAYER_NOT_INITIALIZED);
 
-       if (yaw > M_PI || yaw < -M_PI || pitch > M_PI_2 || pitch < -M_PI_2) {
+       if (yaw > (float)(M_PI) || yaw < (float)(-M_PI) || pitch > (float)(M_PI_2) || pitch < (float)(-M_PI_2)) {
                LOGE("invalid argument %f, %f", yaw, pitch);
                return MM_ERROR_INVALID_ARGUMENT;
        }
@@ -139,29 +152,24 @@ int _mmplayer_360_set_direction_of_view(MMHandleType hplayer, float yaw, float p
                if (__mmplayer_check_video_360_used(player)) {
                        LOGD("set yaw %f, pitch %f for video", yaw, pitch);
                        g_object_set(G_OBJECT(player->pipeline->videobin[MMPLAYER_V_360].gst),
-                                       "pose-yaw", (int) (yaw * 180.0f / M_PI),
-                                       "pose-pitch", (int) (pitch * 180.0f / M_PI), NULL);
+                                       "pose-yaw", (int)(yaw * 180.0f / M_PI),
+                                       "pose-pitch", (int)(pitch * 180.0f / M_PI), NULL);
                }
                if (player->is_openal_plugin_used && __mmplayer_check_audio_sink(player)) {
                        g_object_set(G_OBJECT(player->pipeline->audiobin[MMPLAYER_A_SINK].gst),
-                                       "source-orientation-y", (int) (yaw * 180.0f / M_PI),
-                                       "source-orientation-x", (int) (pitch * 180.0f / M_PI), NULL);
+                                       "source-orientation-y", (int)(yaw * 180.0f / M_PI),
+                                       "source-orientation-x", (int)(pitch * 180.0f / M_PI), NULL);
                }
-               return MM_ERROR_NONE;
-       }
-
-       if (player->state >= MM_PLAYER_STATE_READY) {
-               LOGE("the content is not for 360 playback.");
-               ret = MM_ERROR_PLAYER_INTERNAL;
        }
 
        MMPLAYER_FLEAVE();
-       return ret;
+       return MM_ERROR_NONE;
 }
 
-int _mmplayer_360_get_direction_of_view(MMHandleType hplayer, float *yaw, float *pitch)
+int
+_mmplayer_360_get_direction_of_view(MMHandleType hplayer, float *yaw, float *pitch)
 {
-       mm_player_t* player = (mm_player_t*) hplayer;
+       mmplayer_t *player = (mmplayer_t *)hplayer;
        int yaw_degrees = 0;
        int pitch_degrees = 0;
 
@@ -172,32 +180,27 @@ int _mmplayer_360_get_direction_of_view(MMHandleType hplayer, float *yaw, float
        LOGD("state %s, spherical info %d",
                        MMPLAYER_STATE_GET_NAME(MMPLAYER_CURRENT_STATE(player)), player->is_content_spherical);
 
-       if (player->state < MM_PLAYER_STATE_READY) {
-               *yaw = player->video360_yaw_radians;
-               *pitch = player->video360_pitch_radians;
-               return MM_ERROR_NONE;
-       }
-
        if (player->is_content_spherical && __mmplayer_check_video_360_used(player)) {
                g_object_get(G_OBJECT(player->pipeline->videobin[MMPLAYER_V_360].gst),
                                "pose-yaw", &yaw_degrees, "pose-pitch", &pitch_degrees, NULL);
                *yaw = M_PI * yaw_degrees / 180.0f;
                *pitch = M_PI * pitch_degrees / 180.0f;
 
-               LOGD("get yaw %f, pitch %f", yaw, pitch);
+               LOGD("get yaw %f, pitch %f", *yaw, *pitch);
                return MM_ERROR_NONE;
        }
 
-       LOGE("the content is not for 360 playback.");
+       *yaw = player->video360_yaw_radians;
+       *pitch = player->video360_pitch_radians;
 
        MMPLAYER_FLEAVE();
-       return MM_ERROR_PLAYER_INTERNAL;
+       return MM_ERROR_NONE;
 }
 
-int _mmplayer_360_set_zoom(MMHandleType hplayer, float level)
+int
+_mmplayer_360_set_zoom(MMHandleType hplayer, float level)
 {
-       mm_player_t* player = (mm_player_t*) hplayer;
-       int ret = MM_ERROR_NONE;
+       mmplayer_t *player = (mmplayer_t *)hplayer;
 
        MMPLAYER_FENTER();
        MMPLAYER_RETURN_VAL_IF_FAIL(player, MM_ERROR_PLAYER_NOT_INITIALIZED);
@@ -218,21 +221,16 @@ int _mmplayer_360_set_zoom(MMHandleType hplayer, float level)
                LOGD("set level %f", level);
                g_object_set(G_OBJECT(player->pipeline->videobin[MMPLAYER_V_360].gst),
                                "zoom", 1.0f / level, NULL);
-               return MM_ERROR_NONE;
-       }
-
-       if (player->state >= MM_PLAYER_STATE_READY) {
-               LOGE("the content is not for 360 playback.");
-               ret = MM_ERROR_PLAYER_INTERNAL;
        }
 
        MMPLAYER_FLEAVE();
-       return ret;
+       return MM_ERROR_NONE;
 }
 
-int _mmplayer_360_get_zoom(MMHandleType hplayer, float *level)
+int
+_mmplayer_360_get_zoom(MMHandleType hplayer, float *level)
 {
-       mm_player_t* player = (mm_player_t*) hplayer;
+       mmplayer_t *player = (mmplayer_t *)hplayer;
        float current_zoom = 0.0;
 
        MMPLAYER_FENTER();
@@ -242,11 +240,6 @@ int _mmplayer_360_get_zoom(MMHandleType hplayer, float *level)
        LOGD("state %s, spherical info %d",
                        MMPLAYER_STATE_GET_NAME(MMPLAYER_CURRENT_STATE(player)), player->is_content_spherical);
 
-       if (player->state < MM_PLAYER_STATE_READY) {
-               *level = player->video360_zoom;
-               return MM_ERROR_NONE;
-       }
-
        if (player->is_content_spherical && __mmplayer_check_video_360_used(player)) {
                g_object_get(G_OBJECT(player->pipeline->videobin[MMPLAYER_V_360].gst),
                                "zoom", &current_zoom, NULL);
@@ -256,16 +249,16 @@ int _mmplayer_360_get_zoom(MMHandleType hplayer, float *level)
                return MM_ERROR_NONE;
        }
 
-       LOGE("the content is not for 360 playback.");
+       *level = player->video360_zoom;
 
        MMPLAYER_FLEAVE();
-       return MM_ERROR_PLAYER_INTERNAL;
+       return MM_ERROR_NONE;
 }
 
-int _mmplayer_360_set_field_of_view(MMHandleType hplayer, int horizontal_degrees, int vertical_degrees)
+int
+_mmplayer_360_set_field_of_view(MMHandleType hplayer, int horizontal_degrees, int vertical_degrees)
 {
-       mm_player_t* player = (mm_player_t*) hplayer;
-       int ret = MM_ERROR_NONE;
+       mmplayer_t *player = (mmplayer_t *)hplayer;
 
        MMPLAYER_FENTER();
        MMPLAYER_RETURN_VAL_IF_FAIL(player, MM_ERROR_PLAYER_NOT_INITIALIZED);
@@ -286,21 +279,16 @@ int _mmplayer_360_set_field_of_view(MMHandleType hplayer, int horizontal_degrees
                LOGD("set h-fov %d, v-fov %d", horizontal_degrees, vertical_degrees);
                g_object_set(G_OBJECT(player->pipeline->videobin[MMPLAYER_V_360].gst),
                                "horizontal-fov", horizontal_degrees, "vertical-fov", vertical_degrees, NULL);
-               return MM_ERROR_NONE;
-       }
-
-       if (player->state >= MM_PLAYER_STATE_READY) {
-               LOGE("the content is not for 360 playback.");
-               ret = MM_ERROR_PLAYER_INTERNAL;
        }
 
        MMPLAYER_FLEAVE();
-       return ret;
+       return MM_ERROR_NONE;
 }
 
-int _mmplayer_360_get_field_of_view(MMHandleType hplayer, int *horizontal_degrees, int *vertical_degrees)
+int
+_mmplayer_360_get_field_of_view(MMHandleType hplayer, int *horizontal_degrees, int *vertical_degrees)
 {
-       mm_player_t* player = (mm_player_t*) hplayer;
+       mmplayer_t *player = (mmplayer_t *)hplayer;
 
        MMPLAYER_FENTER();
        MMPLAYER_RETURN_VAL_IF_FAIL(player, MM_ERROR_PLAYER_NOT_INITIALIZED);
@@ -309,12 +297,6 @@ int _mmplayer_360_get_field_of_view(MMHandleType hplayer, int *horizontal_degree
        LOGD("state %s, spherical info %d",
                        MMPLAYER_STATE_GET_NAME(MMPLAYER_CURRENT_STATE(player)), player->is_content_spherical);
 
-       if (player->state < MM_PLAYER_STATE_READY) {
-               *horizontal_degrees = player->video360_horizontal_fov;
-               *vertical_degrees = player->video360_vertical_fov;
-               return MM_ERROR_NONE;
-       }
-
        if (player->is_content_spherical && __mmplayer_check_video_360_used(player)) {
                g_object_get(G_OBJECT(player->pipeline->videobin[MMPLAYER_V_360].gst),
                                "horizontal-fov", horizontal_degrees, "vertical-fov", vertical_degrees, NULL);
@@ -323,8 +305,9 @@ int _mmplayer_360_get_field_of_view(MMHandleType hplayer, int *horizontal_degree
                return MM_ERROR_NONE;
        }
 
-       LOGE("the content is not for 360 playback.");
+       *horizontal_degrees = player->video360_horizontal_fov;
+       *vertical_degrees = player->video360_vertical_fov;
 
        MMPLAYER_FLEAVE();
-       return MM_ERROR_PLAYER_INTERNAL;
+       return MM_ERROR_NONE;
 }