[0.6.206] get decoder msg in sync handler 24/215424/1 accepted/tizen_5.5_unified_mobile_hotfix tizen_5.5_mobile_hotfix accepted/tizen/5.5/unified/20191031.023508 accepted/tizen/5.5/unified/mobile/hotfix/20201027.085013 accepted/tizen/unified/20191009.231717 submit/tizen/20191008.051417 submit/tizen_5.5/20191031.000004 submit/tizen_5.5_mobile_hotfix/20201026.185103 tizen_5.5.m2_release
authorEunhye Choi <eunhae1.choi@samsung.com>
Tue, 8 Oct 2019 04:47:51 +0000 (13:47 +0900)
committerEunhye Choi <eunhae1.choi@samsung.com>
Tue, 8 Oct 2019 04:47:53 +0000 (13:47 +0900)
- in streaming case, decoder element message is
  delivered lately because of buffering messages.
- handle the decoder message in sync handler
  to minimize the delay

Change-Id: Iebdb5c9696179d6036ececa31a62743468950e60

packaging/libmm-player.spec
src/mm_player_gst.c

index 4b0d87874683ee94f7c3e5f162e89aefa05c3eca..b8eed46a07d1c5831da8d8f5ef64611f681f8ec9 100644 (file)
@@ -1,6 +1,6 @@
 Name:       libmm-player
 Summary:    Multimedia Framework Player Library
-Version:    0.6.205
+Version:    0.6.206
 Release:    0
 Group:      Multimedia/Libraries
 License:    Apache-2.0
index 79af3f2bbb746d78ca3264b39bc94b6ddd9242f1..edd913dde7be8baed579ce159d69e1a3ac23e98d 100644 (file)
@@ -2074,6 +2074,18 @@ __mmplayer_gst_bus_sync_callback(GstBus *bus, GstMessage *message, gpointer data
        case GST_MESSAGE_DURATION_CHANGED:
                __mmplayer_gst_handle_duration(player, message);
                break;
+       case GST_MESSAGE_ELEMENT:
+               {
+                       const gchar *klass = NULL;
+                       klass = gst_element_factory_get_metadata
+                               (gst_element_get_factory((GstElement *)message->src), GST_ELEMENT_METADATA_KLASS);
+                       if (!klass || !g_strrstr(klass, "Codec/Decoder")) {
+                               reply = GST_BUS_PASS;
+                               break;
+                       }
+                       __mmplayer_gst_handle_element_message(player, message);
+               }
+               break;
        case GST_MESSAGE_ASYNC_DONE:
                /* NOTE:Don't call gst_callback directly
                 * because previous frame can be showed even though this message is received for seek.