From 72286f75cf11866471ee3e02842083429b45428b Mon Sep 17 00:00:00 2001 From: Eunhae Choi Date: Wed, 17 Oct 2018 17:45:22 +0900 Subject: [PATCH] [0.6.136] drop invalid input at fakesink - 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 | 2 +- src/mm_player_priv.c | 10 ++++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/packaging/libmm-player.spec b/packaging/libmm-player.spec index bfb1b40..5d90858 100644 --- a/packaging/libmm-player.spec +++ b/packaging/libmm-player.spec @@ -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 diff --git a/src/mm_player_priv.c b/src/mm_player_priv.c index 84ba58c..97fcd5c 100644 --- a/src/mm_player_priv.c +++ b/src/mm_player_priv.c @@ -112,6 +112,8 @@ #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"); -- 2.7.4