[ITC][streamrecorder][Non-ACR] change video format to NV21
authorSeokHoon Lee <andy.shlee@samsung.com>
Fri, 21 Jul 2017 04:45:10 +0000 (13:45 +0900)
committerSeokHoon Lee <andy.shlee@samsung.com>
Fri, 21 Jul 2017 05:02:58 +0000 (14:02 +0900)
 - change video format to NV21 for emulator
 - fix some memoly leak about media format and packet.

Signed-off-by: SeokHoon Lee <andy.shlee@samsung.com>
Change-Id: Ib2a89d5e4c94dd8e549e3c867a6614b645318296

src/itc/mediastreamrecorder/ITs-mediastreamrecorder-callback.c
src/itc/mediastreamrecorder/ITs-mediastreamrecorder-common.c
src/itc/mediastreamrecorder/ITs-mediastreamrecorder-common.h

index e2701c1..2ae514f 100755 (executable)
@@ -184,10 +184,10 @@ void ITs_mediastreamrecorder_callback_startup(void)
 #if DEBUG
        FPRINTF("[Line : %d][%s] TEST SUIT start-up: ITs_mediastreamrecorder_callback_startup\\n", __LINE__, API_NAMESPACE);
 #endif
-       
-       g_bMediaStrRecorderConnect= true;       
+
+       g_bMediaStrRecorderConnect= true;
        int nRet = streamrecorder_create(&g_hCallRecorder);
-       if ( nRet != STREAMRECORDER_ERROR_NONE) 
+       if ( nRet != STREAMRECORDER_ERROR_NONE)
        {
                FPRINTF("[Line : %d][%s] streamrecorder_create fail in startup \\n", __LINE__, API_NAMESPACE);
                g_bMediaStrRecorderConnect = false;
@@ -248,13 +248,13 @@ void ITs_mediastreamrecorder_callback_cleanup(void)
 int ITc_streamrecorder_foreach_supported_file_format_p(void)
 {
        START_TEST;
-               
+
        g_bCheckCb = false;
     int nIotconTimeoutId = 0;
-       
+
     int nRet = streamrecorder_foreach_supported_file_format(g_hCallRecorder, StreamRecorder_supported_file_format_cb_p, "file format");
        PRINT_RESULT(STREAMRECORDER_ERROR_NONE, nRet, "streamrecorder_foreach_supported_file_format", StreamRecorderGetError(nRet));
-       
+
        RUN_POLLING_LOOP;
        if(g_bCheckCb == false)
        {
@@ -285,13 +285,13 @@ int ITc_streamrecorder_foreach_supported_file_format_p(void)
 int ITc_streamrecorder_foreach_supported_audio_encoder_p(void)
 {
        START_TEST;
-               
+
        g_bCheckCb = false;
     int nIotconTimeoutId = 0;
-       
+
     int nRet = streamrecorder_foreach_supported_audio_encoder(g_hCallRecorder, StreamRecorder_supported_audio_encoder_cb_p, "audio");
        PRINT_RESULT(STREAMRECORDER_ERROR_NONE, nRet, "streamrecorder_foreach_supported_audio_encoder", StreamRecorderGetError(nRet));
-       
+
        RUN_POLLING_LOOP;
        if(g_bCheckCb == false)
        {
@@ -322,13 +322,13 @@ int ITc_streamrecorder_foreach_supported_audio_encoder_p(void)
 int ITc_streamrecorder_foreach_supported_video_encoder_p(void)
 {
        START_TEST;
-               
+
        g_bCheckCb = false;
     int nIotconTimeoutId = 0;
-       
+
     int nRet = streamrecorder_foreach_supported_video_encoder(g_hCallRecorder, StreamRecorder_supported_video_encoder_cb_p, "video");
        PRINT_RESULT(STREAMRECORDER_ERROR_NONE, nRet, "streamrecorder_foreach_supported_video_encoder", StreamRecorderGetError(nRet));
-       
+
        RUN_POLLING_LOOP;
        if(g_bCheckCb == false)
        {
@@ -359,13 +359,13 @@ int ITc_streamrecorder_foreach_supported_video_encoder_p(void)
 int ITc_streamrecorder_foreach_supported_video_resolution_p(void)
 {
        START_TEST;
-               
+
        g_bCheckCb = false;
     int nIotconTimeoutId = 0;
-       
+
     int nRet = streamrecorder_foreach_supported_video_resolution(g_hCallRecorder,StreamRecorder_supported_video_resolution_cb_p, "video");
        PRINT_RESULT(STREAMRECORDER_ERROR_NONE, nRet, "streamrecorder_foreach_supported_video_resolution", StreamRecorderGetError(nRet));
-       
+
        RUN_POLLING_LOOP;
        if(g_bCheckCb == false)
        {
@@ -396,11 +396,10 @@ int ITc_streamrecorder_foreach_supported_video_resolution_p(void)
 int ITc_streamrecorder_set_unset_notify_cb_p(void)
 {
        START_TEST;
-               
+
        g_bCheckCb = false;
-    int nIotconTimeoutId = 0;
-               
-    if(SetParamCall(g_hCallRecorder)!=0)
+
+    if(SetParam(g_hCallRecorder)!=0)
        {
                FPRINTF("[Line : %d][%s] SetParam fail\\n", __LINE__, API_NAMESPACE);
                return 1;
@@ -411,31 +410,31 @@ int ITc_streamrecorder_set_unset_notify_cb_p(void)
                FPRINTF("[Line : %d][%s] unable to get the app data path\\n", __LINE__, API_NAMESPACE);
                return 1;
        }
-       
+
     int nRet = streamrecorder_set_filename(g_hCallRecorder, pPath);
        PRINT_RESULT(STREAMRECORDER_ERROR_NONE, nRet, "streamrecorder_set_filename", StreamRecorderGetError(nRet));
-       
+
        nRet = streamrecorder_prepare(g_hCallRecorder);
        PRINT_RESULT(STREAMRECORDER_ERROR_NONE, nRet, "streamrecorder_prepare", StreamRecorderGetError(nRet));
-       
+
        nRet = streamrecorder_set_notify_cb(g_hCallRecorder, StreamRecorder_notify_cb_p, "notify");
        PRINT_RESULT(STREAMRECORDER_ERROR_NONE, nRet, "streamrecorder_set_notify_cb", StreamRecorderGetError(nRet));
-       
+
        nRet = streamrecorder_start(g_hCallRecorder);
        PRINT_RESULT(STREAMRECORDER_ERROR_NONE, nRet, "streamrecorder_start", StreamRecorderGetError(nRet));
-       
-       if(CreatePacketAndFormatDataCall(g_hCallRecorder)!=0)
+
+       if(CreatePacketAndFormatData(g_hCallRecorder)!=0)
        {
                FPRINTF("[Line : %d][%s] CreatePacketAndFormatData fail\\n", __LINE__, API_NAMESPACE);
                return 1;
        }
-                                       
+
        nRet = streamrecorder_unset_notify_cb(g_hCallRecorder);
     PRINT_RESULT(STREAMRECORDER_ERROR_NONE, nRet, "streamrecorder_unset_notify_cb", StreamRecorderGetError(nRet));
-    
+
        nRet = streamrecorder_cancel(g_hCallRecorder);
-    PRINT_RESULT(STREAMRECORDER_ERROR_NONE, nRet, "streamrecorder_cancel", StreamRecorderGetError(nRet));      
-               
+    PRINT_RESULT(STREAMRECORDER_ERROR_NONE, nRet, "streamrecorder_cancel", StreamRecorderGetError(nRet));
+
        nRet = streamrecorder_unprepare(g_hCallRecorder);
        PRINT_RESULT_NORETURN(STREAMRECORDER_ERROR_NONE, nRet, "streamrecorder_unprepare", StreamRecorderGetError(nRet));
 
@@ -464,13 +463,13 @@ int ITc_streamrecorder_set_unset_notify_cb_p(void)
 int ITc_streamrecorder_set_unset_recording_status_cb_p(void)
 {
        START_TEST;
-               
+
     int nIotconTimeoutId = 0;
-                       
+
        int nRet = streamrecorder_set_recording_status_cb(g_hCallRecorder, StreamRecorder_recording_status_cb_p, "record");
        PRINT_RESULT(STREAMRECORDER_ERROR_NONE, nRet, "streamrecorder_set_recording_status_cb", StreamRecorderGetError(nRet));
-       
-    if(SetParamCall(g_hCallRecorder)!=0)
+
+    if(SetParam(g_hCallRecorder)!=0)
        {
                FPRINTF("[Line : %d][%s] SetParam fail\\n", __LINE__, API_NAMESPACE);
                return 1;
@@ -481,38 +480,38 @@ int ITc_streamrecorder_set_unset_recording_status_cb_p(void)
                FPRINTF("[Line : %d][%s] unable to get the app data path\\n", __LINE__, API_NAMESPACE);
                return 1;
        }
-       
+
     nRet = streamrecorder_set_filename(g_hCallRecorder, pPath);
        PRINT_RESULT(STREAMRECORDER_ERROR_NONE, nRet, "streamrecorder_set_filename", StreamRecorderGetError(nRet));
-       
+
        nRet = streamrecorder_prepare(g_hCallRecorder);
        PRINT_RESULT(STREAMRECORDER_ERROR_NONE, nRet, "streamrecorder_prepare", StreamRecorderGetError(nRet));
-       
+
        nRet = streamrecorder_start(g_hCallRecorder);
        PRINT_RESULT(STREAMRECORDER_ERROR_NONE, nRet, "streamrecorder_start", StreamRecorderGetError(nRet));
-       
-       if(CreatePacketAndFormatDataCall(g_hCallRecorder)!=0)
+
+       if(CreatePacketAndFormatData(g_hCallRecorder)!=0)
        {
                FPRINTF("[Line : %d][%s] CreatePacketAndFormatData fail\\n", __LINE__, API_NAMESPACE);
                return 1;
        }
-       
-       g_bCheckCb = false;     
+
+       g_bCheckCb = false;
        RUN_POLLING_LOOP;
        if ( g_bCheckCb != true )
        {
                FPRINTF("[Line : %d][%s] Failed to call callback\\n", __LINE__, API_NAMESPACE);
                return 1;
-       }       
+       }
        nRet = streamrecorder_unset_recording_status_cb(g_hCallRecorder);
     PRINT_RESULT(STREAMRECORDER_ERROR_NONE, nRet, "streamrecorder_unset_recording_status_cb", StreamRecorderGetError(nRet));
-    
+
        nRet = streamrecorder_cancel(g_hCallRecorder);
-    PRINT_RESULT(STREAMRECORDER_ERROR_NONE, nRet, "streamrecorder_cancel", StreamRecorderGetError(nRet));      
-               
+    PRINT_RESULT(STREAMRECORDER_ERROR_NONE, nRet, "streamrecorder_cancel", StreamRecorderGetError(nRet));
+
        nRet = streamrecorder_unprepare(g_hCallRecorder);
        PRINT_RESULT_NORETURN(STREAMRECORDER_ERROR_NONE, nRet, "streamrecorder_unprepare", StreamRecorderGetError(nRet));
-       
+
        DestroyPacketAndFormatData();
        return 0;
 }
@@ -538,17 +537,16 @@ int ITc_streamrecorder_set_unset_recording_status_cb_p(void)
 int ITc_streamrecorder_set_unset_recording_limit_reached_cb_p(void)
 {
        START_TEST;
-               
+
        g_bCheckCb = false;
-    int nIotconTimeoutId = 0;
-       
+
        int nRet = streamrecorder_set_recording_limit(g_hCallRecorder,STREAMRECORDER_RECORDING_LIMIT_TYPE_SIZE,0);
        PRINT_RESULT(STREAMRECORDER_ERROR_NONE, nRet, "streamrecorder_set_recording_limit", StreamRecorderGetError(nRet));
-                       
+
     nRet = streamrecorder_set_recording_limit_reached_cb(g_hCallRecorder, StreamRecorder_recording_limit_reached_cb_p, "limit");
        PRINT_RESULT(STREAMRECORDER_ERROR_NONE, nRet, "streamrecorder_set_recording_limit_reached_cb", StreamRecorderGetError(nRet));
-               
-       if(SetParamCall(g_hCallRecorder)!=0)
+
+       if(SetParam(g_hCallRecorder)!=0)
        {
                FPRINTF("[Line : %d][%s] SetParam fail\\n", __LINE__, API_NAMESPACE);
                return 1;
@@ -559,31 +557,31 @@ int ITc_streamrecorder_set_unset_recording_limit_reached_cb_p(void)
                FPRINTF("[Line : %d][%s] unable to get the app data path\\n", __LINE__, API_NAMESPACE);
                return 1;
        }
-       
+
     nRet = streamrecorder_set_filename(g_hCallRecorder, pPath);
        PRINT_RESULT(STREAMRECORDER_ERROR_NONE, nRet, "streamrecorder_set_filename", StreamRecorderGetError(nRet));
-               
+
        nRet = streamrecorder_prepare(g_hCallRecorder);
        PRINT_RESULT(STREAMRECORDER_ERROR_NONE, nRet, "streamrecorder_prepare", StreamRecorderGetError(nRet));
-       
+
        nRet = streamrecorder_start(g_hCallRecorder);
        PRINT_RESULT(STREAMRECORDER_ERROR_NONE, nRet, "streamrecorder_start", StreamRecorderGetError(nRet));
-       
-       if(CreatePacketAndFormatDataCall(g_hCallRecorder)!=0)
+
+       if(CreatePacketAndFormatData(g_hCallRecorder)!=0)
        {
                FPRINTF("[Line : %d][%s] CreatePacketAndFormatData fail\\n", __LINE__, API_NAMESPACE);
                return 1;
        }
-               
+
        nRet = streamrecorder_unset_recording_limit_reached_cb(g_hCallRecorder);
     PRINT_RESULT(STREAMRECORDER_ERROR_NONE, nRet, "streamrecorder_unset_recording_limit_reached_cb", StreamRecorderGetError(nRet));
-  
+
        nRet = streamrecorder_cancel(g_hCallRecorder);
-    PRINT_RESULT(STREAMRECORDER_ERROR_NONE, nRet, "streamrecorder_cancel", StreamRecorderGetError(nRet));      
-               
+    PRINT_RESULT(STREAMRECORDER_ERROR_NONE, nRet, "streamrecorder_cancel", StreamRecorderGetError(nRet));
+
        nRet = streamrecorder_unprepare(g_hCallRecorder);
        PRINT_RESULT_NORETURN(STREAMRECORDER_ERROR_NONE, nRet, "streamrecorder_unprepare", StreamRecorderGetError(nRet));
-       
+
        DestroyPacketAndFormatData();
        return 0;
 }
@@ -609,10 +607,10 @@ int ITc_streamrecorder_set_unset_recording_limit_reached_cb_p(void)
 int ITc_streamrecorder_set_unset_error_cb_p(void)
 {
        START_TEST;
-                       
+
     int nRet = streamrecorder_set_error_cb(g_hCallRecorder, Streamrecorder_error_cb_p, "error");
        PRINT_RESULT(STREAMRECORDER_ERROR_NONE, nRet, "streamrecorder_set_error_cb", StreamRecorderGetError(nRet));
-       
+
        if(SetParamCall(g_hCallRecorder)!=0)
        {
                FPRINTF("[Line : %d][%s] SetParam fail\\n", __LINE__, API_NAMESPACE);
@@ -624,25 +622,25 @@ int ITc_streamrecorder_set_unset_error_cb_p(void)
                FPRINTF("[Line : %d][%s] unable to get the app data path\\n", __LINE__, API_NAMESPACE);
                return 1;
        }
-       
+
        nRet = streamrecorder_set_filename(g_hCallRecorder, pPath);
        PRINT_RESULT(STREAMRECORDER_ERROR_NONE, nRet, "streamrecorder_set_filename", StreamRecorderGetError(nRet));
-       
+
        nRet = streamrecorder_prepare(g_hCallRecorder);
        PRINT_RESULT(STREAMRECORDER_ERROR_NONE, nRet, "streamrecorder_prepare", StreamRecorderGetError(nRet));
-       
+
        nRet = streamrecorder_start(g_hCallRecorder);
        PRINT_RESULT(STREAMRECORDER_ERROR_NONE, nRet, "streamrecorder_start", StreamRecorderGetError(nRet));
 
        nRet = streamrecorder_unset_error_cb(g_hCallRecorder);
     PRINT_RESULT(STREAMRECORDER_ERROR_NONE, nRet, "streamrecorder_unset_error_cb", StreamRecorderGetError(nRet));
-  
+
        nRet = streamrecorder_cancel(g_hCallRecorder);
-    PRINT_RESULT(STREAMRECORDER_ERROR_NONE, nRet, "streamrecorder_cancel", StreamRecorderGetError(nRet));      
-               
+    PRINT_RESULT(STREAMRECORDER_ERROR_NONE, nRet, "streamrecorder_cancel", StreamRecorderGetError(nRet));
+
        nRet = streamrecorder_unprepare(g_hCallRecorder);
        PRINT_RESULT_NORETURN(STREAMRECORDER_ERROR_NONE, nRet, "streamrecorder_unprepare", StreamRecorderGetError(nRet));
-       
+
        return 0;
 }
 
@@ -667,13 +665,13 @@ int ITc_streamrecorder_set_unset_error_cb_p(void)
 int ITc_streamrecorder_set_unset_buffer_consume_completed_cb_p(void)
 {
        START_TEST;
-               
+
        g_bCheckCb = false;
     int nIotconTimeoutId = 0;
-       
+
     int nRet = streamrecorder_set_buffer_consume_completed_cb(g_hCallRecorder, Streamrecorder_consume_completed_cb_p, "buffer");
        PRINT_RESULT(STREAMRECORDER_ERROR_NONE, nRet, "streamrecorder_set_buffer_consume_completed_cb", StreamRecorderGetError(nRet));
-       
+
        if(SetParamCall(g_hCallRecorder)!=0)
        {
                FPRINTF("[Line : %d][%s] SetParam fail\\n", __LINE__, API_NAMESPACE);
@@ -685,40 +683,40 @@ int ITc_streamrecorder_set_unset_buffer_consume_completed_cb_p(void)
                FPRINTF("[Line : %d][%s] unable to get the app data path\\n", __LINE__, API_NAMESPACE);
                return 1;
        }
-       
+
     nRet = streamrecorder_set_filename(g_hCallRecorder, pPath);
        PRINT_RESULT(STREAMRECORDER_ERROR_NONE, nRet, "streamrecorder_set_filename", StreamRecorderGetError(nRet));
-       
+
        nRet = streamrecorder_prepare(g_hCallRecorder);
        PRINT_RESULT(STREAMRECORDER_ERROR_NONE, nRet, "streamrecorder_prepare", StreamRecorderGetError(nRet));
-       
+
        nRet = streamrecorder_start(g_hCallRecorder);
        PRINT_RESULT(STREAMRECORDER_ERROR_NONE, nRet, "streamrecorder_start", StreamRecorderGetError(nRet));
-       
+
        if(CreatePacketAndFormatDataCall(g_hCallRecorder)!=0)
        {
                FPRINTF("[Line : %d][%s] CreatePacketAndFormatData fail\\n", __LINE__, API_NAMESPACE);
                return 1;
        }
-       
+
        RUN_POLLING_LOOP;
        if ( g_bCheckCb != true )
        {
                FPRINTF("[Line : %d][%s] Failed to call callback\\n", __LINE__, API_NAMESPACE);
                return 1;
        }
-               
+
        nRet = streamrecorder_unset_buffer_consume_completed_cb(g_hCallRecorder);
     PRINT_RESULT(STREAMRECORDER_ERROR_NONE, nRet, "streamrecorder_unset_buffer_consume_completed_cb", StreamRecorderGetError(nRet));
-  
+
        nRet = streamrecorder_cancel(g_hCallRecorder);
-    PRINT_RESULT(STREAMRECORDER_ERROR_NONE, nRet, "streamrecorder_cancel", StreamRecorderGetError(nRet));      
-               
+    PRINT_RESULT(STREAMRECORDER_ERROR_NONE, nRet, "streamrecorder_cancel", StreamRecorderGetError(nRet));
+
        nRet = streamrecorder_unprepare(g_hCallRecorder);
        PRINT_RESULT_NORETURN(STREAMRECORDER_ERROR_NONE, nRet, "streamrecorder_unprepare", StreamRecorderGetError(nRet));
-       
+
        DestroyPacketAndFormatData();
        return 0;
 }
 /** @} */
-/** @} */
\ No newline at end of file
+/** @} */
index 822a858..ae70d90 100755 (executable)
@@ -20,7 +20,8 @@
 *  @{
 */
 
-media_format_h g_hMediaFormat = NULL;
+media_format_h g_hMediaFormat[MAX_MEDIA_PACKET_CNT];
+media_packet_h g_hMediaPkt[MAX_MEDIA_PACKET_CNT];
 
 //Add helper function definitions here
 
@@ -214,7 +215,7 @@ int SetParamCall(streamrecorder_h g_hCallRecorder)
        int nRet = streamrecorder_enable_source_buffer(g_hCallRecorder, STREAMRECORDER_SOURCE_VIDEO);
        PRINT_RESULT(STREAMRECORDER_ERROR_NONE, nRet, "streamrecorder_enable_source_buffer", StreamRecorderGetError(nRet));
 
-    nRet = streamrecorder_set_video_source_format(g_hCallRecorder, STREAMRECORDER_VIDEO_SOURCE_FORMAT_NV12);
+    nRet = streamrecorder_set_video_source_format(g_hCallRecorder, STREAMRECORDER_VIDEO_SOURCE_FORMAT_NV21);
        PRINT_RESULT(STREAMRECORDER_ERROR_NONE, nRet, "streamrecorder_set_video_source_format", StreamRecorderGetError(nRet));
 
     nRet = streamrecorder_set_file_format(g_hCallRecorder, STREAMRECORDER_FILE_FORMAT_MP4);
@@ -241,13 +242,12 @@ int SetParamCall(streamrecorder_h g_hCallRecorder)
 int CreatePacketAndFormatData(streamrecorder_h g_hRecorder)
 {
        int nCounter,nRet;
-       g_hMediaPkt = NULL;
     unsigned int nSize = 352*288*3/2;
     FILE *pvFile;
     unsigned char *pszPtr;
        int nWidth = 352;
        int nHeight = 288;
-       g_ncount =0;
+       g_ncount = 0;
 
        char pFilePath[PATH_LEN] = {0};
        if ( false == StreamRecoderAppendToAppDataPath(MEDIA_FILE_PATH, pFilePath))
@@ -262,45 +262,45 @@ int CreatePacketAndFormatData(streamrecorder_h g_hRecorder)
                FPRINTF("[Line : %d][%s] File cant be loaded\\n", __LINE__, API_NAMESPACE);
         return 1;
     }
-       for (nCounter = 0; nCounter < 20; nCounter++)
+       for (nCounter = 0; nCounter < MAX_MEDIA_PACKET_CNT; nCounter++)
        {
-               nRet = media_format_create(&g_hMediaFormat);
+               nRet = media_format_create(&g_hMediaFormat[nCounter]);
                PRINT_RESULT_CLEANUP(MEDIA_FORMAT_ERROR_NONE, nRet, "media_format_create", MediaFormatGetError(nRet),fclose(pvFile));
-               CHECK_HANDLE_CLEANUP(g_hMediaFormat,"media_format_create",fclose(pvFile));
+               CHECK_HANDLE_CLEANUP(g_hMediaFormat[nCounter],"media_format_create",fclose(pvFile));
 
-               nRet = media_format_set_video_mime(g_hMediaFormat, MEDIA_FORMAT_I420);
+               nRet = media_format_set_video_mime(g_hMediaFormat[nCounter], MEDIA_FORMAT_I420);
                PRINT_RESULT_CLEANUP(MEDIA_FORMAT_ERROR_NONE, nRet, "media_format_set_video_mime", MediaFormatGetError(nRet),fclose(pvFile));
 
-        nRet = media_format_set_video_width(g_hMediaFormat, nWidth);
+        nRet = media_format_set_video_width(g_hMediaFormat[nCounter], nWidth);
                PRINT_RESULT_CLEANUP(MEDIA_FORMAT_ERROR_NONE, nRet, "media_format_set_video_width", MediaFormatGetError(nRet),fclose(pvFile));
 
-        nRet = media_format_set_video_height(g_hMediaFormat, nHeight);
+        nRet = media_format_set_video_height(g_hMediaFormat[nCounter], nHeight);
                PRINT_RESULT_CLEANUP(MEDIA_FORMAT_ERROR_NONE, nRet, "media_format_set_video_height", MediaFormatGetError(nRet),fclose(pvFile));
 
-               nRet = media_packet_create(g_hMediaFormat, NULL, NULL, &g_hMediaPkt);
+               nRet = media_packet_create(g_hMediaFormat[nCounter], NULL, NULL, &g_hMediaPkt[nCounter]);
                PRINT_RESULT_CLEANUP(MEDIA_PACKET_ERROR_NONE, nRet, "media_packet_create", MediaPacketGetError(nRet),fclose(pvFile));
-               CHECK_HANDLE_CLEANUP(g_hMediaPkt,"media_packet_create",fclose(pvFile));
+               CHECK_HANDLE_CLEANUP(g_hMediaPkt[nCounter], "media_packet_create", fclose(pvFile));
 
-        nRet = media_packet_alloc(g_hMediaPkt);
+        nRet = media_packet_alloc(g_hMediaPkt[nCounter]);
                PRINT_RESULT_CLEANUP(MEDIA_PACKET_ERROR_NONE, nRet, "media_packet_alloc", MediaPacketGetError(nRet),fclose(pvFile));
 
-        media_packet_get_buffer_data_ptr(g_hMediaPkt, (void**)&pszPtr);
+        media_packet_get_buffer_data_ptr(g_hMediaPkt[nCounter], (void**)&pszPtr);
         nSize = fread(pszPtr, 1, nSize, pvFile);
-        if (media_packet_set_buffer_size(g_hMediaPkt, nSize))
+        if (media_packet_set_buffer_size(g_hMediaPkt[nCounter], nSize))
                {
             FPRINTF("[Line : %d][%s]buf size failed\\n", __LINE__, API_NAMESPACE);
                        fclose(pvFile);
             return 1;
         }
 
-        if (media_packet_set_pts(g_hMediaPkt, g_ncount))
+        if (media_packet_set_pts(g_hMediaPkt[nCounter], g_ncount))
                {
             FPRINTF("[Line : %d][%s]unable to set the pts\\n", __LINE__, API_NAMESPACE);
                        fclose(pvFile);
             return 1;
         }
 
-               nRet = streamrecorder_push_stream_buffer(g_hRecorder, g_hMediaPkt);
+               nRet = streamrecorder_push_stream_buffer(g_hRecorder, g_hMediaPkt[nCounter]);
                PRINT_RESULT_CLEANUP(STREAMRECORDER_ERROR_NONE, nRet, "streamrecorder_push_stream_buffer", StreamRecorderGetError(nRet),fclose(pvFile));
         g_ncount = g_ncount + 33000000;
    }
@@ -317,7 +317,6 @@ int CreatePacketAndFormatData(streamrecorder_h g_hRecorder)
 int CreatePacketAndFormatDataCall(streamrecorder_h g_hCallRecorder)
 {
        int nCounter,nRet;
-       g_hMediaPkt = NULL;
     unsigned int nSize = 352*288*3/2;
     FILE *pvFile;
     unsigned char *pszPtr;
@@ -338,45 +337,45 @@ int CreatePacketAndFormatDataCall(streamrecorder_h g_hCallRecorder)
                FPRINTF("[Line : %d][%s] File cant be loaded\\n", __LINE__, API_NAMESPACE);
         return 1;
     }
-       for (nCounter = 0; nCounter < 20; nCounter++)
+       for (nCounter = 0; nCounter < MAX_MEDIA_PACKET_CNT; nCounter++)
        {
-               nRet = media_format_create(&g_hMediaFormat);
+               nRet = media_format_create(&g_hMediaFormat[nCounter]);
                PRINT_RESULT_CLEANUP(MEDIA_FORMAT_ERROR_NONE, nRet, "media_format_create", MediaFormatGetError(nRet),fclose(pvFile));
-               CHECK_HANDLE_CLEANUP(g_hMediaFormat,"media_format_create",fclose(pvFile));
+               CHECK_HANDLE_CLEANUP(g_hMediaFormat[nCounter],"media_format_create",fclose(pvFile));
 
-               nRet = media_format_set_video_mime(g_hMediaFormat, MEDIA_FORMAT_NV12);
+               nRet = media_format_set_video_mime(g_hMediaFormat[nCounter], MEDIA_FORMAT_NV21);
                PRINT_RESULT_CLEANUP(MEDIA_FORMAT_ERROR_NONE, nRet, "media_format_set_video_mime", MediaFormatGetError(nRet),fclose(pvFile));
 
-        nRet = media_format_set_video_width(g_hMediaFormat, nWidth);
+        nRet = media_format_set_video_width(g_hMediaFormat[nCounter], nWidth);
                PRINT_RESULT_CLEANUP(MEDIA_FORMAT_ERROR_NONE, nRet, "media_format_set_video_width", MediaFormatGetError(nRet),fclose(pvFile));
 
-        nRet = media_format_set_video_height(g_hMediaFormat, nHeight);
+        nRet = media_format_set_video_height(g_hMediaFormat[nCounter], nHeight);
                PRINT_RESULT_CLEANUP(MEDIA_FORMAT_ERROR_NONE, nRet, "media_format_set_video_height", MediaFormatGetError(nRet),fclose(pvFile));
 
-               nRet = media_packet_create(g_hMediaFormat, NULL, NULL, &g_hMediaPkt);
+               nRet = media_packet_create(g_hMediaFormat[nCounter], NULL, NULL, &g_hMediaPkt[nCounter]);
                PRINT_RESULT_CLEANUP(MEDIA_PACKET_ERROR_NONE, nRet, "media_packet_create", MediaPacketGetError(nRet),fclose(pvFile));
-               CHECK_HANDLE_CLEANUP(g_hMediaPkt,"media_packet_create",fclose(pvFile));
+               CHECK_HANDLE_CLEANUP(g_hMediaPkt[nCounter], "media_packet_create",fclose(pvFile));
 
-        nRet = media_packet_alloc(g_hMediaPkt);
+        nRet = media_packet_alloc(g_hMediaPkt[nCounter]);
                PRINT_RESULT_CLEANUP(MEDIA_PACKET_ERROR_NONE, nRet, "media_packet_alloc", MediaPacketGetError(nRet),fclose(pvFile));
 
-        media_packet_get_buffer_data_ptr(g_hMediaPkt, (void**)&pszPtr);
+        media_packet_get_buffer_data_ptr(g_hMediaPkt[nCounter], (void**)&pszPtr);
         nSize = fread(pszPtr, 1, nSize, pvFile);
-        if (media_packet_set_buffer_size(g_hMediaPkt, nSize))
+        if (media_packet_set_buffer_size(g_hMediaPkt[nCounter], nSize))
                {
             FPRINTF("[Line : %d][%s]buf size failed\\n", __LINE__, API_NAMESPACE);
                        fclose(pvFile);
             return 1;
         }
 
-        if (media_packet_set_pts(g_hMediaPkt, g_ncount))
+        if (media_packet_set_pts(g_hMediaPkt[nCounter], g_ncount))
                {
             FPRINTF("[Line : %d][%s]unable to set the pts\\n", __LINE__, API_NAMESPACE);
                        fclose(pvFile);
             return 1;
         }
 
-               nRet = streamrecorder_push_stream_buffer(g_hCallRecorder, g_hMediaPkt);
+               nRet = streamrecorder_push_stream_buffer(g_hCallRecorder, g_hMediaPkt[nCounter]);
                PRINT_RESULT_CLEANUP(STREAMRECORDER_ERROR_NONE, nRet, "streamrecorder_push_stream_buffer", StreamRecorderGetError(nRet),fclose(pvFile));
         g_ncount = g_ncount + 33000000;
    }
@@ -391,11 +390,17 @@ int CreatePacketAndFormatDataCall(streamrecorder_h g_hCallRecorder)
 */
 void DestroyPacketAndFormatData(void)
 {
-       int nRet = media_format_unref(g_hMediaFormat);
-    PRINT_RESULT_NORETURN(MEDIA_FORMAT_ERROR_NONE, nRet, "media_format_unref", MediaFormatGetError(nRet));
+       int nCounter;
+       int nRet = MEDIA_FORMAT_ERROR_NONE;
+
+       for (nCounter = 0; nCounter < MAX_MEDIA_PACKET_CNT; nCounter++)
+       {
+               nRet = media_format_unref(g_hMediaFormat[nCounter]);
+               PRINT_RESULT_NORETURN(MEDIA_FORMAT_ERROR_NONE, nRet, "media_format_unref", MediaFormatGetError(nRet));
 
-    nRet = media_packet_destroy(g_hMediaPkt);
-    PRINT_RESULT_NORETURN(MEDIA_PACKET_ERROR_NONE, nRet, "media_packet_destroy", MediaPacketGetError(nRet));
+               nRet = media_packet_destroy(g_hMediaPkt[nCounter]);
+               PRINT_RESULT_NORETURN(MEDIA_PACKET_ERROR_NONE, nRet, "media_packet_destroy", MediaPacketGetError(nRet));
+       }
 }
 
 /** @} */
index 8d5be88..8428ad1 100755 (executable)
@@ -38,6 +38,7 @@
 #define API_NAMESPACE                          "MEDIASTREAMRECORDER_ITC"
 #define SLEEP_TIME                                     3
 #define MEDIA_DUMMY_PATH                       "hello.mp4"
+#define MAX_MEDIA_PACKET_CNT           20
 
 bool g_bMediaStrRecorderConnect;
 bool g_bCheckCb;
@@ -45,7 +46,6 @@ GMainLoop *g_pMainLoop;
 gboolean TimeoutFunction(gpointer data);
 long int g_ncount;
 streamrecorder_h g_hRecorder;
-media_packet_h g_hMediaPkt;
 
 #define START_TEST {\
        FPRINTF("[Line : %d][%s] Starting test : %s\\n", __LINE__, API_NAMESPACE, __FUNCTION__);\