[0.3.104] add more test scenarios 26/193226/1 accepted/tizen/unified/20181203.061738 submit/tizen/20181129.074610
authorEunhae Choi <eunhae1.choi@samsung.com>
Fri, 16 Nov 2018 08:34:56 +0000 (17:34 +0900)
committerEunhae Choi <eunhae1.choi@samsung.com>
Fri, 16 Nov 2018 08:34:58 +0000 (17:34 +0900)
- can change the current audio track
- can setup the video decoded cb path

Change-Id: Ie83889405e60e1d1c963735e4e5a2e1150bc6179

test/player_test.c

index 94f7bb8..b089e06 100644 (file)
@@ -135,6 +135,7 @@ enum {
        CURRENT_STATUS_POSITION_TIME,
        CURRENT_STATUS_LOOPING,
        CURRENT_STATUS_DISPLAY_SURFACE_CHANGE,
+       CURRENT_STATUS_EXPORT_VIDEO_FRAME,
        CURRENT_STATUS_DISPLAY_MODE,
        CURRENT_STATUS_DISPLAY_DST_ROI_AREA,
        CURRENT_STATUS_DISPLAY_ROTATION,
@@ -143,7 +144,8 @@ enum {
        CURRENT_STATUS_AUDIO_EQUALIZER,
        CURRENT_STATUS_PLAYBACK_RATE,
        CURRENT_STATUS_STREAMING_PLAYBACK_RATE,
-       CURRENT_STATUS_SWITCH_SUBTITLE,
+       CURRENT_STATUS_SET_TRACK_TYPE,
+       CURRENT_STATUS_SET_TRACK_INDEX,
        CURRENT_STATUS_NEXT_URI,
        CURRENT_STATUS_GAPLESS,
        CURRENT_STATUS_GET_TRACK_INFO,
@@ -1636,6 +1638,16 @@ static void get_looping(bool * looping)
        g_print("                                                            ==> [Player_Test] looping = %d\n", *looping);
 }
 
+void _video_decoded_cb(media_packet_h packet, void *user_data)
+{
+       media_packet_destroy(packet);
+}
+
+static void set_video_frame_decoded_cb(void)
+{
+       player_set_media_packet_video_frame_decoded_cb(g_player[0], _video_decoded_cb, g_player[0]);
+}
+
 static void change_surface(int option)
 {
        player_display_type_e surface_type = 0;
@@ -1796,14 +1808,15 @@ static void input_subtitle_filename(char *subtitle_filename)
        player_set_subtitle_path(g_player[0], g_subtitle_uri);
 }
 
-static void switch_subtitle(int index)
+static void set_track(int type, int index)
 {
        char *lang_code = NULL;
-       if (player_select_track(g_player[0], PLAYER_STREAM_TYPE_TEXT, index) != PLAYER_ERROR_NONE)
+
+       if (player_select_track(g_player[0], type, index) != PLAYER_ERROR_NONE)
                g_print("player_select_track failed\n");
 
-       if (player_get_track_language_code(g_player[0], PLAYER_STREAM_TYPE_TEXT, index, &lang_code) == PLAYER_ERROR_NONE) {
-               g_print("selected track code %s\n", lang_code);
+       if (player_get_track_language_code(g_player[0], type, index, &lang_code) == PLAYER_ERROR_NONE) {
+               g_print("selected track lang code %s\n", lang_code);
                free(lang_code);
        }
 }
@@ -2229,8 +2242,6 @@ void _interpret_main_menu(char *cmd)
                        g_menu_state = CURRENT_STATUS_HANDLE_NUM;
                } else if (strncmp(cmd, "tr", 2) == 0) {
                        g_menu_state = CURRENT_STATUS_PLAYBACK_RATE;
-               } else if (strncmp(cmd, "ss", 2) == 0) {
-                       g_menu_state = CURRENT_STATUS_SWITCH_SUBTITLE;
                } else if (strncmp(cmd, "X3", 2) == 0) {
                        audio_frame_decoded_cb_ex(TRUE);
                } else if (strncmp(cmd, "X4", 2) == 0) {
@@ -2243,8 +2254,10 @@ void _interpret_main_menu(char *cmd)
                        get_next_uri();
                } else if (strncmp(cmd, "sg", 2) == 0) {
                        g_menu_state = CURRENT_STATUS_GAPLESS;
-               } else if (strncmp(cmd, "tl", 2) == 0) {
+               } else if (strncmp(cmd, "tg", 2) == 0) {
                        g_menu_state = CURRENT_STATUS_GET_TRACK_INFO;
+               } else if (strncmp(cmd, "ts", 2) == 0) {
+                       g_menu_state = CURRENT_STATUS_SET_TRACK_TYPE;
                } else if (strncmp(cmd, "vi", 2) == 0) {
                        get_variant_info();
                } else if (strncmp(cmd, "vs", 2) == 0) {
@@ -2327,13 +2340,13 @@ void display_sub_basic()
        g_print("[overlay display] r. Set display mode\t");
        g_print("s. Get display mode\n");
        g_print("[overlay display] t. Set display Rotation\n");
-       g_print("[Track] tl. Get Track language info(single only)\n");
        g_print("[Variant] vi. Get Streaming Variant Info\t");
        g_print("vs. Set max limit of variant\t");
        g_print("vg. Get max limit of variant\n");
        g_print("[audio only] ao. set audio only\n");
        g_print("[subtitle] A. Set(or change) subtitle path\n");
-       g_print("[subtitle] ss. Select(or change) subtitle track\n");
+       g_print("[Track] tg. Get Track info\n");
+       g_print("[Track] ts. Set track\n");
        g_print("[Video Capture] C. Capture \n");
        g_print("[Video Codec] C1. Set codec type (1:HW, 2:SW)\t");
        g_print("C2. Get codec type\n");
@@ -2381,6 +2394,8 @@ static void displaymenu()
                g_print("*** input looping value.(0: Not Looping, 1: Looping) \n");
        } else if (g_menu_state == CURRENT_STATUS_DISPLAY_SURFACE_CHANGE) {
                g_print("*** input display surface type.(0: Wayland surface, 1: EVAS surface, 2: No use surface (e.g: audio playback)) \n");
+       } else if (g_menu_state == CURRENT_STATUS_EXPORT_VIDEO_FRAME) {
+               g_print("*** set video_decoded_cb (0: none, 1: set cb) \n");
        } else if (g_menu_state == CURRENT_STATUS_DISPLAY_MODE) {
                g_print("*** input display mode value.(0: LETTER BOX, 1: ORIGIN SIZE, 2: FULL_SCREEN, 3: CROPPED_FULL, 4: ORIGIN_OR_LETTER, 5:ROI) \n");
        } else if (g_menu_state == CURRENT_STATUS_DISPLAY_DST_ROI_AREA) {
@@ -2395,26 +2410,16 @@ static void displaymenu()
                g_print(" *** input audio eq value.(0: UNSET, 1: SET) \n");
        } else if (g_menu_state == CURRENT_STATUS_PLAYBACK_RATE || g_menu_state == CURRENT_STATUS_STREAMING_PLAYBACK_RATE) {
                g_print(" *** input playback rate.(-5.0 ~ 5.0)\n");
-       } else if (g_menu_state == CURRENT_STATUS_SWITCH_SUBTITLE) {
-               int count = 0, cur_index = 0;
-               int ret = 0;
-
-               ret = player_get_track_count(g_player[0], PLAYER_STREAM_TYPE_TEXT, &count);
-               if (ret != PLAYER_ERROR_NONE)
-                       g_print("player_get_track_count fail!!!!\n");
-               else if (count) {
-                       g_print("Total subtitle tracks = %d \n", count);
-                       player_get_current_track(g_player[0], PLAYER_STREAM_TYPE_TEXT, &cur_index);
-                       g_print("Current index = %d \n", cur_index);
-                       g_print(" *** input correct index 0 to %d\n:", (count - 1));
-               } else
-                       g_print("no track\n");
+       } else if (g_menu_state == CURRENT_STATUS_SET_TRACK_TYPE) {
+               g_print(" *** input track type.(1:audio, 3:text)\n");
+       } else if (g_menu_state == CURRENT_STATUS_SET_TRACK_INDEX) {
+               g_print(" *** input track index\n");
        } else if (g_menu_state == CURRENT_STATUS_NEXT_URI) {
                g_print("*** input next uri.\n");
        } else if (g_menu_state == CURRENT_STATUS_GAPLESS) {
                g_print("*** input gapless value.(0:disable, 1: enable) \n");
        } else if (g_menu_state == CURRENT_STATUS_GET_TRACK_INFO) {
-               g_print("*** input stream type.(1:audio, 3:text) \n");
+               g_print("*** input track type.(1:audio, 3:text) \n");
        } else if (g_menu_state == CURRENT_STATUS_SET_MAX_BANDWIDTH_VARIANT) {
                g_print("*** set max bandwidth (default: -1) \n");
        } else if (g_menu_state == CURRENT_STATUS_SET_MAX_WIDTH_VARIANT) {
@@ -2554,9 +2559,20 @@ static void interpret(char *cmd)
                {
                        value1 = atoi(cmd);
                        change_surface(value1);
+                       if (value1 == 2) { /* null display type */
+                               g_menu_state = CURRENT_STATUS_EXPORT_VIDEO_FRAME;
+                               break;
+                       }
                        reset_menu_state();
                }
                break;
+       case CURRENT_STATUS_EXPORT_VIDEO_FRAME:
+               {
+                       value2 = atoi(cmd);
+                       if (value2 != 0)
+                               set_video_frame_decoded_cb();
+                       reset_menu_state();
+               } break;
        case CURRENT_STATUS_DISPLAY_MODE:
                {
                        value1 = atoi(cmd);
@@ -2639,10 +2655,18 @@ static void interpret(char *cmd)
                        reset_menu_state();
                }
                break;
-       case CURRENT_STATUS_SWITCH_SUBTITLE:
+       case CURRENT_STATUS_SET_TRACK_TYPE:
                {
                        value1 = atoi(cmd);
-                       switch_subtitle(value1);
+                       get_track_info(value1);
+
+                       g_menu_state = CURRENT_STATUS_SET_TRACK_INDEX;
+               }
+               break;
+       case CURRENT_STATUS_SET_TRACK_INDEX:
+               {
+                       value2 = atoi(cmd);
+                       set_track(value1, value2);
                        reset_menu_state();
                }
                break;