[0.6.136] drop invalid input at fakesink 62/191462/1
authorEunhae Choi <eunhae1.choi@samsung.com>
Wed, 17 Oct 2018 08:45:22 +0000 (17:45 +0900)
committerEunhae Choi <eunhae1.choi@samsung.com>
Wed, 17 Oct 2018 08:45:24 +0000 (17:45 +0900)
- set max-lateness to 20ms of fakesink as waylandsink
- after changing playback position, invalid video frame
  can be sent by handoff signal.

Change-Id: Ifce799844e29f9caf9ce9cf1720dac328220bc91

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

index bfb1b40..5d90858 100644 (file)
@@ -1,6 +1,6 @@
 Name:       libmm-player
 Summary:    Multimedia Framework Player Library
-Version:    0.6.135
+Version:    0.6.136
 Release:    0
 Group:      Multimedia/Libraries
 License:    Apache-2.0
index 84ba58c..97fcd5c 100644 (file)
 #define SPATIAL_AUDIO_CAPS             "audio/x-raw,format=S16LE,channels=4"
 #define FEATURE_NAME_SPHERICAL_VIDEO   "http://tizen.org/feature/multimedia.player.spherical_video"
 
+#define FAKE_SINK_MAX_LATENESS         G_GINT64_CONSTANT(20000000) /* set 20ms as waylandsink */
+
 /*---------------------------------------------------------------------------
 |    LOCAL CONSTANT DEFINITIONS:                                                                                       |
 ---------------------------------------------------------------------------*/
@@ -1298,7 +1300,7 @@ __mmplayer_gst_decode_pad_added(GstElement *elem, GstPad *pad, gpointer data)
                        }
 
                        if (player->set_mode.media_packet_video_stream) {
-                               g_object_set(G_OBJECT(fakesink), "signal-handoffs", TRUE, NULL);
+                               g_object_set(G_OBJECT(fakesink), "signal-handoffs", TRUE, "max-lateness", FAKE_SINK_MAX_LATENESS, NULL);
 
                                __mmplayer_add_signal_connection(player,
                                                                                G_OBJECT(fakesink),
@@ -4138,7 +4140,7 @@ __mmplayer_gst_create_video_pipeline(mm_player_t* player, GstCaps* caps, MMDispl
                if (player->set_mode.media_packet_video_stream) {
                        LOGE("add data probe at videosink");
                        g_object_set(G_OBJECT(player->pipeline->videobin[MMPLAYER_V_SINK].gst),
-                                                                                       "sync", TRUE, "signal-handoffs", TRUE, NULL);
+                                                                                       "sync", TRUE, "signal-handoffs", TRUE, "max-lateness", FAKE_SINK_MAX_LATENESS, NULL);
 
                        __mmplayer_add_signal_connection(player,
                                                                        G_OBJECT(player->pipeline->videobin[MMPLAYER_V_SINK].gst),
@@ -4268,8 +4270,8 @@ static int __mmplayer_gst_create_plain_text_elements(mm_player_t* player)
                                                        G_CALLBACK(__mmplayer_update_subtitle),
                                                        (gpointer)player);
 
-       g_object_set(G_OBJECT(textbin[MMPLAYER_T_FAKE_SINK].gst), "sync", TRUE, NULL);
-       g_object_set(G_OBJECT(textbin[MMPLAYER_T_FAKE_SINK].gst), "signal-handoffs", TRUE, NULL);
+       g_object_set(G_OBJECT(textbin[MMPLAYER_T_FAKE_SINK].gst), "sync", TRUE,
+                                               "signal-handoffs", TRUE, "max-lateness", FAKE_SINK_MAX_LATENESS, NULL);
 
        if (!player->play_subtitle) {
                LOGD("add textbin sink as sink element of whole pipeline.\n");