From: Gilbok Lee Date: Tue, 18 Apr 2023 01:31:25 +0000 (+0900) Subject: Unset sink flag in subtitle sink X-Git-Tag: accepted/tizen/unified/20230420.091904~3 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=750d91f583a85c0b58cfd6aac96f9199fb843544;p=platform%2Fcore%2Fmultimedia%2Ftrackrenderer.git Unset sink flag in subtitle sink - If there is no subtitle data and the EOS event sent, the EOS is immediately received on the subtitle sink. After that, when FlushDownStream_() is called(due to a call to SetPlaybackRate()), the EOS is reset on the subtitle sink. Therefore, if the EOS is received from another sink, the pipeline doesn't post EOS [Version] 0.1.20 [Issue Type] Fix bugs Change-Id: I8b4de9a652b2027f17218851274c2ee6d7dc8e9d --- diff --git a/packaging/libtrackrenderer.spec b/packaging/libtrackrenderer.spec index af66eb0..1ce4d65 100644 --- a/packaging/libtrackrenderer.spec +++ b/packaging/libtrackrenderer.spec @@ -1,6 +1,6 @@ Name: libtrackrenderer Summary: new multimedia streaming player trackrenderer -Version: 0.0.19 +Version: 0.0.20 Release: 0 Group: Multimedia/Libraries License: Apache-2.0 diff --git a/src/include_internal/trackrenderer/core/pipeline.hpp b/src/include_internal/trackrenderer/core/pipeline.hpp index ec9166c..7e9619d 100644 --- a/src/include_internal/trackrenderer/core/pipeline.hpp +++ b/src/include_internal/trackrenderer/core/pipeline.hpp @@ -110,6 +110,15 @@ class Pipeline : private boost::noncopyable { TRACKRENDERER_ERROR("Fail to create element [%s]", name); return false; } + + /* In some cases, the subtitle EOS is reset due to FlushDownStream_() + There is an problem where the pipeline does not post EOS, + because not all sink element have reached EOS */ + if (nickname && strstr(nickname, "subtitle_sink")) { + TRACKRENDERER_DEBUG("Unset GST_ELEMENT_FLAG_SINK in subtitle_sink"); + GST_OBJECT_FLAG_UNSET(obj, GST_ELEMENT_FLAG_SINK); + } + return Set_(element, obj); }