Sync with 2.4 (Corrected get track info). 43/57743/1 accepted/tizen/mobile/20160127.005131 accepted/tizen/tv/20160127.005141 accepted/tizen/wearable/20160127.005144 submit/tizen/20160126.231706
authorDeepak Srivastava <srivastava.d@samsung.com>
Fri, 22 Jan 2016 08:43:18 +0000 (14:13 +0530)
committerDeepak Srivastava <srivastava.d@samsung.com>
Fri, 22 Jan 2016 08:45:26 +0000 (14:15 +0530)
[1] Corrected enum values.

Change-Id: Ib250d9fcf61fe46493b279e60c663498331a8579
Signed-off-by: Deepak Srivastava <srivastava.d@samsung.com>
include/mediademuxer_error.h
src/port_gst/mediademuxer_port_gst.c

index 86a46da..12bb402 100755 (executable)
@@ -40,7 +40,7 @@ typedef enum {
        MD_MEMORY_ALLOCED = -16,        /**< codec has got memory and can decode one frame */
        MD_COURRPTED_INI = -17, /**< value in the ini file is not valid */
        MD_ERROR_FILE_NOT_FOUND = -18,
-       MD_EOS, /** read sample reached end of stream */
+       MD_EOS = -19,   /** read sample reached end of stream */
 } md_ret_e;
 
 #define MD_ERROR_CLASS              0x80000000         /**< Definition of number describing error group */
index 613ff51..514c81b 100755 (executable)
@@ -231,6 +231,7 @@ int __gst_add_track_info(GstPad *pad, gchar *name, track **head,
        temp->name = name;
        temp->caps_string = gst_caps_to_string(temp->caps);
        temp->next = NULL;
+       temp->format = NULL;
        temp->appsink = gst_element_factory_make("appsink", NULL);
        if (!temp->appsink) {
                MD_E("factory not able to make appsink");
@@ -976,7 +977,23 @@ static int gst_demuxer_get_track_info(MMHandleType pHandle,
                temp = temp->next;
                count++;
        }
-
+       if (temp->format != NULL) {
+               ret = media_format_ref(temp->format);
+               if (ret != MEDIA_FORMAT_ERROR_NONE) {
+                       MD_E("Mediaformat reference count increment failed. returned %d\n", ret);
+                       ret = MD_INTERNAL_ERROR;
+                       goto ERROR;
+               }
+               ret = media_format_make_writable(temp->format, format); /* copy the content */
+               if (ret != MEDIA_FORMAT_ERROR_NONE) {
+                       MD_E("Mediaformat create copy failed. returned %d\n", ret);
+                       media_format_unref(temp->format);
+                       ret = MD_INTERNAL_ERROR;
+                       goto ERROR;
+               }
+               MEDIADEMUXER_FLEAVE();
+               return ret;
+       }
        ret = media_format_create(&(temp->format));
        if (ret != MEDIA_FORMAT_ERROR_NONE) {
                MD_E("Mediaformat creation failed. returned %d\n", ret);